KNN算法
利用这个算法,学习一些机器学习中的基本概念。KNN是分类算法。
物以类聚人以群分的思想,KNN是一个没有学习过程的,不算模型,消耗的运算量比较大。
一、算法的数学原理
两点的距离计算,二维是勾股定理,三维和高维是类似的。
二、手写代码实现
三、scikit-learn 算法库实现
https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html#sklearn.neighbors.KNeighborsClassifier
API文档 : https://scikit-learn.org/stable/modules/classes.html
机器学习的目标是对未知数据进行预测。
神器之一:学习曲线
超参数k的选定是KNN的头号问题,第一步就是用学习曲线。
超参数:模型不能进行学习,只能有人工进行指定(就像神经网络的层数和每层的神经元,也是需要人工设定的)
参数:模型在学习拟合的过程中可以自己去寻找最优值
神器之二:K-fold交叉验证
训练集、测试集,验证集(20%,就是五折验证)