機械学習(ランダムフォレスト編)

必要なモジュールを読み込んでいきます

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns

Sicket-Learnからパッケージを読み込んでいます

from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.datasets import  load_iris

irisのデータを読み込んでいます

iris = load_iris()

iris_dataframe = pd.DataFrame(data=iris.data, columns=iris.feature_names)
print(iris_dataframe.head())

iris_dataset = sns.load_dataset("iris")
sns.pairplot(iris_dataset, hue='species', palette="husl").savefig('seaborn_iris.png')

画像1

データをランダムに分割しています。

X = iris.data
Y = iris.target

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, random_state=0)

ランダムフォレストで学習しています。

model = RandomForestClassifier(random_state=0) 

model.fit(X_train,Y_train)

検証用データで予測します。

predicted = model.predict(X_test)
expected = Y_test

精度を確認しています。

accuracy_score(expected, predicted)
0.9736842105263158

過学習がないか確認しています。

accuracy_score(Y_train,model.predict(X_train))
1.0

この記事が気に入ったらサポートをしてみませんか?