k近邻法(k-nearest neighbor, k-NN)
原理:
存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。 最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
优缺点:
优点:精度高、对异常值不敏感、无数据输入假定。
缺点:计算复杂度高、空间复杂度高。
适用范围:数值型和标称型。
sklearn简介
sklearn(Scikit learn),是机器学习领域当中最知名的python模块之一。
使用sklearn可以很方便的实现一个机器学习算法。 有效减少我们特定任务的实现周期。达到只需要调用几行API即可实现一个复杂算法的效果。
包含了很多机器学习的方式:
Classification 分类
Regression 回归
Clustering 非监督分类
Dimensionality reduction 数据降维
Model Selection 模型选择
Preprocessing 数据与处理
Python实践案例:sklearn手写数字识别
已知: 软件处理后的 “需要识别的数字 ”的TXT数据文件。
特点: 具有相同的色彩和大小:宽高是32像素x32像素。
文件有统一命名格式:数字的值_该数字的样本序号
按 0-9 十个数字分类的文件,每个数字200个样本
求: 未知数字文件是 0-9 中哪一个数字
代码:
结果:
学习来源:《机器学习实战》 [美] Peter Harrington
Jack Cui 博文https://cuijiahua.com/