【学习笔记】数据分析Python机器学习 K近邻算法 K最近邻(kNN,k-Nearest Nei ...-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 数据>>

数据分析

>>

【学习笔记】数据分析Python机器学习 K近邻算法 K最近邻(kNN,k-Nearest Nei ...

【学习笔记】数据分析Python机器学习 K近邻算法 K最近邻(kNN,k-Nearest Nei ...

发布:于家崎 | 分类:数据分析

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

获取电子版《CDA一级教材》

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

数据分析Python机器学习K近邻算法K最近邻(kNN,k-NearestNeighbor):工作原理:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即每一个数据与所属分类的一一对应关系。输入没有标签的 ...
免费学术公开课,扫码加入


数据分析Python机器学习
K近邻算法
K最近邻(kNN,k-Nearest Neighbor):
工作原理:存在一个样本数据集合,也称作为训练样本集,并且样 本集中每个数据都存在标签,即每一个数据与所属分类的一一对应 关系。输入没有标签的新数据后,将新的数据的每个特征与样本集 中数据对应的特征进行比较,然后算法提取样本最相似数据(最近邻) 的分类标签。
一般来说,只选择样本数据集中前k个最相似的数据,这就是k-近邻 算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数 据中出现次数最多的分类,作为新数据的分类。
距离度量:
欧氏距离(最常用),曼哈顿距离,马氏距离,夹角余弦(越接近1,越相似)
k-近邻算法步骤:
计算已知类别数据集中的点与当前点之间的距离;
按照距离递增次序排序;
选取与当前点距离最小的k个点;
确定前k个点所在类别的出现频率;
返回前k个点所出现频率最高的类别作为当前点的预测分类
k-近邻算法实战:数据归一化
如果不同特征变量的量纲级别相差较大且在建模时相互影响,我们通常会对数据进行预处理,该手段称为数据标准化或数据归一化。
常见方法有min—max标准化(也称离差标准化):newValue = (oldValue - min) / (max - min)
Z—score标准化(也称均值归一化)
超参数优化
KNN中的k是一个超参数,需要人为输入。从KNN原理中可知,k值对 算法有极大的影响。
如果选择的k值较小,就相当于较小的邻域中的训练实例进行预测, 这时候只有与输入实例较近的(相似的)训练实例才会对预测结果 起作用,但缺点是预测结果会对近邻的实例点非常敏感。如果邻近 的实例点恰好是噪声,预测就会出错。相反地,如果选择的k值较大, 就相当于较大的邻域中的训练实例进行预测。这时与输入实例较远 的(不相似的)训练实例也会对预测起作用,使预测发生错误。
交叉验证优化超参数
模型每次使用不同的训练集和测试集,有不同的测试结果
机器学习追求的是模型在未知数据集上的效果,通过交叉验证进一 步提高模型的泛化能力
KNN总结:
一种非参数、惰性学习方法,导致预测时速度慢
当训练样本集较大时,会导致其计算开销高
样本不平衡的时候,对稀有类别的预测准确率低
KNN模型的可解释性不强
代码实现:
例子:鸢尾花分类
import numpy as np
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
# 导入鸢尾花数据并查看数据特征
iris = datasets.load_iris()
print(\'数据量\',iris.data.shape)
# 拆分属性数据
iris_X = iris.data
# 拆分类别数据
iris_y = iris.target
iris_train_X , iris_test_X, iris_train_y ,iris_test_y = train_test_split(iris_X, iris_y, test_size=0.2,random_state=0)
knn = KNeighborsClassifier(n_neighbors=6)
knn.fit(iris_train_X, iris_train_y)
predict_result=knn.predict(iris_test_X)
print(\'预测结果\',predict_result)
# 计算预测的准确率
print(\'预测准确率\',knn.score(iris_test_X, iris_test_y)) #knn.score()涵义先做预测,再比较
回归
X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
from sklearn.neighbors import KNeighborsRegressor
neigh = KNeighborsRegressor(n_neighbors=2)
neigh.fit(X, y)
print(neigh.predict([[1.5]]))
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-9522832-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
数据分析师 人大经济论坛 大学 专业 手机版
联系客服
值班时间:工作日(9:00--18:00)