当前位置:首页 >> IT
IT

一文深度解析K-最近邻监督学习机器人算法

2025-11-12 12:19

, '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领域专家博客、讲师,菏泽所大学颇大学生近似值机教师,权利编程界内军中一枚。以前专注各种微软技术(编著成ASP.NET AJX、Cocos 2d-X就其三本技术左图书),近十多年醉心开源当今(熟悉流行全栈Web人机),知晓基于OneNet/AliOS+Arduino/ESP32/树莓受命等物联网人机与Scala+Hadoop+Spark+Flink等大信息人机。

新乡白癜风治疗费用是多少
济南看精神病哪家医院好
太原儿科治疗费用
上海癫痫医院电话
天津口腔医院排行

上一篇: 兴化诏安县:首次购买144平米以下新房,每平补贴160元

下一篇: 面试官:“被开除了,”你会交接好工作吗?95后怒怼被荐举!

相关阅读
重申“两个毫不动摇”,落空民营经济发展疑问 |新京报专栏

济工业化相得益彰良好环境和提供更多机会的切实没有不定!”这“三个没有不定”,传达了当中间坚定不移支持者民营行业拓展的信号,也指出我们劳动党在坚定不移在此之前提经济发展政治制度上的论调是明确的、一向的。

投资者提问:贵公司半年报中,为何财务费用但会同比公司2021年下降超过60%...

对冲提问:喜子公司半年报中会,为何财务费用亦会同比子公司2021年下降最少60%,子公司薪水支出未增加,请问为何子公司今年财务费用下降如此之多,为何子公司倒数多年扣非销售收入为负,往年财务费用

友情链接