K近邻(KNN)算法
最容易理解的算法.
最容易实现的算法.
KNN的核心思想
简单的来说就是给定一个预测目标,接下来计算预测预测目标和所有样本之间的距离或者相似度,然后选择距离最近的前K个样本,然后通过这些样本来投票决策.
不同的K值,会对预测产生不同的影响.
实现一个KNN
1、把一个物体表示成向量:这也叫做"特征工程",模型的输入一定是数量化的信息,我们需要把显示生活中的物体表示成向量\矩阵\张量的形式
2、标记好每个物体的标签
3、计算两个物体之间的距离(相似度):计算欧式距离.
4、选择合适的k:为了选择合理的K,首先下幼去理解K对模型的影响,为了理解K对模型的影响,需要先理解什么叫模型的决策边界.
决策边界:例:大学里60分以上作为及格,60分以下不及格,则60分就是一个决策边界.
决策边界的分类:线性决策边界和非线性决策边界。拥有线性决策边界的模型我们称为线性模型,反之非线性模型。
模型的泛化能力:可以简单理解成“它在新的环境中的适应能力”,当然这个环境需要跟已有的环境类似才行。
交叉验证
就是大多数人所说的"调参"的过程.核心思想就是把一些可能的K逐个去尝试一遍,然后选出效果最好的K值.
把训练数据进一步分成训练数据和验证集,选择在验证数据里最好的超参数组合.
最常用的交叉验证技术叫做K折交叉验证(K-fold Cross Validation).
Leave-one-out交叉验证(也叫留一法,是K折交叉验证的一个特例)
特征缩放
总体来讲,有两种常见的特征标准化的方法。它们分别是线性归一化和标准差归一化。其中,线性归一化指的是把特征值的范围映射到[0,1]区间,标准差标准化的方法使得把特征值映射到均值为0,标准差为1的正态分布
线性归一化
标准差标准化