机器学习简明教程13-sklearn实现KNN分类算法

机器学习简明教程13-sklearn实现KNN分类算法
jiutian99
jiutian99
70
阅读
0
评论
2021年10月10日13:23:55 0 70

Python Sklearn 机器学习库提供了 neighbors 模块,该模块下提供了 KNN 算法的常用方法,如下所示:

类方法 说明

KNeighborsClassifier KNN 算法解决分类问题

KNeighborsRegressor KNN 算法解决回归问题

RadiusNeighborsClassifier 基于半径来查找最近邻的分类算法

NearestNeighbors 基于无监督学习实现KNN算法

KDTree 无监督学习下基于 KDTree 来查找最近邻的分类算法

BallTree 无监督学习下基于 BallTree 来查找最近邻的分类算法

本节可以通过调用 KNeighborsClassifier 实现 KNN 分类算法。下面对 Sklearn 自带的“红酒数据集”进行 KNN 算法分类预测。最终实现向训练好的模型喂入数据,输出相应的红酒类别,示例代码如下:

#加载红酒数据集

from sklearn.datasets import load_wine

#KNN分类算法

from sklearn.neighbors import KNeighborsClassifier

#分割训练集与测试集

from sklearn.model_selection import train_test_split

#导入numpy

import numpy as np

#加载数据集

wine_dataset=load_wine()

#查看数据集对应的键

print("红酒数据集的键:\n{}".format(wine_dataset.keys()))

print("数据集描述:\n{}".format(wine_dataset['data'].shape))

# data 为数据集数据;target 为样本标签

#分割数据集,比例为 训练集:测试集 = 8:2

X_train,X_test,y_train,y_test=train_test_split(wine_dataset['data'],wine_dataset['target'],test_size=0.2,random_state=0)

#构建knn分类模型,并指定 k 值

KNN=KNeighborsClassifier(n_neighbors=10)

#使用训练集训练模型

KNN.fit(X_train,y_train)

#评估模型的得分

score=KNN.score(X_test,y_test)

print(score)

#给出一组数据对酒进行分类

X_wine_test=np.array([[11.8,4.39,2.39,29,82,2.86,3.53,0.21,2.85,2.8,.75,3.78,490]])

predict_result=KNN.predict(X_wine_test)

print(predict_result)

print("分类结果:{}".format(wine_dataset['target_names'][predict_result]))

输出结果:

红酒数据集的键:

dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names'])

数据集描述:

(178, 13)

0.75

[1]

分类结果:['class_1']

最终输入数据的预测结果为 1 类别。


打赏 点赞(0)
weinxin
投诉建议
文章名+链接地址,发送到此微信:tourism52
历史上的今天
05月
18
WML,标签,WML,标签,是,中的,文本,元素,与,HTML, 菜鸟教程

WML <p> 标签

WML p 标签 p标签是 WML 中的文本元素,与 HTML 中的 p 标签一样,它可以用于表示一个段落。 定义和用法 p 标签定义一个段落。 语法 p..text....ima...
学习,c++,第六 菜鸟教程

学习C++第六天

运算符作用:用于执行代码的运算,可分为以下四种:算术运算符 用于处理四则运算赋值运算符 用于将表达式的值赋给变量比较运算符 用于表达式的比较逻辑运算符 用于根据表达式的值返...
XPATH,简单,使用,XPATH,简单,使用,今天,来,介绍, 菜鸟教程

XPATH简单使用

XPATH简单使用 今天来介绍下XPATH的简单使用 1、 要使用XPATH,首先要了解什么是XPATH? XPATH是用来在XML中查找指定的元素,它是一种路径表达式。 2、 X...
Highcharts,树状,图,Treemap,Highcharts,树状,图,Treemap, 菜鸟教程

Highcharts 树状图(Treemap)

Highcharts 树状图(Treemap) 我们将为大家介绍 Highcharts 的热点图。 我们在前面已经了解了 Highcharts 配置语法。接下来让我们来看下 Hig...
javascript,声明,提升 菜鸟教程

JavaScript 声明提升

JavaScript 声明提升JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。以下两...
计算机为什么用二进制和十六进制 菜鸟教程

计算机为什么用二进制和十六进制

现代计算机的存储和处理的信息以二值信号来表示,这些用0和1来表示的二进制数字,形成了数字革命的基础。对于有10个手指的人类来说,使用十进制表示法是很自然的事情,但是对构造存储和处理...

Comment list 共有 0 条评论

暂无评论