博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的《机器学习实战》读书笔记(1)
阅读量:7078 次
发布时间:2019-06-28

本文共 1390 字,大约阅读时间需要 4 分钟。

    《机器学习实战》是一本很好的机器学习相关的入门书籍。

    但是上面的很多代码的注释不是很详细,向我这样还不是很熟徐Python语法的新手来说理解起来有很多麻烦。
    我的读到了K-近邻算法,我敲了敲书上的示例代码,并且加上了详细的注释。

import operatorfrom numpy import *def createDataSet():    group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])    labels = ['A', 'A', 'B', 'B']    return group, labelsdef classsify0(inX, dataSet, labels, k):    dataSetSize = dataSet.shape[0]    # 以下三行,计算距离    # tile:将inX在行方向重复dataSetSize次,列方向重复1次,也就是生成与dataSet行列数相同的矩阵    diffFMat = tile(inX, (dataSetSize, 1)) - dataSet    sqDiffMat = diffFMat**2    # 矩阵 axis=1 每一行相加,axis=0,是每一列相加    sqDistances = sqDiffMat.sum(axis=1)    distances = sqDistances**0.5    # 将distances中的元素从小到大排列,提取其对应的index(索引),然后输出到sortedDistIndicies    sortedDistIndicies = distances.argsort()    classCount = {}    # 计算最小的k个点中,有几个A,有几个B,放到一个字典里面    for i in range(k):        voteIlabel = labels[sortedDistIndicies[i]]        classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1    # 将字典排序    sortedClassCount = sorted(classCount.items(),                              key=operator.itemgetter(1), reverse=True)    return sortedClassCount[0][0]group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])labels = ['A', 'A', 'B', 'B']print(classsify0([0, 0], group, labels, 3))复制代码

图1

    这里解决的问题是,已知在二维坐标系中有4个点,其中有两个A,两个B,已知它们的坐标,求坐标[0, 0]的点是属于A还是B。

    答案是:B
    K近邻算法解决这个问题的思路是,选择K个(代码中是3个)距离[0, 0]最近的点,看这K个点中到底是A的数量多,还是B的数量多。最终:([('B', 2), ('A', 1)]),B的数量多。

转载地址:http://tbvml.baihongyu.com/

你可能感兴趣的文章
《Python语言程序设计》——2.12 实例研究:显示当前时间
查看>>
码云推荐 | WEB 网页端在线流程设计器
查看>>
《编译与反编译技术实战》——第3章词法分析器的设计与实现
查看>>
《数据分析实战:基于EXCEL和SPSS系列工具的实践》一3.4.2 用专业工具处理
查看>>
MySQL运维之神奇的参数(终结篇)
查看>>
《Photoshop图层调整深度剖析》目录—导读
查看>>
《Wireshark网络分析就这么简单》—Excel文件的保存过程
查看>>
《高度安全环境下的高级渗透测试》—第1章1.4节探索BackTrack
查看>>
《Origin 9.0科技绘图与数据分析超级学习手册》一2.5 本章小结
查看>>
深度解析 API 监控那些事儿
查看>>
互联网企业安全高级指南3.7.3 因地制宜的SDL实践
查看>>
centos7.0体验与之前版本的不同
查看>>
《Docker生产环境实践指南》——1.2 从开发环境到生产环境
查看>>
Java NIO系列教程(五) 通道之间的数据传输
查看>>
open-falcon安装使用监控树莓派
查看>>
【基础篇】零碎时间整理JS
查看>>
理解 Android Battery 信息
查看>>
js红宝书总结-正则表达式
查看>>
Python2.7爬取acg178全站(大雾)
查看>>
iview 使用render渲染InputNumber,并格式化数字
查看>>