经典机器学习算法总结
1决策树算法
算法原理:1.决策树是一个预测模型,它代表的属性对象与属性值之间的一种映射关系。2.决策树是一种树形结构,内部节点表示每个属性上的测试,每个分支代表一种测试输出,叶节点代表一种类别。3.决策树是一种监督学习方法,用于分类问题
应用场景:1.实例是属性-值对表示的;2.可能需要析取描述;3.训练数据可以包含错误值;4.训练数据可以包含缺失值;5.目标函数具有离散的输出值
问题举例:1.根据疾病分类患者;2.根据起因分类设备故障;3.根据拖欠支付的可能性分类贷款申请
优缺点:优点:1.简单,易于解释;2.可以应用于离散和非数值型同时处理数据型和常规型数据;3.可以清晰的解释哪些属性比较重要;4.对噪声有很好的健壮性且能学习析取表达式;5.数据的准备往往是简单或者不必要的
缺点:1.对连续性的数值比较难预测;2.对有时间顺序的数据,需要很多的预处理工作;3.对于类别太多时,错误可能就会增加的比较快。
ID3算法:
以信息论为基础,以信息熵和信息增益为度量标准,进行决策树的构造。信息熵:刻画了任意样例集的纯度,熵越大,不确定性越大;信息增益:一个属性的信息增益就是由于使用了这个属性分割样例而导致的熵降低的多少。
信息熵:
信息增益:
C4.5
是对ID3算法不能处理连续值的改进,引入信息增益率来选择属性,引入剪枝(为了防止噪声数据引起的过拟合)
2.SVM
算法原理:svm使用一种非线性映射,把原训练数据映射到高维(核函数:能够将两个低维空间的向量,计算出经过某个变换后在高维空间的向量内积值),寻找最大分类间隔平面,两个类的数据总可以被超平面分开
特性:小样本,非线性,低维不可分
应用场景:文本分类,图像处理,生物信息技术,手写字体识别
优缺点:优点:1.可用于线性/非线性分类,也可用于回归;2.低泛化误差;3.容易解释;4.计算复杂度较低
缺点:1.对大规模数据难以实施,对参数和核函数的选择比较敏感;2.用svm解决多分类问题存在困难
弥补办法:方案一:一类对余类法(One versus rest,OVR)
构造类别数k个的二元分类器
训练时第i个分类机取训练集中第i类为正类,其余类别点为负类
判别时,输入信号分别经过k个分类器输出
优点
每个优化问题的规模比较小,而且分类的时候速度很快
缺点
分类重叠 & 不可分类 & 人为的数据偏斜
方案二:一对一
- 该方法在每两类问训练一个分类器,因此对于一个k类问题,将有k(k-1)/2个分类器
- 优点
– 避免了数据偏斜
– 训练阶段(也就是算出这些分类器的分类平面时)所用的总时间却比“OVR”方法少很多
– 投票时也会有分类重叠的现象,但不会有不可分类现象
- 缺点
– 类别数为5的时候,我们调用了10个分类器,类别数如果是1000,要调用的分类器数目会上升至约500,000个(但是时间上可能OVO还是比OVR少,因为考虑的样本数少)
3.PageRank
产生背景:google对搜索网页重要性排序
不评价---à基于检索词的评价(和检索词匹配度越高的页面越重要)(Term Spam)----àPageRank
算法原理:对于某个网页A来说,该网页的PageRank的值的计算基于两个假设:1.数量假设:指向这个A的网页的数量越多,A越重要;2.质量假设:指向A的入链质量不同,质量高的页面会通过链接向其他页面传递更多的权重。
过程:1.初始阶段:每个页面会被分配一个初始的pr值,经过更新计算,每个页面得到最终的pr值。随着每一轮计算的进行,pr值会不断得到更新。2.在一轮中更新pr值得计算方法:
每个页面将其当前的pr值平均分配到他所有的出链中,每个页面将其所有的入链的pr值相加得到当前的pr值。每个页面都得到了新的pr值以后,就完成了一轮计算。
迭代递归计算,直到pr值稳定为止。
处理dead ends:迭代拿掉dead ends及其边,然后计算剩下的pr值,然后按照拿掉dead ends的逆向顺序反推dead ends的pr.
Spider trap :内链,指向自己,随着计算pr值会接近1,其余的接近0.
解决方法:加入teleporting(用户以一个概率转移到一个随机页面)
目前为止,主题无关的,例子输入苹果(水果,iphone)
解决:1.话题分类(DMOZ参考标准)
2.网页topic归属
3.分topic向量计算
在Topic-Sensitive PageRank中,向量迭代公式为
v′=(1−β)Mv+sβ/|s|
首先是单位向量e变为了s。s是这样一个向量:对于某topic的s,如果网页k在此topic中,则s中第k个元素为1,否则为0。注意对于每一个topic都有一个不同的s。而|s|表示s中1的数量。
4.确定用户topic倾向
Link spam:解决办法:网页拓扑分析
TrustRank:找一些可信网页(没法spam的网页),比如政府的等等,如果一个普通页面的pr值比可信网页的还要高,就有可能被spam了。
优点:离线计算,缩短用户响应时间
4.DBSCAN
思想:基于一个事实,一个聚类可以由其中的任何核心对象唯一确定(如果给定对象 邻域内的样本点数大于等于MinPts,则称该对象为核心对象)
扫描整个数据集,找到任意一个核心点,对该核心点进行扩充。扩充的方法是寻找从该核心点出发的所有密度相连的数据点(注意是密度相连)。遍历该核心点的邻域内的所有核心点(因为边界点是无法扩充的),寻找与这些数据点密度相连的点,直到没有可以扩充的数据点为止。最后聚类成的簇的边界节点都是非核心数据点。之后就是重新扫描数据集(不包括之前寻找到的簇中的任何数据点),寻找没有被聚类的核心点,再重复上面的步骤,对该核心点进行扩充直到数据集中没有新的核心点为止。数据集中没有包含在任何簇中的数据点就构成异常点。
DBSCAN算法的目的在于过滤低密度区域,发现稠密度样本点。跟传统的基于层次的聚类和划分聚类的凸形聚类簇不同,该算法可以发现任意形状的聚类簇,与传统的算法相比它有如下优点:
(1)与K-MEANS比较起来,不需要输入要划分的聚类个数;
(2)聚类簇的形状没有偏倚;
(3)可以在需要时输入过滤噪声的参数;