前言:
kNN 是机器学习里面最简单的一个入门算法。
这里面主要提供两个例子,以及对应的样本集
目录:
一 算法流程
二 约会推荐系统
三 手写数字识别系统
一 算法流程:
1.1 输入:
样本示例集合
测试数据
1.2 流程:
s1: 样本示例集合数据归一化, 测试数据归一化
s2: 计算测试数据,与样本示例集合各个样本之间的欧式距离
s3: 排序
s4 :取距离最近的K个样本
s5: 根据K个样本的标签,进行投票,投票数最多的就是分类结果
二 约会系统:
2.1 数据集说明
玩游戏时间消耗比 | 每年飞行常客里程数 | 每周冰淇淋公升数 | 样本分类 | |
1 | 0.8 | 400 | 0.5 | 1 |
2 | 12 | 134000 | 0.9 | 3 |
3 | 0 | 20000 | 1.1 | 2 |
4 | 67 | 32000 | 0.1 | 2 |
2.2 文件:
kNN.py
kNN_Dating.py(运行文件)
2.3 数据集:
DatingTest.set
DatingTestSet2.txt
三 手写数字识别系统
3.1 文件:
kNN.py
HandNum.py
3.2 数据集:
testDigits
trainningDigits
文件保存的是二值化后的数据,不需要再单独调用PIL库进行处理
3.3 测试结果:
错误率 0.010570824524312896
3.4 比较图像相似度,传统算法还有:
灰度共现矩阵
HASH
PHASH
SIFT ,HOG ,SURF + SVM
四: 阅读文档
《机器学习实战》
链接:https://pan.baidu.com/s/1B4rey2z2wovnRk7WHUOJTw
提取码:p6fm