import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
第二行:导入datasets数据集
第三行:train_test_split 的作用是将数据集随机分配训练集和测试集。
第四行:采用的模型是,KNeighborsClassifier,实现 k 最近邻投票的分类器。
iris = datasets.load_iris()
iris_X = iris.data
iris_y = iris.target
第一行,获取鸢尾花数据集
第二行,将data存入iris_X
第三行,将标签存入iris_y?
print(iris_X[:2, :])
print(iris_y)
第一行,打印数据的前两行
第二行,打印标签
输出结果为:
[[5.1 3.5 1.4 0.2]
?[4.9 3. ?1.4 0.2]]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
?0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
?1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
?2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
?2 2]
X_train, X_test, y_train, y_test = train_test_split(
? ? iris_X, iris_y, test_size=0.3)
print(y_train)
第一行,函数 train_test_split?将数据集乱序分为训练集和测试集。
第三行,打印y_train查看
输出结果为:
[1 1 2 0 0 2 2 0 0 0 1 0 2 0 2 1 0 1 0 2 2 2 0 1 0 2 2 2 1 0 0 1 0 0 0 0 2
?2 1 0 1 0 0 1 2 2 2 2 2 2 1 2 1 1 1 2 1 1 2 0 2 1 0 2 2 0 1 1 1 2 2 1 1 0
?1 0 1 1 2 2 2 2 1 1 0 0 0 2 1 0 0 1 1 2 0 0 0 2 2 0 2 1 0 0 2]
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
第一行,类实例化
第二行,完成模型训练
print(knn.predict(X_test))
print(y_test)
对比模型预测的标签和原标签
输出结果为:
[1 2 0 0 0 2 2 0 2 1 1 0 1 2 1 1 0 1 0 1 1 0 0 0 2 1 0 0 1 1 2 2 2 0 2 1 2
?1 2 2 2 1 0 2 1]
[1 2 0 0 0 2 2 0 2 1 1 0 1 2 1 1 0 1 0 1 1 0 0 0 2 1 0 0 1 1 2 2 2 0 1 1 2
?1 2 1 2 1 0 2 1]