概要
scikit-learnとはPythonで機械学習を行うためのライブラリです
データサイエンスプロセスのモデル作成にあたる部分で使用されます
scikit-learnの準備
まずはscikit-learnの準備についてです
Google ColaboratoryやJupyterLab Desktopでは最初からMatplotlibがインストールされています
それ以外ではまずscikit-learnをインストールする必要があります
scikit-learnのインストールはpip install scikit-learnでできます
この辺りはNumPyやPandasの時とほぼ同じです
学習と評価
機械学習は教師あり学習と教師なし学習に大別されます
教師あり学習では正解データが与えられた状態で学習がされます
代表的なのが分類と回帰です
それに対し、正解データがない状態で学習を行うのが教師なし学習です
クラスタリングや主成分分析などがその例にあたります
今回は教師あり学習についての例を学びましょう
ランダムフォレスト
画面の例はランダムフォレストというアルゴリズムの実装例です
複数の決定木で多数決を行うアルゴリズムです

そしてランダムフォレストというのは学習データからこの決定木を自動作成するアルゴリズムです
このランダムフォレストの学習と評価についてPythonで実装する方法について解説します
学習と評価について
その前に学習と評価について説明します
学習とは正解データ付きの学習データを用いて、モデルを作成することを指します
評価とは作成したモデルの精度を測定することを指します
ここで気を付けるべきことは、学習で使用したデータを評価で使用してはならないということです


まずはランダムフォレストのライブラリをインポートします
推定器を作成します
推定器を正解データ付き学習データを用いて学習します
推定器でデータを予測します
これが最も単純な例です
プリプロセッサ
続いて、プリプロセッサについて説明します
機械学習では学習をする前に、データの変換を行うことがあります
その前処理を行うのがプリプロセッサです
正規化する例を見てみましょう

まず、StandardScalerをインポートします
続いて、StandardScaler()でインスタンス化し、.fit(X)で正規化のための情報を覚えさせ、.transform(X)で正規化を実行している
パイプライン
続いて、パイプラインについて説明します
パイプラインは機械学習で行う一連の処理をまとめることができます

画面上の例では標準化とロジスティクス回帰を行っています
まず、make_pipelineの引数にStandardScalerとLogisticRegressionを与えてパイプラインを初期化しています
そして、このパイプラインpipeのfitメソッドを実行することで学習し、predictで評価を行っています
今回は非常に単純な例だったのでパイプラインを使用する恩恵はあまりないように思えるかもしれませんが、もっと複雑な前処理を行うことになった場合、パイプラインを使用した方が実装が簡潔になります
モデル評価
続いてモデル評価についてです。ここではクロスバリデーションについて解説します
クロスバリデーションとはモデル作成と評価を交差して行うことでし
学習と評価を1回行っただけではたまたまよい精度がでることがあります
そこでクロスバリデーションを用いて複数回の学習と評価を行い、より正確な結果を出すことができます

クロスバリデーションはcross_validateを使うことで簡単に可能です
ハイパーパラメータの自動検索
ハイパーパラメータは機械学習の挙動を設定するためのパラメータです
この値を変えることで精度が向上する場合もあります
ある程度適切なハイパーパラメータの値を自動で探すことができます

画面上の例ではRandomizedSearchCVを使用しています