Community研究&データ分析github.com

autentisitet/python-sklearn-workflow

リークのないscikit-learnの分割、交差検証、スコアリング、探索、診断曲線、PCAスケーリング、モデル検査、ColumnTransformer、Pipelineを設計します。scikit-learn評価ワークフローを構築またはレビューする際に使用します。既に適合した推定器での通常の予測、既に計算された予測のプロット、評価設計が確定した後の実験追跡、深層学習フレームワーク、推定器の理論のみ、または偶発的なscikit-learnのインポートには使用しないでください。

python-sklearn-workflow とは?

このスキルは、scikit-learnを使用した機械学習評価ワークフローにおいて、データリークを防止しながら安全で堅牢なモデル選択、前処理、ハイパーパラメータチューニング、診断を実現するためのものです。ユーザーがKFold、StratifiedKFold、GroupKFold、TimeSeriesSplitなどの分割戦略や、cross_validate、GridSearchCV、RandomizedSearchCV、学習曲線、検証曲線、PCA、ColumnTransformer、Pipelineに関わるタスクに取り組むときに自動的にアクティブになります。このスキルは、評価単位(IID観測、クラスラベル、グループ、時系列など)を最初に特定し、その単位に基づいて適切な分割器と交差検証戦略を選択します。さらに、すべての学習済み前処理変換をPipeline内にカプセル化し、ColumnTransformerで異種混合カラムを扱い、リークなくグリッドサーチやランダムサーチを実行します。また、診断曲線(学習曲線、検証曲孔)とモデル検査(置き換え重要度、部分依存プロット)を具体的な質問に答えるためにのみ使用することを推奨し、スコアリング、評価指標、リーク制御、最終的な未評価のテストパスの明確な文書化を求めます。このスキルは、Claude Code、Cursor、CodexなどのAIエージェントで使用でき、スキルが適用された際には、タスクがscikit-learnの評価または前処理を含むことを簡潔に宣言します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/autentisitet/python-engineering-skills/tree/HEAD/skills/python-sklearn-workflow

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Python Scikit-Learn ワークフロー

有効化

  • キーワードトリガー: タスクが実質的に scikit-learn のモデル選択、KFold、StratifiedKFold、GroupKFold、TimeSeriesSplit、cross_validate、GridSearchCV、RandomizedSearchCV、学習/検証曲線、PCA、sklearn.inspection、ColumnTransformer、または Pipeline を含む場合。
  • 意図トリガー: ユーザーがリークなしで scikit-learn モデルを分割、前処理、チューニング、診断、または解釈する方法を尋ねた場合。
  • 開示: 該当する作業を開始する際に、一度だけ簡潔に次のように述べます: $python-sklearn-workflow を使用しています。このタスクは scikit-learn の評価または前処理を含むためです。
  • 終了: 分割、交差検証、前処理、探索、診断の契約が確定した時点でこのスキルの適用を停止します。
  • トリガーしない場合: 依存関係の更新、分割/チューニングが既に確定している実験追跡、既に適合した推定器に対する通常の predict 呼び出し、既に計算された予測からの報告のみのプロット、孤立した推定器 API の質問、深層学習パイプライン、または偶発的なインポートは不十分です。プロットは、タスクがスコアリング、評価設計、診断方法論、またはモデル検査を変更する場合にのみここに属します。

評価単位から開始する

分割器を選択する前に、トレーニングと評価の間で独立を保つ必要があるものを特定します:

  • 個々の IID 観測;
  • 稀な結果を持つクラスラベル;
  • ユーザー、患者、デバイス、セッション、場所、またはその他のグループ;
  • 時系列の将来の観測; または
  • クラスのバランスと重複しないグループの組み合わせ。

テストセットと交差検証戦略は、好みのデフォルトパーセンテージからではなく、その単位から選択します。分割器と探索の選択については references/model-selection-guide.md を参照してください。


前処理をフォールド内に保持する

  • スケーラー、インプター、エンコーダー、特徴量選択、PCA、またはその他の学習済み変換を適用する前に、最終テストセットを分割しておきます。
  • 学習済み前処理と推定器を Pipeline に配置し、各交差検証フォールドがトレーニング分割に対してのみ変換を適合させるようにします。
  • 数値、カテゴリ、テキスト、またはその他の列サブセットに異なる変換が必要な場合は ColumnTransformer を使用します。
  • preprocess__numeric__scaler や model__C のようなパイプライン名を通じてネストされたパラメータを探索します。
  • cross_val_score、cross_validate、グリッドサーチ、またはランダムサーチの前に、データセット全体を手動で前処理しないでください。

PCA、検査、異種混合カラムについては references/preprocessing-inspection.md を参照してください。


評価ツールと探索ツールを意図的に選択する

  • 1つのメトリックと単純なフォールドスコアには cross_val_score を使用します。
  • 複数のメトリック、トレインスコア、適合/スコアリング時間、または返される推定器が本当に必要な場合には cross_validate を使用します。
  • 小さく離散的で正当性のあるパラメータグリッドで、総当たり組み合わせが計算予算に収まる場合には GridSearchCV を使用します。
  • より大きな空間、分布、または固定の候補予算には RandomizedSearchCV を使用します。n_iter とパラメータ分布を意図的に設定します。
  • モデル比較全体で同じ交差検証セマンティクスとスコアリング契約を維持します。分割器が必要とする場合は、グループ/メタデータを正しく渡します。
  • 未評価のテストセットを保持するか、モデル選択がすべての開発フォールドを消費する場合は適切なネスト評価を使用します。

質問に答えるために曲線と検査を追加する

  • learning_curve を使用して、さらにトレーニングデータを追加することでトレイン/検証ギャップが減少する可能性があるか、または両方のスコアが横ばいになっているかを尋ねます。
  • validation_curve を使用して、1つのハイパーパラメータのトレイン/検証動作を検査します。これは複数パラメータの探索や最終テストの代わりにはなりません。
  • sklearn.inspection.permutation_importance を使用して、適合済みモデルのスコアが特徴量に依存する度合いを測定します。理想的には、モデルが有用な予測性能を持っていることを確認した後、保持しておいたデータで行います。
  • 部分依存またはICEは、その仮定と特徴量分布が結果を解釈可能にする場合にのみ使用します。
  • 検査プロットを機械的に追加しないでください。最初にデバッグ、信頼性、または解釈可能性の質問を定義します。

必要な出力

独立した評価単位を述べます; ホールドアウト比率の根拠; 選択された交差検証分割器とスコアリング; 前処理/PCAの配置; グリッドまたはランダムサーチの予算; 学習/検証曲線が具体的な質問に答えるかどうか; 検査方法とデータセット; リーク制御; そして最終的な未評価の評価パス。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

autentisitet/python-callable-caching

Chooses Python callable ownership, including lambda versus named function and method versus module placement, plus properties, closures, cache lifetimes, construction/subclass hooks, and deterministic cleanup. Use when those design decisions affect reuse, binding, tracebacks, state, or lifetime. Do not use for ordinary calls to partial or other higher-order helpers, browser/distributed/external caches, dependency maintenance, or isolated syntax.

autentisitet/python-cli-file-workflows

Builds and reviews bounded-memory Python file-processing CLIs with explicit path bases, argparse contracts, and iterable- or callback-driven tqdm progress. Use when file scale, path ownership, progress semantics, or CLI behavior needs design. Never activate for tiny fixed fixtures that can be read wholly, swapping an already-chosen progress library, translation, documentation-only edits, dependency updates, web APIs, GUIs, shell-only scripts, or incidental Path/tqdm/argparse terms.

autentisitet/python-domain-modeling

Designs Python type annotations, domain objects, validation boundaries, dataclass/Pydantic models, invariants, interfaces, fixed choices, and object-copy semantics. Use when choosing ABC for owned nominal implementations versus Protocol for third-party structural compatibility, or when changing model behavior and boundary contracts. Never activate for dependency/version updates, translation, documentation-only edits, counting references, isolated syntax, or incidental modeling terms.

関連スキル