【机器学习】k近邻算法(kNN)

来源:互联网 发布:韩国网络女主播米娜 编辑:程序博客网 时间:2024/05/06 10:22

一、写在前面

        本系列是对之前机器学习笔记的一个总结,这里只针对最基础的经典机器学习算法,对其本身的要点进行笔记总结,具体到算法的详细过程可以参见其他参考资料和书籍,这里顺便推荐一下Machine Learning in Action一书和Ng的公开课,当然仅有这些是远远不够的,更深入的研究分析可以参见其他国外的论文及站点,此处不再一一列举。机器学习更多的是建模应用,这里仅是一个概要总结,并归纳分析各种算法优缺点,这些都是要了如指掌并且非常熟悉的。

 

        关于机器学习:

        基本上目前互联网公司的机器学习/数据挖掘的算法岗位都会涉及到这些东西,而对于计算机方向的研究生都会接触这些。对于机器学习,仅仅懂得这些算法的基本思想和大致流程远远不够,尤其对于工业界的应用层面,关系到应用业务课题,更多要求的是非常熟悉如何去使用它,什么场合使用,算法优缺点,调参经验等等。

 

        机器学习算法总体分类:

1.监督学习:分类、回归

2.无监督学习:聚类、密度估计、降维

3.其他

 

         列举一下机器学习经典算法:

k近邻算法(kNN)

决策树C4.5、ID3、CART树回归(9章)

迭代决策树GBRT(渐进梯度回归树):决策树的变体,boosting,残差训练,串行算法,每棵树用前一棵树的残差来训练

RF随机森林:主要思想是bagging并行算法,用很多弱模型组合出一种强模型

朴素贝叶斯

logistic回归(实质是分类算法)

线性回归:1.线性回归LR、2.缩减系数:岭回归、lasso、前向逐步回归(这才是真正回归)

支持向量机SVM: SMO、核函数处理高维数据

Boosting:Adaboosting

非均衡分类问题

        1.训练时正例数据与反例数据不相等、相差很大

        2.衡量分类器成功程度的指标:错误率、正确率、召回率、ROC曲线

        3.处理非均衡问题的方法:数据抽样可以对分类器训练数据进行改造:欠抽样(删除样例)过抽样(复制样例)

聚类算法——K均值算法(K-means)

********************************************************************

聚类:1.基于划分的聚类:k-means、k-medoids(每个类别找一个样本来代表)、Clarans

             2.基于层次的聚类:(1)自底向上的凝聚方法,比如Agnes

                                             (2)自上而下的分裂方法,比如Diana

             3.基于密度的聚类:Obsacn、Optics、Birch(CF-Tree)、Cure

             4.基于网格的方法:Sting、WaveCluster

             5.基于模型的聚类:EM、SOM、Cobweb

********************************************************************

    k-means:优点:.容易实现,……

                    缺点:.容易局部收敛……

关联规则分析(一):Apriori

关联规则挖掘(二):频繁模式树FP-growth

推荐系统

        1.基于内容的实现:KNN等

        2.基于协同滤波(CF)实现:SVD → pLSA(从LSA发展而来,由SVD实现)、LDA、GDBT

pLSA

LDA主题模型

Regularization(正则化)

异常检测

EM算法、HMM(隐马尔科夫模型)


二、kNN算法

1.算法流程

         (1)计算抑制类别数据集中的点与当前点的距离欧氏距离、马氏距离等)

        (2) 按照距离递增依次排序

        (3) 选取当前点距离最小的k个点

        (4) 确定k个点所在类别出现频率

        (5) 返回前k个点出现频率最高类别作为当前点的预测分类


注意:

l  关于k值个数的选择,其取决于数据。一般地,在分类时,较大k可以减小噪声的影响,但会使类别界限变得模糊。

               Ø  好的k可以通过各种启发式技术来获取(eg.交叉验证)

               Ø  噪声非相关性特征向量的存在会使k近邻算法的准确性减小

l  近邻算法具有较强的一致性结果,随着数据趋于无线,算法的错误率不会超过贝叶斯算法错误率的2倍。对于一些好的k值,k近邻保证错误率不会超过贝叶斯理论误差率。

l  关于流程中距离计算欧式距离马氏距离



2.优缺点、数据类型

优点:精度高,对异常值不敏感,无数据输入假定。

         1.可以用作分类回归

         2.可以用作线性分类非线性分类

        3.训练时间复杂度O(n)

        4.准确度高,对数据没有假设,对离群点outliner不敏感

缺点:计算复杂度高,空间复杂度高

         1.计算量大

         2.样本不均衡问题(即:有时类样本很多,有时类样本很少)

         3.需要大量内存

 

数据类型:数值型、标称型

 

3.应用场景

分类、回归。

线性分类、非线性分类

 


0 0
原创粉丝点击