作业10答案
代码如下
# -*- coding: utf-8 -*-
import numpy
from sklearn import datasets
#引入数据集
#https://zh.wikipedia.org/wiki/安德森鸢尾花卉数据集
iris = datasets.load_iris()
#查看数据的规模
iris.data.shape
#查看训练目标的总类
numpy.unique(iris.target)
#随机重排列
permutation = numpy.random.permutation(iris.target.size)
iris.data = iris.data[permutation]
iris.target = iris.target[permutation]
from sklearn import neighbors
#搭建KNN模型
knnModel = neighbors.KNeighborsClassifier(n_neighbors=3)
#训练模型
knnModel.fit(iris.data[:100], iris.target[:100])
from sklearn import cross_validation
#对模型进行评价
knnModel.score(iris.data[100:], iris.target[100:])
cross_validation.cross_val_score(
knnModel,
iris.data\[100:\],
iris.target\[100:\]
)
#使用模型进行预测
knnModel.predict([[0.1, 0.2, 0.3, 0.4]])
答案是:第一类。(0,1,2分别代表第一、二、三类)