前々回:Scikit-learnで機械学習(決定木で分類する方法)
前回:Scikit-learnで機械学習(SVMで分類する方法)
RandomForest(ランダムフォレスト)を使ったIrisデータの分類方法
Irisデータ
scikit-learnに付属のIris(アヤメの計測データ)を利用しています。
Irisデータは『setosa』、『versicolor』、『virginica』という3種類の品種のアヤメの”がく片 (Sepal)”と”花弁 (Petal)” の幅および長さを150点計測したデータです。
sepal length(cm) | がく片の長さ |
---|---|
sepal width(cm) | がく片の幅 |
petal length(cm) | 花弁の長さ |
petal width(cm) | 花弁の幅 |
RandomForestでIrisデータを識別
ランダムフォレストはモデルにRandomForestClassifierを指定します。
from sklearn import datasets, model_selection , metrics
from sklearn.ensemble import RandomForestClassifier
# irisデータ読み込み
iris = datasets.load_iris()
# 訓練用とテスト用データに分割
X_train, X_test, label_train, label_test = model_selection.train_test_split(
iris.data, iris.target, test_size=0.3, random_state=0)
# 訓練データで学習
clf = RandomForestClassifier(random_state=0) # 分類器RandomForest
clf.fit(X_train, label_train) # 学習
# テストデータで予測
pre = clf.predict(X_test)
# 予測結果の正解率
ac_score = metrics.accuracy_score(label_test, pre)
print('正解率{0:.1f}%'.format(ac_score * 100))
がく片、花びらの長さで正解分類をプロット(全データ, n=150)
がく片、花びらの長さで学習結果をプロット(訓練データ70%, n=105)
がく片、花びらの長さで予測結果をプロット(テストデータ30%, n=45)
赤い点は正解ラベルど不一致のデータです。
0 件のコメント :
コメントを投稿