ゼロから始める機械学習 第6回「scikit-learnの活用」

はじめに

この記事は、連載「ゼロから始める機械学習」 6本目のラスト記事となります。

前回「学習データとテストデータ」 では、データを分割する必要性について理解し、train_test_splitを実装しました。

これで基本的な機械学習の流れを理解できたのではないでしょうか。

実はこれまでに実装してきた

  • ロジスティック回帰
  • train_test_split

scikit-learnライブラリに実装されています。

勉強のためにNumPyを用いてきましたが、実際のシーンではscikit-learnを使うことも多いでしょう。そこで、次回はこれらの内容をscikit-learnを用いて実装し直してみます。

実装

実は説明すべき箇所はほとんどありません。

これまでの実装のインターフェイスはscikit-learnに合わせていたためです。

1
2
3
4
5
6
7
8
9
from sklearn.datasets import load_iris
import numpy as np
iris = load_iris()
X_org = iris.data
y_org = iris.target
# 問題の簡単化(前回記事を参照)
idx = [y_org != 2]
X = X_org[idx][:,:2]
y = y_org[idx]
1
2
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)
1
2
3
4
5
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()
lr.fit(X_train, y_train) # 学習
pred = lr.predict(X_test) # 予測と評価
print (np.mean(pred == y_test)) # 平均正解率

インターフェイスを合わせたと言いましたが、厳密には私たちが実装したpredictは確率を返します一方、scikit-learnpredict0または1を返す点が異なるので注意してください。

前回のコードと比較すると一目瞭然、かなり簡単に実装できました!

まとめ

お疲れ様でした。

連載のゴールであった簡単な機械学習プログラムの実装ができるレベルに達したでしょうか。

ここまで着いてこれた方であれば、きっとプログラムが実装できる!

さて、原理を理解しながらNumPyで実装する方法を学んだので、今度はscikit-learnを使いこなせるようにステップアップしましょう。

連載「scikit-learnで学ぶ機械学習」を始めます)

では、scikit-learnを用いて機械学習について学んでいきます。

データ分析とは何か?機械学習との関係について

では、データ分析と機械学習の関係についてまとめています。

記事情報

  • 投稿日:2020年3月31日
  • 最終更新日:2020年3月31日