# -*- coding: utf-8 -*-
# 代码6-6
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
np.random.seed(1000) # 设置随机种子
iris = datasets.load_iris() # 导入鸢尾花的数据集
# 导入150个样本数据,每个样本4个属性分别为花瓣和花萼的长、宽
iris_x = iris.data
# 导入150个样本数据的标签
iris_y = iris.target
# 产生一个随机打乱的0-149的一维数组
indices = np.random.permutation(len(iris_x))
# 随机选取140个样本作为训练数据集
iris_x_train = iris_x[indices[:-10]]
# 选取这140个样本的标签作为训练数据集的标签
iris_y_train = iris_y[indices[:-10]]
# 剩下的10个样本作为测试数据集
iris_x_test = iris_x[indices[-10:]]
# 把剩下10个样本对应标签作为测试数据集的标签
iris_y_test = iris_y[indices[-10:]]
# 定义一个距离判别分类器对象
knn = KNeighborsClassifier()
# 调用该对象的训练方法,主要接收两个参数:训练数据集及其样本标签
knn.fit(iris_x_train, iris_y_train)
# 调用该对象的测试方法,主要接收一个参数:测试数据集
iris_y_predict = knn.predict(iris_x_test)
# 输出测试数据集的预测标签
print('测试数据集的预测标签为:\n ',
iris.target_names[iris_y_predict])
# 输出测试数据集的正确标签,以方便对比
print('测试数据集的正确标签为:\n ',
iris.target_names[iris_y_test])
# 调用该对象的打分方法,计算出准确率
score = knn.score(iris_x_test,iris_y_test,sample_weight=None)
print('准确率为:',score) # 输出准确率计算结果
# 代码6-7
from sklearn import datasets
from sklearn.naive_bayes import MultinomialNB
import numpy as np
np.random.seed(1000) # 设置随机种子
iris = datasets.load_iris() # 导入鸢尾花的数据集
# 导入150个样本数据,每个样本4个属性分别为花瓣和花萼的长、宽
iris_x = iris.data
iris_y = iris.target # 导入150个样本数据的标签
indices = np.random.permutation(len(iris_x)) # 产生一个随机打乱的0-149的一维数组
iris_x_train = iris_x[indices[:-10]] # 随机选取140个样本作为训练数据集
iris_y_train = iris_y[indices[:-10]] # 选取这140个样本的标签作为训练数据集的标签
iris_x_test = iris_x[indices[-10:]] # 剩下的10个样本作为测试数据集
iris_y_test = iris_y[indices[-10:]] # 把剩下10个样本对应标签作为测试数据集的标签
bayes = MultinomialNB() # 定义一个贝叶斯判别分类器对象
# 调用该对象的训练方法,主要接收两个参数:训练数据集及其样本标签
bayes.fit(iris_x_train, iris_y_train)
# 调用该对象的测试方法,主要接收一个参数:测试数据集
iris_y_predict = bayes.predict(iris_x_test)
# 输出测试数据集的预测标签
print('测试数据集的预测标签为:\n ', iris.target_names[iris_y_predict])
# 输出测试数据集的正确标签,以方便对比
print("测试数据集的正确标签为:\n", iris.target_names[iris_y_test])
# 调用该对象的打分方法,计算出准确率
score = bayes.score(iris_x_test,iris_y_test,sample_weight=None)
print("准确率为:",score) # 输出准确率计算结果
# 代码6-8
from sklearn import datasets
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
import numpy as np
np.random.seed(1000) # 设置随机种子
iris = datasets.load_iris() # 导入鸢尾花的数据集
# 导入150个样本数据,每个样本4个属性分别为花瓣和花萼的长、宽
iris_x = iris.data
iris_y = iris.target # 导入150个样本数据的标签
indices = np.random.permutation(len(iris_x)) # 产生一个随机打乱的0-149的一维数组
iris_x_train = iris_x[indices[:-10]] # 随机选取140个样本作为训练数据集
iris_y_train = iris_y[indices[:-10]] # 选取这140个样本的标签作为训练数据集的标签
iris_x_test = iris_x[indices[-10:]] # 剩下的10个样本作为测试数据集
iris_y_test = iris_y[indices[-10:]] # 把剩下10个样本对应标签作为测试数据集的标签
fisher = LinearDiscriminantAnalysis() # 定义一个费希尔判别分类器对象
# 调用该对象的训练方法,主要接收两个参数:训练数据集及其样本标签
fisher.fit(iris_x_train, iris_y_train)
# 调用该对象的测试方法,主要接收一个参数:测试数据集
iris_y_predict = fisher.predict(iris_x_test)
# 输出测试数据集的预测标签
print('测试数据集的预测标签为:\n ', iris.target_names[iris_y_predict])
# 输出测试数据集的正确标签,以方便对比
print('测试数据集的正确标签为:\n ', iris.target_names[iris_y_test])
# 调用该对象的打分方法,计算出准确率
score = fisher.score(iris_x_test,iris_y_test,sample_weight=None)
print('准确率为:',score) # 输出准确率计算结果
- 1
- 2
- 3
前往页