秦培煜 胡艷芬
1.武漢軟件工程職業(yè)學(xué)院; 2.中國(guó)地質(zhì)大學(xué)(武漢)
隨著大數(shù)據(jù)和人工智能時(shí)代的到來(lái),機(jī)器學(xué)習(xí)得到了越來(lái)越多的應(yīng)用。機(jī)器學(xué)習(xí)大致分為監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),分類(lèi)屬于監(jiān)督學(xué)習(xí)范疇[1]。本文使用scikit-learn對(duì)自帶的鳶尾花數(shù)據(jù)進(jìn)行了分類(lèi)和分析[2]。
數(shù)據(jù)使用scikit-learn自帶的boston房?jī)r(jià)數(shù)據(jù),使用load_boston函數(shù)加載。
import numpy as np
from sklearn.datasets import load_iris
iris= load_iris()
首先導(dǎo)入numpy和sklearn.datasets中l(wèi)oad_iris函數(shù),使用 load_iris加載鳶尾花數(shù)據(jù),其中iris.data是特征數(shù)據(jù),iris.target是標(biāo)簽數(shù)據(jù)。
from sklearn.preprocessing import MinMaxScaler
minmaxIris = MinMaxScaler().fit_transform(iris.data)
特征數(shù)據(jù)中有些特征量綱特別大,有些特征量綱特別小,不同量綱數(shù)據(jù)放在一起使用,會(huì)影響最終預(yù)測(cè)結(jié)果。這里使用sklearn.preprocessing里的MinMaxScaler對(duì)鳶尾花數(shù)據(jù)進(jìn)行歸一化。iris是歸一化前的數(shù)據(jù),minmaxIris 是歸一化后的數(shù)據(jù)。
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對(duì)數(shù)據(jù)進(jìn)行劃分。默認(rèn)數(shù)據(jù)的75%劃分為訓(xùn)練集,25%劃分為測(cè)試集。
from sklearn.svm import SVC
svc = SVC().fit(X_train,y_train)
pred = svc.predict(X_test)
使用sklearn.svm里的SVC模型對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練并預(yù)測(cè)。得到的pred是預(yù)測(cè)值數(shù)據(jù)。
from sklearn.metrics import accuracy_score
accuracy_score(y_test,pred)
accuracy_score是準(zhǔn)確率評(píng)價(jià)指標(biāo),最后得到真實(shí)值y_test和預(yù)測(cè)值pred之間的準(zhǔn)確率為94.74%。
本文基于scikit-learn,對(duì)鳶尾花數(shù)據(jù)進(jìn)行了分類(lèi)并做了評(píng)價(jià)分析。首先加載鳶尾花數(shù)據(jù);其次對(duì)數(shù)據(jù)進(jìn)行歸一化;然后將數(shù)據(jù)劃分成訓(xùn)練集和測(cè)試集,并用支持向量機(jī)分類(lèi)模型對(duì)訓(xùn)練集進(jìn)行訓(xùn)練,對(duì)測(cè)試集進(jìn)行預(yù)測(cè);最后用準(zhǔn)確率指標(biāo)對(duì)預(yù)測(cè)結(jié)果進(jìn)行了評(píng)價(jià)。整個(gè)過(guò)程對(duì)于分類(lèi)有著重要的指導(dǎo)意義。