Python
のscikit-learn
は、機械学習を学び始める際に最も使いやすいライブラリの一つです。このライブラリは、データの前処理からモデルの作成、評価まで、一連の機械学習プロセスを簡単に扱えるツールを提供しています。この記事では、scikit-learnの基本的な使い方を紹介し、初心者でも理解しやすい機械学習の流れを説明します。
scikit-learnとは?
scikit-learn
は、Python
で動作するオープンソースの機械学習ライブラリです。機械学習の基本的なアルゴリズム(分類、回帰、クラスタリングなど)が含まれており、データの前処理やモデルの評価を簡単に行うためのツールも豊富に揃っています。
このライブラリの利点は、初心者でも扱いやすく、多くの機械学習タスクを少ないコードで実現できる点です。さらに、多くの機械学習モデルが統一されたインターフェースで提供されているため、モデルを切り替える際も非常にスムーズです。
機械学習の基本的な流れ
scikit-learnを使った機械学習の基本的な流れは、以下のステップで進行します。
-
データの準備
モデルに入力するためのデータセットを整備します。 -
モデルの選択
使用する機械学習アルゴリズムを選びます。 -
モデルの訓練
訓練データを使って、モデルに学習させます。 -
予測
訓練済みモデルを使って新しいデータの予測を行います。 -
評価
モデルがどれだけ正確に予測できるかを評価します。 それでは、実際にscikit-learnを使った具体的な例を見ていきましょう。
scikit-learnの基本的な使い方
インストールとインポート
scikit-learnを使用するには、まずライブラリをインストールします。以下のコマンドを使ってインストールできます。
pip install scikit-learn
インストール後、Python
スクリプトにscikit-learnをインポートします。
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
データの準備
今回は、scikit-learnに含まれるIris
データセットを使用します。このデータセットは、アヤメの品種を分類するための特徴量(花びらやガクの長さなど)が含まれています。
# データセットの読み込み
iris = load_iris()
X = iris.data # 特徴量
y = iris.target # ラベル(アヤメの品種)
データの分割
訓練用とテスト用にデータを分割します。通常、80%のデータを訓練に使用し、20%をモデルの評価に使用します。
# データを訓練セットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
モデルの選択と訓練
今回は、RandomForestClassifier
という分類器を使用してモデルを訓練します。Random Forestは、複数の決定木を組み合わせて予測を行う強力なモデルです。
# モデルの選択
model = RandomForestClassifier(random_state=42)
# モデルの訓練
model.fit(X_train, y_train)
予測
訓練したモデルを使ってテストデータの予測を行います。
# テストデータに対する予測
y_pred = model.predict(X_test)
6. モデルの評価
最後に、モデルの精度を確認します。今回はaccuracy_score
を使って、正解率を計算します。
# モデルの精度を評価
accuracy = accuracy_score(y_test, y_pred)
print(f"モデルの正解率: {accuracy * 100:.2f}%")
このコードを実行すると、モデルの精度が表示されます。例えば、上記の例では「モデルの正解率: 100.00%」という結果が出る可能性があります。
まとめ
scikit-learnは、機械学習の基本的な流れを簡単に実装できる非常に強力なライブラリです。今回の例では、データセットを読み込み、データを分割し、モデルを訓練して予測を行い、最終的にモデルの精度を評価する一連のプロセスを示しました。scikit-learnは、多くの機械学習アルゴリズムをサポートしているため、簡単に他のモデルを試すことができます。初心者の方は、まずはシンプルなデータセットでこの流れを体験し、徐々により複雑なタスクに挑戦していくのがおすすめです。