4-kNN-k近邻算法(k-Nearest Neighbors)

4-kNN-k近邻算法(k-Nearest Neighbors)

4-1 kNN算法基础

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4-2 scikit-learn中的机器学习算法封装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4-3 训练数据集,测试数据集

在这里插入图片描述
在这里插入图片描述

4-4 分类准确度

4-5 超参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
KNN算法没有模型参数,只有一个超参数K,就是相邻点的数量。
但是如果考虑相邻点的距离占据权重,那么相邻的点都需要赋予权值,一般都是 取距离的导数加权,1/distance。
可以参考scikit-learn关于KNN的官方文档说明。
KNN的参数说明:https://scikit-learn.org/stable/modules/neighbors.html
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
官方文档关于KNN相关参数的介绍:
https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html
在这里插入图片描述

4-6 网格搜索与k近邻算法中更多超参数

在这里插入图片描述
在这里插入图片描述

sklearn.neighbors.DistanceMetric也可以认为是一种超参数,但是这个参数好像和p是互斥的。
在这里插入图片描述
参考文档:https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.DistanceMetric.html#sklearn.neighbors.DistanceMetric

4-7 数据归一化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4-8 scikit-learn中的Scaler

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在官方文档找到的主要归一化的方式应该是四种,比较常用的有均值方差归一化和最值归一化,相关文档说明如下:
均值方差归一化:
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler
最值归一化:
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html#sklearn.preprocessing.MinMaxScaler

1.均值方差归一化 StandardScaler

z = (x - u) / s —— 减均值除均方差(但是验证数据的时候,还是有偏差,没搞明白)
文档里的例子,官方文档的链接里有许多样本案例。

>>> from sklearn.preprocessing import StandardScaler
>>> data = [[0, 0], [0, 0], [1, 1], [1, 1]]
>>> scaler = StandardScaler()
>>> print(scaler.fit(data))
StandardScaler()
>>> print(scaler.mean_)
[0.5 0.5]
>>> print(scaler.transform(data))
[[-1. -1.]
 [-1. -1.]
 [ 1.  1.]
 [ 1.  1.]]
>>> print(scaler.transform([[2, 2]]))
[[3. 3.]]

在这里插入图片描述
和Z-score标准化好像是一个东西。

2.最值归一化 MinMaxScaler

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min
在这里插入图片描述

4-9 更多有关k近邻算法的思考

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结

KNN是没有模型参数,超参数1个以上的分类算法(n_neighbors是一定存在的,但是p和distance在特定情况下也是超参数),而且可以用于多分类问题。
本文暂时以文字和图片为主,具体的代码在ipynb上运行过了,等下次复习回顾的时候,再整理过来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值