目次
機械学習モデルの作成 – Scikit-learnの利用
Scikit-learnは、Pythonで機械学習を行う際に最も使われるライブラリの一つで、分類や回帰、クラスタリングといったさまざまな機械学習アルゴリズムを簡単に使用することができます。本記事では、Scikit-learnを使って基本的な機械学習モデルを作成する方法を解説します。
Scikit-learnのインストール
まず、Scikit-learnを使用するためには、ライブラリをインストールする必要があります。以下のコマンドを実行してインストールしましょう。
pip install scikit-learn
機械学習モデルの作成手順
機械学習モデルを作成する基本的な流れは次の通りです。
- データセットの準備
- データの分割(トレーニングデータとテストデータ)
- モデルの選択と学習
- モデルの評価
サンプルコード:Irisデータセットでの分類モデル
以下のコードでは、Scikit-learnのデフォルトデータセットであるIrisデータセットを使用して、分類モデルを作成しています。
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# データセットの読み込み
iris = load_iris()
X = iris.data # 特徴量
y = iris.target # 目的変数
# データをトレーニングデータとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# モデルの選択と学習
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train) # モデルを学習
# テストデータで予測
y_pred = model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test, y_pred)
print(f"モデルの正解率: {accuracy * 100:.2f}%")
コードの説明
load_iris()
: Irisデータセットをロードします。これは、よく使われる分類問題のサンプルデータです。train_test_split()
: データをトレーニングデータとテストデータに分割します。test_size=0.2
は、データの20%をテストに使うことを意味します。RandomForestClassifier()
: ランダムフォレストアルゴリズムを使用して分類モデルを作成します。fit()
: トレーニングデータを使用してモデルを学習します。predict()
: テストデータで予測を行います。accuracy_score()
: モデルの正確さを計算します。正答率を確認するために使います。
機械学習モデルの評価方法
モデルの性能を評価するためには、正解率(Accuracy)の他にも様々な指標が存在します。ここではいくつかの代表的な評価指標について解説します。
- Accuracy(正解率): 全データの中で正しく予測できた割合。
- Precision(適合率): モデルが「正」と予測したものの中で、実際に正しいものの割合。
- Recall(再現率): 実際に「正」であるものの中で、モデルが正しく予測できた割合。
- F1スコア: PrecisionとRecallの調和平均。バランスよく評価したい場合に使用されます。
異なるモデルの選択
Scikit-learnには様々な機械学習アルゴリズムが実装されています。次のコードでは、決定木(DecisionTreeClassifier)を使用して同様に分類モデルを作成しています。
from sklearn.tree import DecisionTreeClassifier
# 決定木モデルの作成
model = DecisionTreeClassifier(random_state=42)
model.fit(X_train, y_train)
# テストデータで予測
y_pred = model.predict(X_test)
# モデルの評価
accuracy = accuracy_score(y_test, y_pred)
print(f"決定木モデルの正解率: {accuracy * 100:.2f}%")
コードの説明
DecisionTreeClassifier()
: 決定木アルゴリズムを使用して分類モデルを作成します。fit()
: モデルをトレーニングデータで学習します。predict()
: 学習済みモデルを使って予測を行います。accuracy_score()
: 正解率を計算し、モデルの性能を評価します。
まとめ
Scikit-learnを使えば、データの準備からモデルの作成、評価までの流れを簡単に実装することができます。さまざまなアルゴリズムを試し、データに最も適したモデルを選ぶことが、機械学習における重要なステップです。正解率以外の評価指標にも注目しながら、精度の高いモデルを構築していきましょう。