KNN算法
KNN算法简介
[理解]KNN算法思想: 如果一个样本在特征空间中的k个最相似的样本中的大多数术语某一个类别,则该样本主语这个类型
样本相似性:样本都是属于一个任务数据集的.样本距离越近则越相似
[知道] k值的选择:
k值过小: 相当于较小领域中的训练实例进行预测容易受到异常点的影响
k值减小就意味着整体模型变得复杂,容易发生过拟合
k值过大:相当于较大领域中的训练实例进行预测受到样本均衡的问题
且k值的增大就意味着整体的模型变得简单,欠拟合
[知道]KNN的应用方式
解决问题: 分类问题,回归问题
算法思想: 若一个样本在特征空间中的k最相似的样本大多数属于某一个类别,则该样本也属于这个类别
相似性:欧式距离
分类问题的处理流程:
1.计算未知样本到每一个训练样本的距离
2.将训练样本根据距离大小升序排列
3.取出距离最近的k个训练样本
4.进行多表表决,统计k个样本中的哪个类别的样本个数最多
5.将未知的样本归属到出现次数最多的类别
回归问题的处理流程:
1.计算未知样本到每一个训练样本的距离
2.将训练样本根据距离大小升序排列
3.取出距离最近的 K 个训练样本
4.把这个 K 个样本的目标值计算其平均值
5.作为将未知的样本预测的值
API介绍
分类API
sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)
回归API
sklearn.neighbors.KNeighborsRegressor(n_neighbors=5)
距离度量方法
[掌握]欧式距离
欧式距离 (Euclidean Distance)
直观的距离度量方法
两个点在空间的距离一般都是指欧式距离
二维平面上点a(x1,y1)与(x2,y2)间的欧氏距离:
三维空间点a(x1,y1,z1)与(x2,y2,z2)间的欧氏距离:
n维空间点a(x11,x12,...,x1n)与b(x21,x22,...,x2n)间的欧式距离(两个维向量):
公式
[掌握]曼哈顿距离
曼哈顿距离 (Manhattan Distance)
也称为"城市街区距离" 曼哈顿城市特点:横平竖直
二维平面两点(x1,y1)与b(x2,y2)间的曼哈顿距离
n维空间点a(x11,x12,...,x1n)与b(x21,x22,x2n)的曼哈顿距离
公式
[了解]切比雪夫距离
切比雪夫距离 Chebyshev Distance
二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离
n维空间点a(x11,x12,...,x1n)与b(x21,x22,x2n)的切比雪夫距离
公式
[了解]闵式距离
闵可夫斯基距离 minKowski Distance 闵式距离, 不是一种新的距离的度量方法 .而是距离的组合 是对多个距离度量公式的概括性的表述
两个n维变量a(x11,x12,...,x1n)与b(x21,x22,...,x2n)间的民可夫斯基距离定义为
公式
特征预处理
[知道]为什么进行归一化,标准化
特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要打出几个数量级容易影响(支配)目标结果,使得一些模型(算法)无法学习到其它特征.
[掌握]归一化
通过对原始数据进行变换吧数据映射到[mi,mx](默认维[0,1]之间
公式
数据归一化的API实现
sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
feature_range缩放空间
调用fit_transform(x)将特征进行归一化缩放
归一化受到做大事与最小值的影响,这种方法容易受到异常数据的影响,鲁棒性较差,适合传统精确小数据场景
[掌握]标准化
通过对原始数据进行标准化,转换为均值为0标准差为1的标准正态分布的数据
公式
mean为特征的平均值
σ 为特征的标准差
标准数据化的API实现
sklearn.preprocessing. StandardScaler()
调用 fit_transform(X) 将特征进行归一化缩放
对于标准化来说,如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大