秦培煜 胡艷芬
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,對鳶尾花數據進行了分類并做了評價分析。首先加載鳶尾花數據;其次對數據進行歸一化;然后將數據劃分成訓練集和測試集,并用支持向量機分類模型對訓練集進行訓練,對測試集進行預測;最后用準確率指標對預測結果進行了評價。整個過程對于分類有著重要的指導意義。