機械学習(単純ベイズ編)

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

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.naive_bayes  import GaussianNB
from sklearn.metrics import accuracy_score
from sklearn.datasets import  load_iris

irisのデータを読み込んで、pandasでデータフレームの形に整えます。

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

引き続いて、seabornで図示します。

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 =  GaussianNB()
model.fit(X_train,Y_train)

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

predicted = model.predict(X_test)
expected = Y_test

精度を確認しています。
今回は1.0となってしましました。

accuracy_score(expected, predicted)

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

accuracy_score(Y_train,model.predict(X_train))


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