mcpField
D
data-analyst

data-analyst

github.com/ailabs-393データ・データベース4601.2k 回インストール50 週間前に更新
リポジトリ

data-analyst について

data-analystは、欠損値の評価、データ特性に応じた補完、対話型Plotly Dashダッシュボードを組み合わせたCSV分析スキルです。データ品質の確認と探索的分析を一連の流れでも個別の作業でも行えます。

主な機能

  1. 01欠損パターン分析と手法の提案
  2. 02データ特性に応じた欠損値補完
  3. 03対話型Plotly Dashダッシュボード
  4. 04統計概要、傾向、相関の可視化
  5. 05補完レポートと処理済みCSVの出力

活用シーン

  1. 01データセットの清掃前に欠損状況を評価
  2. 02列の特性に応じた方法で欠損値を補完
  3. 03ダッシュボードで傾向や分布を探索
  4. 04補完の影響と処理済みデータを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ailabs-393/ai-labs-claude-skills --skill data-analyst

インストール後、Claude Code で/data-analystを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

index.js
package.json
requirements.txt
references/
imputation_methods.md
scripts/
analyze_missing_values.py
create_dashboard.py
impute_missing_values.py

詳細

データアナリスト

概要

このスキルは、CSV データセットのデータ分析ワークフローを包括的にサポートします。欠損値のパターンを自動的に分析し、適切な統計手法を用いて欠損データをインテリジェントに補完し、傾向やパターンを可視化するインタラクティブな Plotly Dash ダッシュボードを作成します。欠損値の自動処理と豊富なインタラクティブな可視化を組み合わせ、探索的データ分析をエンドツーエンドで支援します。

主な機能

data-analyst スキルでは、単独でも一連のワークフローとしても利用できる、次の 3 つの主な機能を提供します。

1. 欠損値の分析

データセット内の欠損値を自動的に検出して分析し、パターンを特定して最適な補完方法を提案します。

2. インテリジェントな補完

各列のデータ型や分布の特性に合わせた高度な補完方法を適用します。

3. インタラクティブなダッシュボードの作成

傾向分析やデータ探索に使える、複数の可視化タイプを備えた包括的な Plotly Dash ダッシュボードを生成します。

一連のワークフロー

ユーザーから欠損値の処理と可視化を含む包括的なデータ分析を依頼された場合は、次のワークフローに従います。

ステップ 1:欠損値を分析する

欠損値分析スクリプトを実行して、データの品質を把握します。

python3 scripts/analyze_missing_values.py <input_file.csv> <output_analysis.json>

このスクリプトで行うこと:

  • 各列の欠損値を検出します
  • データ型(数値、カテゴリ、時系列など)を特定します
  • 欠損値に関する統計情報を計算します
  • 各列に適した補完方法を提案します
  • 詳細な JSON レポートとコンソール出力を生成します

出力を確認して、次の点を把握します。

  • 欠損データがある列
  • 欠損値の割合
  • 各列に推奨される補完方法
  • それぞれの方法が推奨された理由
ステップ 2:欠損値を補完する

分析結果に基づいて、自動補完を適用します。

python3 scripts/impute_missing_values.py <input_file.csv> <analysis.json> <output_imputed.csv>

このスクリプトで行うこと:

  • 分析結果を読み込みます(結果が指定されていない場合は分析を実行します)
  • 各列に最適な補完方法を適用します。
    • 平均値:正規分布に従う数値データ
    • 中央値:偏りのある数値データ
    • 最頻値:カテゴリ変数
    • KNN:相関のある多変量数値データ
    • 前方補完:時系列データ
    • 定数:カーディナリティの高いテキストフィールド
  • エッジケースを処理します(適切に行や列を削除します)
  • 補完前後の統計情報を含む補完レポートを生成します
  • クリーンアップ済みのデータセットを保存します

スクリプトは次の処理を自動的に行います:

  • 欠損値が 70%を超える列を削除します
  • 重要な ID 列が欠損している行を削除します
  • 相関のある変数に対して一括で KNN 補完を実行します
  • 詳細な補完ログを作成します
ステップ 3:インタラクティブなダッシュボードを作成する

インタラクティブな Plotly Dash ダッシュボードを生成します。

python3 scripts/create_dashboard.py <imputed_file.csv> <output_dir> <port>

例:

python3 scripts/create_dashboard.py data_imputed.csv ./visualizations 8050

このスクリプトで行うこと:

  • 列の型(数値、カテゴリ、時系列)を自動的に検出します
  • 包括的な可視化を作成します。
    • 要約統計量の表:すべての数値列の記述統計量
    • 時系列プロット:日付/時刻列がある場合の傾向分析
    • 分布プロット:データ分布を把握するためのヒストグラム
    • 相関ヒートマップ:数値変数間の関係
    • カテゴリ分析:カテゴリ変数の棒グラフ
    • 散布図行列:変数間のペアごとの関係
  • インタラクティブな Dash ウェブサーバーを起動します
  • 静的な HTML の可視化を任意で保存します

http://127.0.0.1:8050(または指定したポート)でダッシュボードにアクセスできます。

個別のユースケース

ユースケース A:欠損値を簡単に評価する

補完を行わずにデータ品質を把握したい場合:

python3 scripts/analyze_missing_values.py data.csv

コンソール出力を確認して、欠損値のパターンを把握し、推奨事項を確認します。

ユースケース B:補完のみを行う

欠損値のあるデータセットをクリーンアップしたい場合:

python3 scripts/impute_missing_values.py data.csv

分析と補完を 1 つのステップで実行し、data_imputed.csv を生成します。

ユースケース C:可視化のみ

データセットがクリーンで、インタラクティブな可視化を行いたい場合:

python3 scripts/create_dashboard.py clean_data.csv ./visualizations 8050

前処理を行わずに、完全なダッシュボードが作成されます。

ユースケース D:カスタムの補完戦略

補完戦略を確認して調整したい場合:

  1. まず分析を実行します:

    python3 scripts/analyze_missing_values.py data.csv analysis.json
    
  2. analysis.json を確認し、戦略についてユーザーと話し合います

  3. 必要に応じて、スクリプトの補完ロジックまたはパラメーターを変更します

  4. 補完を実行します:

    python3 scripts/impute_missing_values.py data.csv analysis.json data_imputed.csv
    

補完方法について

このスキルでは、データの特性に基づいたインテリジェントな補完戦略を使用します。主な方法は次のとおりです:

  • 平均値/中央値:数値データの場合(正規分布には平均値、歪んだ分布には中央値)
  • 最頻値:カテゴリ変数の場合(最も頻度の高い値)
  • KNN(K 最近傍法):変数間に相関がある多変量の数値データの場合
  • 前方補完:時系列データの場合(直前の観測値を引き継ぐ)
  • 補間:時間的に滑らかな傾向がある場合
  • 定数値:カーディナリティの高いテキストフィールドの場合(例:「Unknown」)
  • 削除:欠損率が 70% を超える列、または ID が欠損している行の場合

各方法が適切なケースの詳細については、references/imputation_methods.md を参照してください。

ダッシュボードの機能

インタラクティブなダッシュボードには、次の機能があります:

要約統計量
  • すべての数値列の件数、平均値、標準偏差、最小値、最大値、四分位数
  • 欠損値の件数と割合
  • 並べ替え可能なテーブル形式
時系列分析
  • 時系列の傾向を示すマーカー付き折れ線グラフ
  • 複数系列に対応(主要な指標は最大 4 つ)
  • 正確な値を表示するホバー詳細
  • 比較を容易にする統一ホバーモード
分布分析
  • すべての数値変数のヒストグラム
  • 詳細な分布表示のためのデフォルト設定は 30 ビン
  • 比較しやすいマルチパネルレイアウト
相関分析
  • 相関係数を示すヒートマップ
  • -1(負)から +1(正)までを色分けして表示
  • 正確な相関値を注記
  • 関係性の特定に役立ちます
カテゴリ分析
  • カテゴリ変数の棒グラフ
  • 上位 10 カテゴリを表示(カーディナリティの高い変数の場合)
  • 頻度を表示
散布図行列
  • 数値変数のペアごとの散布図
  • 見やすさを考慮して最大 5 変数に制限
  • 重複を避けるため、下三角部分を表示

セットアップと依存関係

スキルを使用する前に、依存関係がインストールされていることを確認してください:

pip install -r requirements.txt

必要なパッケージ:

  • pandas - データ操作と分析
  • numpy - 数値計算
  • scikit-learn - KNN 補完
  • plotly - インタラクティブな可視化
  • dash - ウェブダッシュボードのフレームワーク
  • dash-bootstrap-components - ダッシュボードのスタイル設定

ベストプラクティス

分析の場合:
  1. データ品質を把握するため、補完の前に必ず分析を実行します
  2. 推奨された補完方法を確認します。これらは推奨であり、必須ではありません
  3. 欠損値の割合に注意します(40% を超える場合は慎重な検討が必要です)
  4. データ型が想定と一致していることを確認します(例:数値 ID が数値として検出されているか)
補完の場合:
  1. 補完前に元のデータセットを保存します
  2. 補完レポートを確認し、方法が妥当であることを確かめます
  3. 補完された値が妥当な範囲内であることを確認します
  4. 重要な変数について、欠損を示す指標の作成を検討します
  5. 再現性を確保するため、使用した補完方法を記録します
ダッシュボードの場合:
  1. 最も正確な可視化を行うため、補完済み/クリーンなデータを使用します
  2. 技術に詳しくない関係者と共有する場合は、静的な HTML グラフを保存します
  3. 複数のダッシュボードを同時に実行する場合は、異なるポートを使用します
  4. 大規模なデータセット(10 万行超)では、レンダリングを高速化するためにサンプリングを検討します

エッジケースへの対応

欠損率が高い場合(50% 超)

スクリプトは、欠損率が 50% を超える列に自動的にフラグを付けます。選択肢:

  • 重要でなければ列を削除します
  • 欠損を示す指標変数を作成します
  • データが欠損している理由を調査します(有益な情報である可能性があります)
混合データ型

列に異なる型(数値とテキストなど)が混在している場合:

  • スクリプトが主要な型を検出します
  • 分析の前に列をクリーンアップすることを検討してください
  • テキスト型が混在する列には定数による補完を使用してください
小規模なデータセット

行数が50未満のデータセットの場合:

  • 単純な補完(平均値/中央値/最頻値)のほうが安定します
  • KNNは避けてください(十分な数の近傍データが必要です)
  • 補完する代わりに、行を削除することを検討してください
時系列データの欠損

タイムスタンプが不規則な時系列の場合:

  • 短い欠損には前方埋めを使用してください
  • 滑らかな傾向がある長い欠損には補間を使用してください
  • 手法を選ぶ際はサンプリング頻度を考慮してください

トラブルシューティング

「module not found」でスクリプトが失敗する

依存関係をインストールします:pip install -r requirements.txt

ダッシュボードが起動しない(ポートが使用中)

別のポートを指定します:python3 scripts/create_dashboard.py data.csv ./viz 8051

KNNによる補完が遅い

大規模なデータセットでは、KNNの計算負荷が高くなります。行数が50kを超える場合は、以下を検討してください:

  • より単純な手法(平均値/中央値)を使用する
  • 先にデータをサンプリングする
  • KNNで使用する列を減らす
補完された値が正しくないように見える
  • 分析レポートを確認し、検出されたデータ型を確認してください
  • 列が正しく検出されていること(数値型かカテゴリ型か)を確認してください
  • 手動での調整や別の補完方法を検討してください
  • 平均値/中央値の計算に影響する外れ値がないか確認してください

リソース

scripts/
  • analyze_missing_values.py - 欠損値を包括的に分析し、戦略を自動で推奨します
  • impute_missing_values.py - データの特性に合わせた複数の手法で、欠損値をインテリジェントに補完します
  • create_dashboard.py - 複数の可視化タイプに対応した、インタラクティブなPlotly Dashダッシュボード生成ツールです
references/
  • imputation_methods.md - 欠損値補完の戦略、意思決定の枠組み、ベストプラクティスに関する詳細なガイドです
その他のファイル
  • requirements.txt - このスキルに必要なPythonの依存関係

コメント