Scikit-Learn(sklearn)中的KNeighborsClassifier对鸢尾花进行分类

案例

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

iris = datasets.load_iris()  # 鸢尾花数据集
iris_X = iris.data  # 特征
iris_Y = iris.target  # 标签
X_train, X_test, Y_train, Y_test = train_test_split(iris_X, iris_Y, test_size=0.3)  # 随机取70%数据作为训练,30%作为测试

knn = KNeighborsClassifier()  # K近邻(K-Nearest Neighbor)分类器
knn.fit(X_train, Y_train)  # 进行分类
Y_predict = knn.predict(X_test)
print(Y_predict)  # 预测值
print(Y_test)   # 真实值
print(knn.score(X_train, Y_train))  # 正确率

输出:
[0 1 1 1 2 1 1 1 1 0 2 2 0 2 2 2 1 1 1 1 1 1 2 1 2 1 0 0 2 2 2 1 0 0 2 1 2
1 1 0 1 0 1 2 1]
[0 1 1 1 2 2 1 1 1 0 2 2 0 2 2 2 1 1 1 2 1 1 2 1 2 1 0 0 2 2 2 2 0 0 2 1 2
1 1 0 1 0 1 2 1]

对比可知,除了个别数据预测失败,绝大部分都预测正确。

sklearn的数据集datasets

sklearn提供的常用数据集都在datasets模块中
https://blog.csdn.net/weixin_42039090/article/details/80614918

sklearn的train_test_split

注意:旧版本的导入该模块是:from sklearn.cross_validation import train_test_split
新版本改成了:from sklearn.model_selection import train_test_split
train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签。
格式:
X_train,X_test, y_train, y_test =cross_validation.train_test_split(train_data,train_target,test_size=0.3, random_state=0)
参数解释:
train_data:被划分的样本特征集
train_target:被划分的样本标签
test_size:如果是浮点数,在0-1之间,表示样本占比;如果是整数的话就是样本的数量
random_state:是随机数的种子。
随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:
种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。

scikit-learn K近邻法(KNN)类库使用小结

https://www.cnblogs.com/pinard/p/6065607.html

你可能感兴趣的:(Scikit_learn)