分類モデルの学習
このチュートリアルでは、Irisデータセットを使用して完全な分類パイプラインを構築します。
- データの読み込みとプレビュー
- 分類器の設定と学習
- モデル性能の評価
- 結果の解釈
- MLOps Desktopがインストール済み
- Pythonパッケージ:
pip install scikit-learn pandas
データセットの準備
Section titled “データセットの準備”サンプルデータセットを作成します。ターミナルで以下を実行してください。
from sklearn.datasets import load_irisfrom pathlib import Pathimport pandas as pd
iris = load_iris(as_frame=True)df = iris.framedf.to_csv(Path.home() / "Desktop" / "iris.csv", index=False)print(f"iris.csv を保存しました({len(df)}行)")これでデスクトップにiris.csvが作成されます。150サンプル、5カラムのデータです。
sepal length (cm)、sepal width (cm)、petal length (cm)、petal width (cm)— 特徴量target— クラスラベル(0=setosa、1=versicolor、2=virginica)
パイプラインの構築
Section titled “パイプラインの構築”-
新しいパイプラインを作成
MLOps Desktopを開きます。空のキャンバスが表示されます。
-
DataLoaderノードを追加
+ Add Node → DataLoaderを選択します。
ノードをクリックし、Browseで
iris.csvを選択します。プレビューにデータカラムが表示されます。 -
DataSplitノードを追加
+ Add Node → Data Splitを選択します。
DataLoaderの右ハンドルからDataSplitの左ハンドルへ接続します。
設定:
- Test Split: 0.2(20%をテストに使用)
- Random State: 42
- Stratify: 有効、カラムを
targetに設定
-
Trainerノードを追加
+ Add Node → Trainerを選択し、DataSplitから接続します。
設定 値 Model Type Random Forest Classifier Target Column target -
Evaluatorノードを追加
+ Add Node → Evaluatorを選択し、Trainerから接続します。
-
パイプラインを実行
ツールバーのRunをクリックします。
出力パネルに進行状況が表示されます。
[DataLoader] Loaded iris.csv: 150 rows, 5 columns[DataSplit] Split: 120 train, 30 test (stratified)[Trainer] Training Random Forest on 120 samples...[Trainer] Training complete[Evaluator] Accuracy: 0.967 (29/30 correct)
分類メトリクスの理解
Section titled “分類メトリクスの理解”実行後、Evaluatorに複数のメトリクスが表示されます。
Accuracy(精度)
Section titled “Accuracy(精度)”正解した予測の割合を示す最も基本的なメトリクスです。
Accuracy = 正解数 / 全予測数 = 29 / 30 = 0.967(96.7%)Precision、Recall、F1
Section titled “Precision、Recall、F1”各クラスについて算出されます。
| メトリクス | 計算式 | 解釈 |
|---|---|---|
| Precision | TP / (TP + FP) | 陽性と予測したうち、正解だった割合 |
| Recall | TP / (TP + FN) | 実際の陽性を、どれだけ検出できたか |
| F1 Score | 2 × (P × R) / (P + R) | PrecisionとRecallの調和平均 |
予測と実際のラベルを比較する3×3の行列です。
予測 0 1 2実際 0 [ 10 0 0 ] ← Setosa(全問正解) 1 [ 0 9 1 ] ← Versicolor(1つがVirginicaに誤分類) 2 [ 0 0 10 ] ← Virginica(全問正解)対角線が正解、非対角線が誤分類です。
他のモデルを試す
Section titled “他のモデルを試す”他の分類器でも実験できます。
| モデル | 適した用途 |
|---|---|
| Logistic Regression | 線形決定境界、解釈しやすい |
| Random Forest | 複雑な関係、外れ値に強い |
| Gradient Boosting | 高精度が必要な場合、学習は遅い |
| SVM | 高次元データ、二値分類 |
モデルを切り替えるには:
- Trainerノードをクリック
- Model Typeを変更
- Runを再実行
複数のモデルで精度を比較し、データに最適なものを選択してください。
パイプラインの保存
Section titled “パイプラインの保存”Saveをクリックし、名前を入力します(例:「iris-classifier」)。
Loadドロップダウンからいつでも再読み込みできます。
次のステップ
Section titled “次のステップ”トラブルシューティング:
- 「target が見つかりません」 — CSVに
targetカラムがあるか確認、またはカラム名の大文字小文字を確認 - 精度が低い —
n_estimatorsを増やすか、他のモデルを試す - 「サンプルが不足」 — test_sizeを小さくして訓練データを確保(50サンプル以上を推奨)