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
上一篇: MarkDown语法基本使用
下一篇: DM07-Ensemble组合技术
推荐阅读
-
python_sklearn机器学习算法系列之sklearn.naive_bayes朴树贝叶斯算法
-
python_sklearn机器学习算法系列之k-NearestNeighbor(K最近邻分类算法)
-
《机器学习实战》个人学习记录笔记(三)———k-近邻算法实战之sklearn手写数字识别
-
java实现K近邻算法 博客分类: 机器学习 机器学习
-
java实现K近邻算法 博客分类: 机器学习 机器学习
-
python人工智能——机器学习——分类算法-k近邻算法
-
机器学习 之k-近邻算法实战案例学习
-
python_sklearn机器学习算法系列之Decision_tree(决策树算法)-DecisionTreeClassifier
-
机器学习——最邻近规则分类(K Nearest Neighbor)KNN算法
-
机器学习之KNN最邻近分类算法