当前位置:首页 >> 中医诊断 >> 一文深度解析K-最近西南边监督学习机器算法

一文深度解析K-最近西南边监督学习机器算法

发布时间:2023-03-05

t 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))

下面假定该code的分唆使结果:

由此我们可以看出,KNN迭代对30个数据资料点来进行了分类法,平均总准确百余人为95%,召回百余人为93%,F1平均包含94%。

8.找应该的K并不一定值

在本例里面,我必需了K并不一定值为7。如果我们想检查最佳K并不一定值是什么,我们可以生成一个左图片以揭示完全相同的K并不一定值及其产生的权重。我将研究1到30中之间的K并不一定值上述情况。为此,我们能够在1到30中之间分唆使一个循环,在每次循环其之间测算平均偏差并将其移除到偏差一览表里面。相关code如下:

激活

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等大数据资料其产品。

武汉看癫痫去哪家医院比较好
宁波看白癜风的医院哪家好
海露玻璃酸钠滴眼液治眼睛疼吗
驻马店看白癜风去哪个医院好
温州市最好的男科医院
标签:
友情链接: