[B2]Python机器学习案例--Iris数据集

今天我们来练习一个小项目,是《Python机器学习及实践–从零开始通往kaggle竞赛之路》里面的小栗子。

首先总结一下机器学习的几个步骤:1.数据的加载;2.选择模型;3.模型的训练;4.模型的预测;5.模型的测评;6.模型的保存

第一步:
先加载数据,sklearn模块是Python自带的所以无需安装了,iris数据集也是sklearn里面有的,所以可以直接导入

#从sklearn.datasets导入iris数据加载器
from sklearn.datasets import load_iris
#使用加载器读取数据并存入变量iris
iris = load_iris()
#检查数据规模
iris.data.shape

在这里插入图片描述
第二步:
数据分割,这里注意就是书上是从sklearn.cross_validation里面导入的train_test_split,但是我试了下报错了,所以换成sklearn.model_selection

#对iris数据集进行分割
#从sklearn.model_selection里选择导入train_test_split用于数据分割
from sklearn.model_selection import train_test_split
#从使用train_test_split利用随机种子random_state采样25%的数据作为测试集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.25, random_state=33)

第三步:
使用K近邻分类器对iris数据集进行类别预测

#从sklearn.preprocessing里选择导入数据标准化模块
from sklearn.preprocessing import StandardScaler
#从sklearn.neighbors里选择导入KNeighboesClassifier即K近邻分类器
from sklearn.neighbors import KNeighborsClassifier

#对训练和测试的特征数据进行标准化
ss= StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)

#使用K近邻分类器对测试数据进行类别预测,预测结果储存在变量y_predict中
knc = KNeighborsClassifier()
knc.fit(X_train,y_train)
y_predict= knc.predict(X_test)

第四步:
#对K近邻分类器在iris数据上的预测性能进行评估

#使用模型自带的评估函数及进行准确性测评
print('The accuracy of K-Nearest Neighbor Classifier is',knc.score(X_test,y_test))

在这里插入图片描述
第五步:
依然使用sklearn.metrics 里面的classification_report模块对预测结果做更加详细的分析

from sklearn.metrics import classification_report
print(classification_report(y_test,y_predict, target_names=iris.target_names 

最后结果如下图:
在这里插入图片描述
输出结果说明,K近邻分类器对38条iris花测试样本分类的准确性约为89.474%,平均精确率,召回率以及F1指标分别为0.92,0.89,0.90

发布了7 篇原创文章 · 获赞 0 · 访问量 460

猜你喜欢

转载自blog.csdn.net/weixin_45854207/article/details/103092417