見出し画像

PythonでDeepLearning - scikit-learn

scikit-learnを使って簡単に機械学習の全体の流れを見てみましょう。

scikit-learn は、Python で利用できるデータ分析や機械学習のためのライブラリの一つです。scikit-learn は、データの前処理や、機械学習のアルゴリズムを使った学習・予測、そしてモデルの評価など、データ分析や機械学習に必要な機能をひとまとめにしたパッケージです。
scikit-learn はとても使いやすく、多機能で人気のライブラリです。使い始めるのも手間がかからず、データの前処理から機械学習、評価までの一連の流れをスムーズに行うことができます。

https://www.kikagaku.co.jp/kikagaku-blog/python-scikit-learn/

全体的の流れは

必要なライブラリを読み込み

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

読み込んだライブラリから今回使うデータを読み込みます。

iris = datasets.load_iris()
x, y = iris.data, iris.target

まずトレーニングしたいので必要なトレーニングデータとテストデータに分けます。

x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1)

sklearnでは予測モデルが用意されているので必要なものを変数に入れときます。

model = svm.SVC()

そして学習です。先ほど分割したデータを入れて実行します。

model.fit(x_train, y_train)

トレーニングした結果を出してみます。

pred = model.predict(x_test)
print(accuracy_score(y_test, pred))

あとは実際に学習済のモデルを使って判定してみます。

pred = model.predict(x_test)
print(accuracy_score(y_test, pred))

最後に学習したモデルを使って判定してみましょう。

result = model.predict([[1.4, 3.5, 5.1, 0.2]])

iris_types = ['Setosa', 'Versicolour', 'Virginica']

print(iris_types[result[0]])

これを実行すると、

0.9736842105263158
Virginica

と出てきます。"0.9736842105263158"がaccuracy_scoreでうまく認識できている割合です。97%は正解だったことを表しています。
そして、今回[1.4, 3.5, 5.1, 0.2]の条件を満たすアヤメを予測した結果は"Virginica"であったというこそを示しています。

まとめてみると、

1 使うデータを準備
2 予測モデルを用意
3 予測モデルを使えるように学習させる
4 学習済モデルを使って予測

予測モデルは今回は機械学習のライブラリscikit-learnを使っていますが、これをDeepLearningのライブラリ、TensorFlowとPyTorchを使うとDeepLearningでの学習、予測ができます。モデル内の学習の方法と予測の方法がキモになってきます。流れとしては同じなのでまずはざっくりと理解しておくとよりハイレベルなことも理解できるようになると思います。


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