机器人与人工智能爱好者论坛

 找回密码
 立即注册
查看: 14945|回复: 1
打印 上一主题 下一主题

机器学习实战之——kNN算法学习总结

[复制链接]

8

主题

21

帖子

149

积分

版主

Rank: 7Rank: 7Rank: 7

积分
149
跳转到指定楼层
楼主
发表于 2015-12-19 10:39:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小谢 于 2015-12-25 14:30 编辑

                                                       机器学习实战之——kNN算法学习总结

1、概述:
  简单地说,K-近邻算法采用测量不同特征值之间的距离方法进行分类。
  优点:对异常值不敏感、无数据输入假定。
  缺点:计算复杂度高、空间复杂度高。
  适用数据范围:数值型和标称型。
2、工作原理:
  1)存在一个样本数据集合(训练样本集),并且样本集中每个数据都存在标签,即我们知道样本集中每一数据所属分类的对应关系。
  2)输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。
  3)选择样本中前K个最相似的数据,通常k是不大于20的整数。
  4)选择k个最相似数据中出现次数最多的分类,作为新数据分类。
3、电影分类的例子
  使用k-近邻算法分类爱情片和动作片。有人统计过很多电影的打斗镜头和接吻镜头,如下图6部电影的打斗和接吻镜头数。假如有一部未看过的电影,如何确定它是爱情片还是动作片呢?

  1)首先我们需要知道这个未知电影存在多少个打斗镜头和接吻镜头,上图问号代表未知电影出现的镜头数图形化展示。
  2)计算未知电影与样本集中其他电影的距离
  3)按距离递增排序,可以找到k个距离最近的电影。假定k=3,距离最近的散步电影类型都是爱情片,因此可以判断未知电影是爱情片。
4、使用python实现

$ python
$ import kNN


[size=10.5000pt]5、使用KNN算法改进约会网站的配对效果

1、将文本记录到转换Numpy的解析程序
$ datingDataMat,datingLabels=kNN.file2matrix('datingTestSet2.txt')
2、使用Matplotlib创建散点图
$ from numpy import array
$ import matplotlib
$ import matplotlib.pyplot as plt
$ fig=plt.figure()
$ ax=fig.add_subplot(111)
$ ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels))
$ plt.show()

运行效果如下:
3、归一化特征值(自动将数据特征值转为为0到1的区间)

$ normMat,ranges,minVals=kNN.autoNorm(datingDataMat)
$ normMat
  array([[0.33060119,0.58918886,0.59540619],
  [0.49199139,0.50262471,0.69043973],
  [0.34858782,0.68886842,0.13468257],
  ...        
  [0.93077422,0.52696233,0.58885466],
  [0.76626481,0.44109859,0.88192528],
  [0.0975718,0.02096883,0.02443895]])
$ ranges
  array([8.78430000e+04,2.02823930e+01,1.69197100e+00])
       $ minVals
  array([0.,0.,0.001818])

4、测试
测试约会网站分类代码
       $ kNN.datingClassTest()
运行结果如下:
预测约会网站
$ kNN.classifyPerson()
[size=10.5000pt]6、手写数字识别系统
$ kNN.handwritingClassTest()
运行结果如下:

kNN.rar (3.32 MB, 下载次数: 5)


回复

使用道具 举报

285

主题

451

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13755
沙发
发表于 2015-12-19 12:37:46 | 只看该作者
进展真快,赞
我是笨鸟,我先飞!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|陕ICP备15012670号-1    

GMT+8, 2024-5-19 01:43 , Processed in 0.108068 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表