当前位置:首页 >> 节能

一文深度验证K-最近邻监督学习机器算法

来源:节能   2025年02月14日 12:17

pyplot as plt

import pandas as pd

2.启动时Iris原始数据集

镜像

url = ""

#以外至多名称

names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'Class']

#格式化原始数据集

dataset = pd.read_csv(url, names=names)

至此的督漏结果如下所示:

3.原始数据模板

这样做是为了将原始数据集拆分为属性和页面。X变数将包含原始数据集的前所四至多,我们称做属性,y变数将包含最后一至多,我们称做页面。

镜像

X = dataset.iloc[:, :-1].values

y = dataset.iloc[:, 4].values

4.划分为受训集与次测试集

在这一步里,我们将把原始数据集分变为受训和次测试两部分,从而明白方例对受训原始数据的自学往往,以及它在次测试原始数据上的表现。

镜像

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)

5.形态纹理

形态纹理是在分析之前所对原始数据模板的一个重要流程。下面的方例用于在实践中原始数据的形态范围。

镜像

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()

scaler.fit(X_train)

X_train = scaler.transform(X_train)

X_test = scaler.transform(X_test)

6.用KNN做出分析

首先,我们能够从sklearn.neighbors库漏入KNeighborsClassifier类,然后可选择K差值。在这个比如说里我可选择了7(忘记,强烈提议可选择一个相加差值以避免平手情况)。

镜像

from sklearn.neighbors import KNeighborsClassifier

classifier = KNeighborsClassifier(n_neighbors=7)

classifier.fit(X_train, y_train)

然后,我们继续对次测试原始数据集展开分析。

y_pred = classifier.predict(X_test)

7.方例准确性审计

利用sklearn.metrics库,我们可以通过形态学分析报告来审计方例的准确性,查看精准度、被免职部将和F1分数。

镜像

from sklearn.metrics import classification_report

print(classification_report(y_test, y_pred))

下面注意到该文档的督漏结果:

由此我们可以可知,KNN方例对30个原始数据点展开了形态学,平均总准确部将为95%,被免职部将为93%,F1分数为94%。

8.寻找恰当的K差值

在比如说里,我可选择了K差值为7。如果我们想检查最佳K差值是什么,我们可以生变为一个图解以显示多种不同的K差值及其产生的错误部将。我将分析1到30之两者彼此之间的K差值情况。为此,我们能够在1到30之两者彼此之间督漏一个可逆,在每次可逆期两者彼此之间推算平均误差并将其添加到误差至多表里。系统性文档如下:

镜像

error = []

#推算1到30之两者彼此之间的K差值的错误部将

for i in range(1, 30):

knn = KNeighborsClassifier(n_neighbors=i)

knn.fit(X_train, y_train)

pred_i = knn.predict(X_test)

error.append(np.mean(pred_i != y_test))

绘制K差值错误部将图:

镜像

plt.figure(figsize=(12, 5))

plt.plot(range(1, 30), error, color='red', marker='o',

markerfacecolor='yellow', markersize=10)

plt.title('Error Rate K Value')

plt.xlabel('K Value')

plt.ylabel('Mean Error')

输出三维如下:

三维;也:本文写作者子程序输出结果

从上图可以可知,平均误差为0的K差值主要在k差值13-23之两者彼此之间。

五、归纳

KNN是一种难于解决问题的简单的数据分析方例,可用于督漏数据分析全过程里的回归和形态学特殊任务。其里,K差值是一个匹配,表示最有约比邻的数差值。实际分析方法里,提议把K差值以外为相加。另外,在KNN方例里你可以可选择多种不同的一段距离度量方例(最常见的是用到欧几里得一段距离、布朗克斯一段距离和大明可格勒一段距离)。

原文链接:

里文翻译介绍

朱先忠,51CTO生态村编辑,51CTO专家博客、讲师,潍坊一所高校推算机教师,自由编程界战友一枚。最初专心各种Microsoft另行技术(编著变为ASP.NET AJX、Cocos 2d-X系统性三本另行技术图书),有约十多年投身于开源世界(熟识流行全栈Web开发另行技术),明白基于OneNet/AliOS+Arduino/ESP32/树莓为首等科技开发另行技术与Scala+Hadoop+Spark+Flink等大原始数据开发另行技术。

驻马店妇科医院哪家看的好
镇江妇科专科医院
成都妇科医院去哪家好
苏州白癜风医院哪里最好
南京看肛肠去哪个医院好
什么血糖仪准确度高
艾司奥美拉唑和金奥康哪个效果好
血糖仪哪个牌子好
准确率高的家用血糖仪
复方鱼腥草合剂和蓝芩口服液哪个效果好
友情链接