python_sklearn机器学习算法系列之k-NearestNeighbor(K最近邻分类算法)

       本文主要目的是通过一段及其简单的小程序来快速学习python 中sklearn的KNeighborsClassifier这一函数的基本操作和使用,注意不是用python纯粹从头到尾自己构建KNN,既然sklearn提供了现成的我们直接拿来用就可以了,当然其原理十分重要,其主要思想是,如果一个样本在特征空间中的k个最近邻的样本中的大多数都属于某一类别,则该样本也属于这个类别,k通常是不大于20的整数,关于详细的介绍可以参考:https://blog.csdn.net/itzym/article/details/70233075

       本次用到的源数据是datasets.load_iris(),iris数据集是一个字典,可以看成150行5列的二维表。150个样本,每个样本包含了花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征(前4列)iris的每个样本都包含了品种信息,即目标属性(第5列,也叫target或label),其中有5个key键,data记录每个样本四个特征数值,target记录品种数(用0,1,2表示),target_names是具体品种名称,feature_names是具体的特征名称。

KNeighborsClassifier的使用非常简单,主要分为两步:

一:使用 fit(x_train,y_train)对训练集x, y进行训练。

二:使用predict(x_test) 训练得到的估计器对输入为x_test的集合进行预测(x_test可以是测试集,也可以是需要预测的数 据)。


代码如下:

from sklearn import datasets
from sklearn.neighbors  import KNeighborsClassifier

iris=datasets.load_iris()

'''
#这里是测试iris数据集的代码
print(iris.keys())
print(iris.data)
print(iris.target)
print(iris.data.shape)
print(iris.feature_names)
print(iris.target_names)


'''
#核心代码
knn=KNeighborsClassifier(n_neighbors=6)
knn.fit(iris['data'],iris['target'])                      #用训练集进行训练模型

x=[[4.8,2.5,3.4,1.6],[6.3,3.1,3.2,1.8]]
print(x)

#核心代码
prediction=knn.predict(x)

print(prediction)

测试iris数据集的结果如下:



预测结果:


更多算法可以参看博主其他文章,或者github:https://github.com/Mryangkaitong/python-Machine-learning

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页