Data Scientist

自動EDA、モデル比較、時系列分析を備えたエンドツーエンドのデータサイエンスワークフロー。

Pythonスクリプト

スキルパッケージをダウンロード (.skill) GitHubでソースを見る ワークフロー

目次

概要

Data Scientist は、探索的データ分析からモデルの学習・評価・レポート作成までをカバーする包括的なデータサイエンスワークフローを提供します。3つの Python 自動化スクリプトが重い処理を担当し、Claude が方法論的な判断のガイドと結果の解釈を行います。

主な機能:

  • 自動EDA – データ品質評価、分布分析、相関分析、可視化の自動生成
  • モデル比較 – 1つのコマンドで7-9種類のアルゴリズム(回帰・分類)を学習・評価
  • 時系列分析 – 定常性検定、季節分解、ACF/PACF、複数モデルによる予測
  • レポート生成 – エグゼクティブサマリーとビジネス推奨を含む構造化された分析レポート

使用場面

  • 探索的分析 – 表形式データのパターン、分布、関係性を理解したい場合
  • 予測モデリング – 分類・回帰モデルを構築し、アルゴリズムを比較したい場合
  • 時系列予測 – 時系列データの分析と将来値の予測
  • 特徴量エンジニアリング – モデルに最適な特徴量を作成・選択したい場合
  • モデル評価 – アルゴリズム比較、特徴量重要度の解釈、過学習のチェック
  • レポート作成 – ステークホルダー向けの包括的な分析レポートを生成したい場合

前提条件

  • Claude Code がインストール済みであること
  • data-scientist スキルが ~/.claude/skills/ にコピー済みであること
  • Python 3 と主要なデータサイエンスライブラリ: pandas, scikit-learn, matplotlib, seaborn, statsmodels

依存関係のインストール:

pip install pandas scikit-learn matplotlib seaborn statsmodels

外部 API キーは不要です。

動作の仕組み

このスキルは7ステップのワークフローに従います:

1. 問題定義
       |
2. データ理解 (EDA)
       |
3. データ準備・特徴量エンジニアリング
       |
4. モデル選択・学習
       |
5. モデル評価・解釈
       |
6. インサイト・推奨
       |
7. コミュニケーション・デプロイ

ステップ 1: 問題定義

Claude がビジネス上の質問をデータサイエンスの問題に変換します。問題タイプ(分類、回帰、時系列、クラスタリング)、成功基準、制約条件(解釈可能性、レイテンシ、データ量)を決定します。「この分析はどのようなビジネス判断に活用されますか?」「モデルの解釈可能性は重要ですか?」などの明確化質問を行います。

ステップ 2: データ理解

Claude が auto_eda.py を実行して包括的なデータプロファイルを生成し、出力をレビューして品質の問題、重要なパターン、特徴量の関係性を特定します。自動レポートから浮かび上がった仮説に対して、手動のフォローアップ分析を行います。

ステップ 3: データ準備

EDA の結果に基づき、Claude が特徴量エンジニアリング戦略を適用します: 歪んだ分布への数学的変換、カテゴリ変数のエンコーディング、交互作用特徴量、時間ベースの特徴量(ラグ、ローリング統計)、集約特徴量。特徴量選択手法(分散閾値、相関フィルタリング、ツリーベースの重要度)で次元を削減します。

ステップ 4: モデル学習

Claude が model_comparison.py を実行し、7-9種類のアルゴリズムを交差検証で自動的に学習・評価します。スクリプトが学習/テスト分割、ハイパーパラメータのデフォルト値、指標の計算を処理します。

ステップ 5: モデル評価

Claude が比較結果を分析し、過学習のチェック(学習スコアとテストスコアの差)、混同行列や残差プロットのレビュー、特徴量重要度の解釈を行います。必要に応じて SHAP 値や部分依存プロットでより深いモデル解釈を提供します。

ステップ 6-7: インサイトとコミュニケーション

Claude が技術的な発見をビジネス推奨に変換し、影響を定量化して、付属の analysis_report_template.md を使って構造化されたレポートを生成します。

付属スクリプト

スクリプト 目的 主な出力
auto_eda.py 自動EDA: データ品質、分布、相関 テキストレポート、分布チャート、相関ヒートマップ
model_comparison.py 7-9種類のMLアルゴリズムの学習と比較(回帰・分類) 性能比較表、最適モデル推奨、特徴量重要度
timeseries_analysis.py 時系列診断と予測 定常性検定(ADF/KPSS)、季節分解、ACF/PACF、信頼区間付き予測

スクリプトの使い方:

# EDA
python scripts/auto_eda.py data.csv --target target_col --output eda_results/

# モデル比較(回帰)
python scripts/model_comparison.py data.csv price --problem-type regression --output model_results/

# モデル比較(分類)
python scripts/model_comparison.py data.csv churn --problem-type classification --output model_results/

# 時系列
python scripts/timeseries_analysis.py sales.csv revenue --date-col date --forecast-periods 30 --output ts_results/

モデル選択フロー

Claude は問題の特性に基づいてモデリングアプローチを選択します:

要因 小規模データ (<10k行) 大規模データ (>1M行)
解釈可能性が必要 線形/ロジスティック回帰、決定木 正則化付き線形モデル
最大精度が必要 Random Forest、SVM + 交差検証 Gradient Boosting (XGBoost, LightGBM)
不均衡クラス Balanced Random Forest、SMOTE + シンプルモデル クラス重み付き Gradient Boosting
時系列 ARIMA、指数平滑法 ラグ特徴量付き XGBoost、Prophet

使い方の例

例1: データセットの探索

sales_data.csv を分析してください。EDAを実行し、データ品質の問題を特定し、
revenue と最も相関の強い特徴量を教えてください。

Claude が auto_eda.py を実行し、出力をレビューして、主要なパターン、品質の問題、特徴量の関係性を解説します。

例2: モデルの構築と比較

customer_data.csv に "churned" カラムがあります。
解約予測の分類モデルを構築し、最適なモデルを推奨してください。

Claude が model_comparison.py を分類モードで実行し、各アルゴリズムの F1/ROC-AUC を評価、混同行列を分析して、特徴量重要度の知見とともに推奨を提供します。

例3: 時系列の予測

daily_revenue.csv(カラム: date, revenue)を使って今後90日間を予測してください。
信頼区間を表示し、季節性があれば特定してください。

Claude が timeseries_analysis.py を実行し、分解と定常性検定をレビュー、ARIMAと指数平滑法を比較して、信頼区間付きの予測を生成します。

例4: 特徴量エンジニアリングのガイダンス

signup_date, last_login, total_purchases, product_category のカラムを持つ
顧客データセットがあります。解約予測モデル用の特徴量エンジニアリングを手伝ってください。

Claude が RFM特徴量(Recency, Frequency, Monetary)、在籍期間ベースの特徴量、ログイン頻度指標、カテゴリ交互作用特徴量を作成し、付属の feature_engineering.md を参照します。

例5: 完全な分析レポート

marketing_campaign.csv を分析し、マーケティングチーム向けの
完全なレポートを生成してください。どのチャネルがコンバージョンを促進しているか知りたいです。

Claude が EDA を実行し、分類モデルを構築、SHAP で特徴量重要度を解釈し、analysis_report_template.md を使って非技術的な言葉で構造化されたレポートを生成します。

トラブルシューティング

auto_eda.py で依存関係エラーが発生する

症状: スクリプトが pandas, seaborn, statsmodelsModuleNotFoundError を発生させる。

解決策: 必要なライブラリをすべてインストールしてください: pip install pandas scikit-learn matplotlib seaborn statsmodels。仮想環境を使用している場合は、スクリプト実行前に有効化されていることを確認してください。

モデル比較で過学習が見られる

症状: 学習スコアは高いが、テストスコアがすべてのモデルで大幅に低い。

解決策: 通常、データリーケージまたはデータ不足を示しています。将来の情報が特徴量に漏れていないか確認してください(特に時系列データ)。モデルの複雑さの低減、正則化の追加、学習サンプルの増加を試みてください。Claude はこのパターンを自動的にフラグし、修正アクションを提案します。

時系列予測が季節性を無視する

症状: 予測線がフラットまたはトレンドのみで、生データに明らかに見える週次・月次パターンを反映していない。

解決策: --date-col パラメータが日付カラムを正しく識別していること、日付がパース可能な形式であることを確認してください。季節性が存在するが弱い場合は、Claude に明示的に伝えてください: 「このデータには週次の季節性があります」。Claude が分解とモデルパラメータを調整します。

ヒントとベストプラクティス

  • EDAから始める – モデリングに入る前に必ず探索的分析を実行。データ品質の問題が判明し、特徴量エンジニアリングの方針が定まります。
  • 目的変数を指定する – 予測対象のカラムを伝えることで、問題タイプが自動的に選択されます。
  • データリーケージに注意 – 特徴量が学習データのみで作成されていることを確認。時間的な制約がある場合は明示してください。
  • 単一の指標に頼らない – 分類では Precision, Recall, F1, ROC-AUC を総合的に確認。不均衡データでは Accuracy を主要指標にしないでください。
  • 特徴量を反復改善 – 最初のモデル比較後、特徴量重要度を参考にさらなるエンジニアリングを行います。
  • レポートを依頼する – ステークホルダー向けの構造化された分析レポートの生成を依頼できます。

問題タイプの選択ガイド

問題 タイプ 主要指標
数値の予測(価格、売上) 回帰 RMSE, MAE, R二乗
カテゴリの予測(解約、不正) 分類 F1, ROC-AUC, Precision/Recall
将来値の予測 時系列 MASE, MAE, カバレッジ
データ内のグループ発見 クラスタリング シルエットスコア, イナーシャ

関連スキル