数据分析各种算法的总结;

常用机器学习算法比较

在这里插入图片描述

聚类算法总结

聚类的定义:
聚类也称为聚类分析,指将样本分到不同的组中使得同一组中的样本差异尽可能的小,而不同组中的差异尽可能的大。
聚类得到的不同的组称为簇,发现对象簇,使得同一个簇内的对象尽量相似,不同簇间的对象尽量不同。

聚类和分类的区别
无监督学习与分类不同,没有事先定义的类别标记。分类是一种监督学习,聚类是一种无监督学习,二者最主要的区别是聚类的样本没有类标号,而分类的样本具有类标号。分类具有训练集和测试数据,而聚类没有训练,是通过观察学习。

聚类的类型
聚类的类型有分割聚类和层次聚类;

分割聚类的主要算法是k-平均聚类,其具体算法为
基本的算法非常简单,只有三步
第一步随机选择k个点作为中心点,通过这K个点分出k个簇(分簇根据点到哪个中心点的距离最小属于哪个簇,此距离一般为Euclidean距离(欧氏距离),cosine相似性等来度量的),
第二步对这k个簇的每个簇都选出簇的中心点(簇中点的中心位置)
第三步通过这些新的中心点确定新的簇,然后一直重复上述动作直到簇中心不再发生变化了,这样就得到K个聚类。

平均误差准则函数(评价聚类效果)
K-means聚类算法使用误差平方和准则函数来平均聚类性能。(意思就是每个簇内的点到本簇中心点的距离的平方的和相加最小就代表聚类性能最好)
在这里插入图片描述
K-means的优缺点
主要优点
1,是解决聚类问题的一种经典算法,简单,快捷。
2,对处理大数据集,该算法是相对可伸缩和高效的。
3,当结果簇是密集的,它的效果较好。
主要缺点
1,在簇的平均被定义的情况下才能使用。
2,必须事先给出k(要生成的簇的数目),而且对初始值敏感,对不同的初始值,可能会导致不同的结果。
3,不适用与发现非凸面形状的簇或者大小差别很大的簇,而且,它对于噪声和孤立点数据是敏感的(因为它的中心点选的是各簇的点的中心(也就是均值)),均值对孤立点异常点都比较敏感。

分割聚类还有k-中心点聚类可以解决k-means对于孤立点事敏感的问题,主要区别就是选择每个簇的中心点的时候k-means算法是选的簇点的中心,而k-中心点聚类算法选择的距离簇点的中心最近的点。

层次聚类

层次聚类的优势
1,无需事先指定簇的个数
2,可以和分类法结合起来(如生物学,图书分类法等)
层次聚类中最短距离法的算法
在这里插入图片描述
R中事先聚类的算法的函数有kmeans()函数(使用算法为k-means算法),hclust()函数(使用的是层次聚类算法)

随机森林总结:

随机森林算法简称RF算法是对Bagging算法进行了改进,
首先,RF算法使用了CART决策树作为弱学习器(注意选择决策树的另一个原因是因为决策树不稳定的算分即数据集小的变动就能够使得分类结果显著地变动。)
第二,在使用决策树的基础上,R对决策树的建立做了改进,对于普通的决策树,我们会在节点上所有的n个样本特征中选择一个最优的特征来做决策树的左右子树的划分,但是随机森林通过随机选择节点上一部分样本特征,在这一部分特征中选择一个最优的特征来做决策树左右子树的划分。这样进一步增强了模型的泛化能力。
除了上面两点,随机森林和普通的bagging算法没有什么不同。
下面简单总结下随机森林算法。

输入为样本集,弱分类器迭代次数T。

输出为最终的强分类器f(x)

(1)对于t = 1,2,3,…,T;

对训练集进行第t次采样,共采集m次,得到包含m个样本的采样集Dt
用采样集Dt训练第t个决策树模型Gt(x),在训练决策树模型的节点的时候,在节点上所有的样本特征中选择一部分样本特征,在这些随机选择的部分样本特征中选择一个最优的特征来做决策树的左右子树划分。

(2)如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

随机森林不仅用于分类问题,还可以用于特征转换,异常点检测等。

随机森林的优点为:
1,训练可以高度并行化,对于大数据时代的大样本训练速度有优势。
2,由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍能够高效的训练模型
3)训练后,可以给出各个特征对于输出的重要性。
4,采用了随机样本采样,训练出的模型方差小,泛化能力强。
5,相对于Boosting系列的Adaboost和GBDT,随机森林实现比较简单
6,对部分特征缺失不敏感。

随机森林的主要缺点;
1,在某些噪音比较大的样本集上,RF模型容易陷入过拟合。
2,取值划分比较多的特征容易对随机森林的决策产生更大的影响,从而影响拟合的模型的效果。

参考资料:随机森林算法原理小结

SVM-支持向量机

SVM概述
通俗来讲,它是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

SVM分类
1,完全线性划分-线性SVM
2,不完全线性划分-线性SVM
3,完全不可分的非线性SVM
在这里插入图片描述

非线性SVM简单来说对于原本的维度是找不到一条直线或者面把他们分开,在这种情况下可以对原有维度做函数变换比如原本x1,x2两个维度找不到一条直线分开两类的,但是可以对log(x1),e^x2这两个经过函数变换后就可以找到一条直线来分开两类了,就转换为线性可分问题了。

R中可以做SVM模型的是包e1071中svm()函数

Supongo que te gusta

Origin blog.csdn.net/weixin_42712867/article/details/105477309
Recomendado
Clasificación