一、
python
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 最近邻投票的分类器。
二、
python
iris = datasets.load_iris()
iris_X = iris.data
iris_y = iris.target
第一行,获取鸢尾花数据集
第二行,将data存入iris_X
第三行,将标签存入iris_y
三、
python
print(iris_X[:2, :])
print(iris_y)
第一行,打印数据的前两行
第二行,打印标签
输出结果为:
python
[[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]
四、
python
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查看
输出结果为:
python
[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]
五、
python
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
第一行,类实例化
第二行,完成模型训练
六、
python
print(knn.predict(X_test))
print(y_test)
对比模型预测的标签和原标签
输出结果为:
python
[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]