您的位置:首页 > 其它

机器学习理解(四)

2015-10-29 17:32 218 查看

5.KNN分类---有监督学习

KNN即K近邻分类,它的基本思想就是找到与待分类样本最近的K个样本,在这K个样本中,哪个类别所包含的样本数最多,则待分类样本就属于哪一类

基本步骤:

1.分别求得待分类样本与训练样本的距离;距离的求法有欧式距离,马氏距离等,且分类样本是用向量进行表示的,分类样本的属性个数即为向量的维度

2.对距离进行排序;

3.选取距离值最小的K个样本;

4.K个样本进行投票决定待分类样本的类别,即在这K个样本中,哪个类别所包含的样本数最多,则待分类样本就属于哪一类

对于样本不均衡的情况,即某些类样本数较多,某些类样本数较少,可以在计算距离时加上权值,样本数较少的类别权值大,这样小类的正确率不会过低



优点:思想简单;理论成熟;准确度较高;

缺点:计算量大,需要扫描整个数据库,当数据量非常大时,对内存就会有较高的要求;K值的选取与分类结果会有较大的关系,因此要选择合适的K值



参考博客:

/article/6032928.html



下面再简单地概述下不同类型的距离公式

机器学习算法中常用距离来表示两个向量之间的相似性,距离有如下几种:假设两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)

1.欧式距离



2.曼哈顿距离


,距离为两个向量在不同维度下的绝对值之差的和

3.切比雪夫距离


,距离为两个向量在不同维度下最大的绝对值之差

4.马氏距离


,涉及到向量的转置,其实和矩阵转置类似

5.夹角余弦距离



6.杰卡德距离:两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示,适用条件每一维都只有二值,而且是非对称二元变量,即每一个取值的重要性程度不一样



7.相关距离(用的较少,我自己也不是很懂)



6.KMeans聚类---无监督学习

KMeans聚类算法是聚类算法中比较常用且经典的算法,聚类即根据事件的相似特征,将其聚集在一起形成一个单独的类,它不像分类那样事先已经明确好了类别,因此聚类属于无监督学习,KMeans属于基于划分的聚类算法,其基本步骤为:

1.随机选取k个初始中心点;

2.计算每个数据点到k个初始中心点的距离,将数据点与离其最近的中心点划分到一类;

3.划分完所有的数据点后,重新计算各个类中的中心点,中心点为该类所有的数据点在各个维度上的平均值;

4.不断迭代,直至中心点不再改变或者达到迭代次数;

优点:算法简单,快速;

缺点:需要重复扫描数据库;要求事先给出k值,因此k值选取不当,会对结果产生误差;对初值敏感;



改进:在选取k个初始中心点上进行改进

1.求出每个数据点的密度:设定d1值,计算其余数据点到自身的距离,若距离小于d1,就把这个数据点当做是在自己密度范围内,密度+1

2.选取密度最大的数据点作为第一个初始中心点

3.设定d2值,选取其余的到第一个初始中心点的距离大于d2的数据点,再从这些数据点中选取密度值最大的数据点作为第二个初始中心点

4.重复上述步骤

这样可以避免初始中心点过于密集



参考博客:

http://www.cnblogs.com/fengfenggirl/p/k-means.html

类似的算法还有自底向上的层次聚类算法:cure算法

未完待续。。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: