机器学习实战Machine Learning In Action 中的KNN代码详细解释
来源:互联网 发布:淘宝处理不公平 编辑:程序博客网 时间:2024/05/01 11:32
Author:王磊
email: WL_9322@163.com
注:一起学习。
首先,是构造一个分类器函数classify0(),代码如下:
def classify0(inX, groups, lables, key): dataSetSize = groups.shape[0] diffMat = tile(inX, (dataSetSize, 1)) - groups sqDiffMat = diffMat**2 sqDistances = sqDiffMat.sum(axis=1) distances = sqDistances**0.5 sortedDistIndicies = distances.argsort() classCount = {} for i in range(key): voteLable = lables[sortedDistIndicies[i]] classCount[voteLable] = classCount.get(voteLable, 0) + 1 sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True) return sortedClassCount[0][0]
groups.shape[0]
获取groups数组行数,参数0代表行,1代表列。不传参数返回数组的(行,列)
diffMat = tile(inX, (dataSetSize, 1)) - groups
利用tile()函数来构造一个dataSetSize行的inX数组,参数中的inX为将要用来构造数组的原始数据,后面的元组(dataSetSize,1)就是指定这个数组的大小了,tile()函数的第二个参数可以有整形、元组两种选择。
sqDistances = sqDiffMat.sum(axis=1)
将sqDistances数组中的每行中的元素求和,sum()函数中的参数axis=1代表行相加,axis=0代表列相加
sortedDistIndicies = distances.argsort()
argsort()为排序函数,这个排序函数的返回值是每个元素的索引
classCount[voteLable] = classCount.get(voteLable, 0) + 1
字典的get()函数,第一个参数为你想要在字典中查找的字母,第二个参数是人为设定的一个值,这里设定了是0。如果在字典中找到了这个字母,则返回的是这个字母所对应的value值,如果没有找到就返回你设定的这个值0,在第一次查找过程中因为字典是空的,所以找不到,返回时设定值0,然后加1,这样此时的字母对应的value就是1了。在下次查找时,如果你找到了这个字母,那它返回的就是它对应的value值1了,然后在加1,此时这个字母对应的value又成了2,以此类推。(这个函数真是太美妙了,这就是python代码的简洁优美特性了吧。)
sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)
classCount.iteritems()就是将字典迭代化,意思就是字典可以迭代了,就是可以for循环了。
key=operator.itemgetter(1)就是按字典中的第二个元素进行排序
reverse=True,True代表降序排序,False升序,默认False
- 机器学习实战Machine Learning In Action 中的KNN代码详细解释
- 《 机器学习实战》(Machine Learning in Action) 一书 中的错误之处(内容、代码)
- 人工智能--机器学习实战总结(Machine Learning in Action )
- 机器学习实战(Machine Learning in Action)参考答案以及原始数据
- 【机器学习实战】Machine Learning in Action 代码 视频 项目案例
- MACHINE LEARNING IN ACTION KNN
- Machine Learning in Action/机器学习实践:kNN算法之约会问题
- 机器学习实战(Machine Learning in Action)笔记--Chapter1:机器学习基础
- 小白学习Machine Learning in Action-机器学习实战------Python基础
- 小白学习Machine Learning in Action-机器学习实战------分类之k近邻算法
- 小白学习Machine Learning in Action-机器学习实战------决策树
- Machine Learning In Action:KNN(Python)
- Machine learning in action ch02 KNN笔记
- 【Machine Learning in Action】Chap1|Classification|kNN
- 机器学习实战代码详细注释之kNN算法
- Machine Learning in Action 学习笔记-(2)kNN k近邻算法
- Machine Learning In Action -- kNN的python实现
- Machine Learning In Action -- kNN (k Nearest Neighbors)
- centos7.2配置网络
- SIM900A(GSM模块)学习
- 【深入理解Linux内核】【分页】相关函数或宏
- JAVA多线程和并发基础面试问答
- 输入阻抗、输出阻抗和阻抗匹配
- 机器学习实战Machine Learning In Action 中的KNN代码详细解释
- Python实现协程的生产者与消费者
- 2016"百度之星" - 资格赛(Astar Round1)
- tomcat超时设置
- 查看linux服务器硬盘IO读写负载
- UVA - 10474 Where is the Marble?
- Linux搭建python环境
- NYOJ 42 一笔画问题(欧拉定理&&并查集)
- 特殊的棋子(bfs)(北理16校赛)