使用scikit-learn的鸢尾花数据分类
2019-07-13秦培煜胡艳芬
秦培煜 胡艳芬
1.武汉软件工程职业学院; 2.中国地质大学(武汉)
随着大数据和人工智能时代的到来,机器学习得到了越来越多的应用。机器学习大致分为监督学习和无监督学习,分类属于监督学习范畴[1]。本文使用scikit-learn对自带的鸢尾花数据进行了分类和分析[2]。
一、分类过程
(一)鸢尾花数据加载
数据使用scikit-learn自带的boston房价数据,使用load_boston函数加载。
import numpy as np
from sklearn.datasets import load_iris
iris= load_iris()
首先导入numpy和sklearn.datasets中load_iris函数,使用 load_iris加载鸢尾花数据,其中iris.data是特征数据,iris.target是标签数据。
(二)数据归一化
from sklearn.preprocessing import MinMaxScaler
minmaxIris = MinMaxScaler().fit_transform(iris.data)
特征数据中有些特征量纲特别大,有些特征量纲特别小,不同量纲数据放在一起使用,会影响最终预测结果。这里使用sklearn.preprocessing里的MinMaxScaler对鸢尾花数据进行归一化。iris是归一化前的数据,minmaxIris 是归一化后的数据。
(三)数据划分
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test =train_test_split(minmaxIris ,minmaxIris.target,random_state=100)
这里使用sklearn.model_selection里train_test_split对数据进行划分。默认数据的75%划分为训练集,25%划分为测试集。
(四)分类模型选用
from sklearn.svm import SVC
svc = SVC().fit(X_train,y_train)
pred = svc.predict(X_test)
使用sklearn.svm里的SVC模型对数据进行训练并预测。得到的pred是预测值数据。
(五)准确率评价指标
from sklearn.metrics import accuracy_score
accuracy_score(y_test,pred)
accuracy_score是准确率评价指标,最后得到真实值y_test和预测值pred之间的准确率为94.74%。
二、结论
本文基于scikit-learn,对鸢尾花数据进行了分类并做了评价分析。首先加载鸢尾花数据;其次对数据进行归一化;然后将数据划分成训练集和测试集,并用支持向量机分类模型对训练集进行训练,对测试集进行预测;最后用准确率指标对预测结果进行了评价。整个过程对于分类有着重要的指导意义。