KNN算法(K-Nearest Neighbors)属于分类算法,思想简单,作为机器学习入门也是再好不过了。
算法的核心思想:对于未标记样本的类别,由距离其最近的k个邻居投票来决定。
距离的衡量标准:欧拉距离,适用于二维和三维的距离计算。
机器学习的流程:
输入大量数据(训练集X_train,y_train)-->对机器学习模型进行学习-->然后输入预测样本(测试集X_test,y_test)-->直到得到可行的模型
寻找最优的参数:
(1)模型参数:通过算法学习出来的参数
(2)超参数:不能被训练,模型学习之前需要提前设置的参数(具体可用网格搜索的方式进行)
为什么要在数据预处理时进行数据归一化(将所有数据映射到同一尺度中)
问题:在计算两个样本在空间中的欧拉距离时,主要被大的特征决定
解决方法:
(1)最值归一化:把所有数据映射到(0~1)之间
x=(x-最小值)/(最大值-最小值)
特点:适用于分布有明显边界的情况,如身高,考试成绩
缺点:受到异常值的影响较大
(2)均值方差归一化:把所有数据归一到均值为0,方差为1的分布中
x = (x-均值)/标准差
优点:相对于最值归一化,即使原数据中有极端值,依然满足均值为0,方差为1的数据分布。
【归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)】具体可参考:https://www.jianshu.com/p/95a8f035c86c
【有了方差为什么需要标准差?】具体可参考:https://www.zhihu.com/question/20534502
网友评论