常用的数据挖掘算法有哪几类数据挖掘

大数据这个名词是被炒得越来越火了,各种大数据技术层出不穷,做数据挖掘的也跟着火了一把,呵呵,现今机器学习算法常见的并行实现方式:MPI,Map-Reduce计算框架,GPU方面,graphlab的图并行,Spark计算框架,本文讲讲一些机器学习算法的map-reduce并行策略,尽管有些算法确实不适合map-reduce计算,但是掌握一些并行思想策略总归不是件坏事,下面简单介绍一下常用的数据挖掘算法,大家如果对某个算法有更好的并行策略,也请多多指教,欢迎大家交流,OK,下面先从一个最基本的均值、方差的并行开始。

均值、方差的map-reduce

一堆数字的均值、方差公式,相信都很清楚,具体怎么设计map跟reduce函数呢,可以先从计算公式出发,假设有n个数字,分别是a1,a2....an,那么均值m=(a1+a2+...an)/n,方差s=[(a1-m)^2+(a2-m)^2+....+(an-m)^2]/n

把方差公式展开来S=[(a1^2+.....an^2)+m^m*n-2*m*(a1+a2+....an)]/n,根据这个我们可以把map端的输入设定为(key,a1),输出设定为(1,(n1,sum1,var1)),n1表示每个worker所计算的数字的个数,sum1是这些数字的和(例如a1+a2+a3...),var1是这些数字的平方和(例如a1^2+a2^2+...)

reduce端接收到这些信息后紧接着把所有输入的n1,n2....相加得到n,把sum1,sum2...相加得到sum,那么均值m=sum/n,把var1,var2...相加得到var,那么最后的方差S=(var+m^2*n-2*m*sum)/n,reduce输出(1,(m,S))。

算法代码是基于mrjob的实现

KNN算法的map-reduce

KNN算法作为机器学习里面经典的分类算法,它简单有效,但很粗暴,是一个非参模型(非参并非指算法没有参数,而是说它没有假设底层数据的分布,尽管该算法的有效性要遵循流行/聚类假设),算法具体的步骤如伪代码所示

foriintest_data

从train_data中找与i样本最相近的K个样本(K是参数,过小引起过拟合,过大引起欠拟合)

衡量相近的标准有多种(欧氏距离,马氏距离等等)

把这K个样本的标签出现最多的那个赋予给i

endfor

从上面的代码可以看出该算法的计算量也是非常大的,但有个好处是非常适合拆分计算步骤,进行并行处理,具体设计map函数跟reduce函数如下

map过程:每个worker节点load测试集和部分训练集到本地(当然也可以训练集和部分测试集,但感觉是不是很浪费磁盘?),map的输入是这不废话么。。。具体的key是样本行号,value是样本的属性跟标签,map的输出key是测试样本的行号,value是某个训练样本的标签跟距离,具体的map函数伪代码如下

forjintrain_data

取出j里面的标签L

计算i与j的距离D

context.write(测试样本行号,vector(L,D))

reduce过程:这个相对就比较简单,对输入键值对,对同一个key的(L,D)对D进行排序,取出前K个L标签,计算出现最多的那个标签,即为该key的结果。

总结:上面是一个最基本的knn的map-reduce过程,正常情况下我们reduce的机器一般小于map的机器,如果完全把map的输出,全扔到reduce那边,会造成reduce过程耗时,一个优化的方向就是在map的最后阶段,我们直接对每个key取前K个结果,这样就更合理的利用了计算资源,另外高维情况下,近邻的查找一般用局部敏感哈希算法。

朴素贝叶斯算法的map-reduce

包括先验概率、每个属性的值在特定类别下的条件概率,下面以一个例子详细说明map-reduce过程,假设数据集如下所示

行号

类别

性别

风强度

温度

01

02

03

中等

首先把属性都进行0/1编码(把属性连续化的一个好方法),效果如下所示

类别(好)

类别(坏)

性别(男)

性别(女)

风强度(强)

风强度(中等)

风强度(弱)

温度(热)

温度(冷)

1

0

然后map的输入是<行号,样本>,在map中作如下操作,对于每条记录record1=[[1,0],[1,0],[1,0,0],[1,0]],record2=[[0,1],[0,1],[0,0,1],[0,1]],record3=[[0,1],[1,0],[0,1,0],[1,0]],然后把标签拆分,把类别作为key,这样map的输出端就是<类别,record1..n>,

reduce接收到后,进行如下处理对于每个record1转化成矩阵形式

key=1key=0key=0

record1=1record2=1record3=1

1,00,11,0

1,0,00,0,10,1,0

对于每一个类别相同的record相加得到

sum(类别=1)=1,sum(类别=0)=2

1,01,1

1,0,00,1,1

对上面进行归一化,得到

sum(类别=1)=1,sum(类别=0)=1

1,01/2,1/2

1,0,00,1/2,1/2

最后输出的就是这两个东东了

具体分类的时候,假设一个test样本是(女,强,热)

P(好/(女,强,热))=P(好)*P(女/好)*P(强/好)*P(热/好)

P(坏/(女,强,热))=P(坏)*P(女/坏)*P(强/坏)*P(热/坏)

比较上面两个概率的大小就好了,另外文中举的这个例子不太好,出现了P(女/好)=0,样本足够的情况下是不会的等于零的,即使真出现了0的情况,也可以用拉普拉斯平滑掉就好了。

另外一种思路:map端输出<'好',1>,<'好,男',1>,<'好,强',1>,<'好,弱',1>,。。。。,reduce端输出那些key的sum和。总来说跟前一种做法是差不多,都是求各种频数

THE END
1.数据挖掘算法(AnalysisServices–数据挖掘)MicrosoftLearn“数据挖掘算法”是创建数据挖掘模型的机制。为了创建模型,算法将首先分析一组数据并查找特定模式和趋势。算法使用此分析的结果来定义挖掘模型的参数。然后,这些参数应用于整个数据集,以便提取可行模式和详细统计信息。 算法创建的挖掘模型可以采用多种形式,这包括: https://technet.microsoft.com/zh-cn/library/ms175595(v=sql.100).aspx
2.数据挖掘的常见算法有哪些?数据挖掘的常见算法有哪些? 数据挖掘是一种通过从大量数据中提取知识和信息的方法,以支持业务决策、市场分析和科学研究等领域。在数据挖掘过程中,算法是最重要的组成部分之一。以下是常见的数据挖掘算法。 1.分类算法 分类算法是一类用于将数据样本分为不同类别的算法。这些算法通常使用监督学习方法,其中模型基于已标记https://www.cda.cn/bigdata/202782.html
3.数据挖掘的10大算法我用大白话讲清楚了,新手一看就懂本文介绍了数据挖掘中的经典算法,包括PageRank的网页影响力原理、Apriori的关联分析、C4.5和SVM的分类算法、KNN和K-Means的聚类算法以及EM算法。这些算法帮助数据分析师从数据中发现有价值的关联和模式。 摘要由CSDN通过智能技术生成 一个优秀的数据分析师,除了要掌握基本的统计学、数据库、数据分析方法、思维、数据分析https://blog.csdn.net/m0_59163425/article/details/130115711
4.数据挖掘的算法有哪些种类帆软数字化转型知识库数据挖掘的算法有哪些种类 数据挖掘的算法有很多种类,主要包括分类算法、聚类算法、关联规则挖掘、回归分析、降维算法、序列模式挖掘、时间序列分析、异常检测算法、神经网络、支持向量机、决策树、贝叶斯分类器等。分类算法是数据挖掘中最常用的一类算法,通过学习已有数据来预测新数据的类别。决策树是一种常见的分类算法,https://www.fanruan.com/blog/article/596640/
5.常用数据挖掘算法总结及Python实现常用数据挖掘算法总结及 Python 实现 目录 第一部分 数据挖掘与机器学习数学基础3 第一章 机器学习的统计基础3 第二章 探索性数据分析(EDA) https://www.modb.pro/db/1798520229306912768
6.数据挖据的常用算法01—初识数据挖掘这个故事虽然已经被说烂了,但是我还是要说,“Target和孕妇”的故事并不是偶然发生的事件,而是数据挖掘技术使用的一个常见案例,一般部署了数据挖掘功能的平台都可以实现这类功能,比如预测用户的消费行为、个性化推荐等。 我们是说数据挖掘算法的,所以一定会说算法,从算法的角度可以将数据挖掘分为以下类型: https://www.jianshu.com/p/b20bb2502f9a
7.数据分析中的数据挖掘需要哪些算法数据分析中的数据挖掘需要以下算法:一、分类算法;二、聚类算法;三、关联规则算法;四、分类与回归树算法;五、Adaboost算法;六、期望最大化算法;七、最近邻算法;八、神经网络算法。在数据分析中,数据挖掘算法可以帮助发现数据中隐藏的模式、关系、趋势和异常。 https://www.linkflowtech.com/news/1594
8.数据挖掘常用分析方法与算法研究.pdf数据挖掘常用分析方法与算法研究.pdf,际楔披厩针宫夯獭祥协诱蝶讳古樱貌霜脓氖擎丙落赴德山陛林磋伙许妄啮讥廉洼昧珐出成潍求唾嘴维祖吾砷唉抡腊威取锈亮么蓑翅柜滚仗痪尔屿松长乱柏控烘匣狼砷歹 https://max.book118.com/html/2017/0629/118893352.shtm
9.用于数据挖掘的分类算法有哪些EDTIE用于数据挖掘的分类算法有哪些 数据挖掘的分类算法是一类用于识别和预测类别的算法,主要包括:1. 决策树,如C4.5和CART,适用于可解释性强的场景;2. SVM(支持向量机),适合线性和非线性分类问题;3. 随机森林,集成多个决策树以提高准确性;4. K-近邻算法,基于相似性进行分类。其中,随机森林以其出色的准确性和鲁棒性https://www.cnblogs.com/cnnu/p/18500933
10.数据挖掘算法种类随着数据的不断增长和业务需求的提升,数据挖掘算法也不断发展和完善。本文将介绍几种常见的数据挖掘算法。 一、分类算法 分类算法是数据挖掘中最常用的算法之一。它通过对已知数据集进行学习,构建一个分类模型,然后使用该模型对未知数据进行分类。常见的分类算法有决策树、朴素贝叶斯、逻辑回归、支持向量机等。 决策树https://wenku.baidu.com/view/0df55addde3383c4bb4cf7ec4afe04a1b171b05a.html
11.数据分析常见术语绝对数:是反应客观现象总体在一定时间、一定地点下的总规模、总水平的综合性指标,也是数据分析中常用的指标。比如年GDP,总人口等等。 相对数:是指两个有联系的指标计算而得出的数值,它是反应客观现象之间的数量联系紧密程度的综合指标。相对数一般以倍数、百分数等表示。相对数的计算公式: https://meta.ecnu.edu.cn/76/b3/c35753a423603/page.htm
12.人工智能机器学习常用算法总结及各个常用算法精确率对比相关技巧聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。 https://www.jb51.net/article/182909.htm
13.用户画像:发展脉络工业落地与技术优化演讲题目:用户画像在平台差异化服务中的应用演讲提纲:1、 用户画像的介绍;2、 高价值用户标签的建立;3、标签的应用;听众收益:1、 高价值标签怎样建立的;2、用户画像标签在售后环节是怎么应用;周元炜 去哪儿网 技术运营中心-算法 数据挖掘高级经理个人介绍:北京交通大学计算机硕士学历,从事数据挖掘、数据算法相关工作https://hub.baai.ac.cn/view/33737
14.数据挖掘的四种基本方法遗传算法是一种依据微生物自然选择学说与基因遗传原理的恣意优化算法,是一种仿生技能全局性提升办法。遗传算法具有的暗含并行性、便于和其他实体模型交融等特性促使它在数据发掘中被多方面运用。 决策树算法办法 决策树算法是一种常见于预测模型的优化算法,它依据将很多数据信息有目地归类,从这当中寻找一些有使用价值的https://www.dongao.com/cma/zy/202406204447292.html