machine-learning について
Machine Learningは、機械学習プロジェクトの構築・運用に携わる人向けに、MLの全ライフサイクルを扱うスキルガイドです。データ準備や特徴量エンジニアリングから、学習、デプロイ、監視、MLOpsまでを解説し、詳細な参考ファイルも用意されています。
主な機能
- 01問題設定と評価指標の選定
- 02データ品質の確認と特徴量エンジニアリング
- 03モデル選定、学習、ハイパーパラメータ調整
- 04モデル評価と不均衡データへの対応
- 05本番デプロイとサービング方式
- 06実験追跡、バージョン管理、監視
活用シーン
- 01分類、回帰、クラスタリングの工程設計
- 02特徴量の準備とデータ分割方法の選択
- 03モデル比較と過学習や誤差の確認
- 04モデルをデプロイし、ドリフトや性能を監視
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 89jobrien/ steve --skill machine-learningインストール後、Claude Code で/machine-learningを入力して読み込まれたか確認します。
同梱ファイルreferences/preprocessing.md
詳細
機械学習
実験から本番環境へのデプロイまで、機械学習のライフサイクル全体を網羅する包括的な機械学習スキルです。
このスキルを使用する場面
- 機械学習パイプラインの構築
- 特徴量エンジニアリングとデータの前処理
- モデルのトレーニング、評価、選定
- ハイパーパラメーターの調整と最適化
- モデルのデプロイとサービング
- 機械学習の実験追跡とバージョン管理
- 本番環境での機械学習の監視と保守
機械学習の開発ライフサイクル
1. 問題の定義
分類の種類:
- 二値分類(スパム/非スパム)
- 多クラス分類(画像カテゴリ)
- マルチラベル分類(ドキュメントのタグ)
- 回帰(価格予測)
- クラスタリング(顧客セグメンテーション)
- ランキング(検索結果)
- 異常検知(不正検知)
問題の種類別の成功指標:
| 問題の種類 | 主な指標 | 副次的な指標 |
|---|---|---|
| 二値分類 | AUC-ROC、F1 | Precision、Recall、PR-AUC |
| 多クラス分類 | Macro F1、Accuracy | クラスごとの指標 |
| 回帰 | RMSE、MAE | R²、MAPE |
| ランキング | NDCG、MAP | MRR |
| クラスタリング | Silhouette、Calinski-Harabasz | Davies-Bouldin |
2. データの準備
データ品質チェック:
- 欠損値の分析と補完方法
- 外れ値の検出と処理
- データ型の検証
- 分布の分析
- ターゲットリークの検出
特徴量エンジニアリングのパターン:
- 数値データ:スケーリング、ビニング、対数変換、多項式特徴量
- カテゴリデータ:ワンホットエンコーディング、ターゲットエンコーディング、頻度エンコーディング、埋め込み
- 時系列データ:ラグ特徴量、移動統計量、周期エンコーディング
- テキスト:TF-IDF、単語埋め込み、トランスフォーマー埋め込み
- 地理空間データ:距離特徴量、クラスタリング、グリッドエンコーディング
訓練/テスト分割の戦略:
- ランダム分割(標準)
- 層化分割(クラスの不均衡に対応)
- 時間ベースの分割(時系列データ)
- グループ分割(データリークを防止)
- K分割交差検証
3. モデルの選定
アルゴリズム選定ガイド:
| データサイズ | 問題 | 推奨モデル |
|---|---|---|
| 小規模(<10K) | 分類 | ロジスティック回帰、SVM、ランダムフォレスト |
| 小規模(<10K) | 回帰 | 線形回帰、Ridge、SVR |
| 中規模(10K-1M) | 分類 | XGBoost、LightGBM、ニューラルネットワーク |
| 中規模(10K-1M) | 回帰 | XGBoost、LightGBM、ニューラルネットワーク |
| 大規模(>1M) | 任意 | ディープラーニング、分散トレーニング |
| 表形式 | 任意 | 勾配ブースティング(XGBoost、LightGBM、CatBoost) |
| 画像 | 分類 | CNN、ResNet、EfficientNet、Vision Transformers |
| テキスト | NLP | トランスフォーマー(BERT、RoBERTa、GPT) |
| 系列データ | 時系列 | LSTM、Transformer、Prophet |
4. モデルのトレーニング
ハイパーパラメーターの調整:
- グリッドサーチ:網羅的で、小規模な探索空間に適しています
- ランダムサーチ:効率的で、大規模な探索空間に適しています
- ベイズ最適化:効率的な探索(Optuna、Hyperopt)
- 早期停止:過学習を防止します
一般的なハイパーパラメーター:
| モデル | 主なパラメーター |
|---|---|
| XGBoost | learning_rate、max_depth、n_estimators、subsample |
| LightGBM | num_leaves、learning_rate、n_estimators、feature_fraction |
| ランダムフォレスト | n_estimators、max_depth、min_samples_split |
| ニューラルネットワーク | learning_rate、batch_size、layers、dropout |
5. モデルの評価
評価のベストプラクティス:
- 最終評価には必ずホールドアウトテストセットを使用します
- 開発中は交差検証を使用します
- 過学習を確認します(訓練と検証の差)
- 複数の指標で評価します
- エラーを定性的に分析します
不均衡データへの対処:
- リサンプリング:SMOTE、アンダーサンプリング
- クラス重み:重み付き損失関数
- 閾値調整:判定閾値を最適化
- 評価:ROC-AUCよりもPR-AUCを使用
6. 本番環境へのデプロイ
モデルのサービングパターン:
- REST API(Flask、FastAPI、TF Serving)
- バッチ推論(スケジュールされたジョブ)
- ストリーミング(リアルタイム予測)
- エッジデプロイ(モバイル、IoT)
本番環境での考慮事項:
- レイテンシの要件(p50、p95、p99)
- スループット(1 秒あたりのリクエスト数)
- モデルのサイズとメモリ使用量
- フォールバック戦略
- A/B テスト用フレームワーク
7. モニタリングとメンテナンス
モニタリング項目:
- 予測のレイテンシ
- 入力特徴量の分布(データドリフト)
- 予測の分布(コンセプトドリフト)
- モデルのパフォーマンス指標
- エラー率とエラーの種類
再トレーニングのトリガー:
- パフォーマンスがしきい値を下回る
- 大幅なデータドリフトが検出される
- スケジュールに基づく再トレーニング(毎日、毎週)
- 新しいトレーニングデータが利用可能になる
MLOps のベストプラクティス
実験の追跡
各実験で以下を記録します。
- コードのバージョン(git のコミット)
- データのバージョン(ハッシュまたはバージョン ID)
- ハイパーパラメーター
- 指標(トレーニング、検証、テスト)
- モデルのアーティファクト
- 環境(パッケージ、バージョン)
モデルのバージョン管理
models/
├── model_v1.0.0/
│ ├── model.pkl
│ ├── metadata.json
│ ├── requirements.txt
│ └── metrics.json
├── model_v1.1.0/
└── model_v2.0.0/
ML 向け CI/CD
-
継続的インテグレーション:
- データ検証テスト
- モデルトレーニングテスト
- パフォーマンスのリグレッションテスト
-
継続的デプロイ:
- ステージング環境での検証
- シャドーモードでのテスト
- 段階的なロールアウト(カナリア)
- 自動ロールバック
参考ファイル
詳しいパターンやコード例については、必要に応じて参考ファイルを読み込みます。
references/preprocessing.md- データの前処理パターンと特徴量エンジニアリング手法references/model_patterns.md- モデルアーキテクチャのパターンと実装例references/evaluation.md- 包括的な評価戦略と指標
他のスキルとの連携
- performance - 推論のレイテンシを最適化する場合
- testing - ML に特化したテストパターンを使用する場合
- database-optimization - 特徴量ストアのクエリを最適化する場合
- debugging - モデルのデバッグとエラー分析を行う場合
コメント
Markdown 対応