Chuyển đến nội dung chính

レッスン 11: 欠損値、カテゴリ変数、特徴量エンジニアリング

実際のデータ処理プロセス: 欠損、エンコード、スケーリング、外れ値の処理、および基本的な特徴のクロス。

🧠 AI と ML — レッスン 10 レッスン 11: 欠損値、カテゴリカル 変数、特徴エンジニアリング

機械学習: 基本から高度まで

パート 2: 業界標準のワークフロー

xdev.asia

はじめに

実際のデータがクリーンであることはほとんどありません。列に値がありません。テキストに奇妙な記号が含まれています。カテゴリのレベルが多すぎます。フィーチャは手動で作成されており一貫性がありません。この記事は、これらのタスクを再現可能かつエラーのない方法で処理するのに役立ちます。

レッスンの目標

  • 数値およびカテゴリの欠損値を処理します。
  • カテゴリ変数を適切にエンコードします。
  • 特徴エンジニアリングとは何か、いつ停止すべきかを理解します。

値が欠落しています: すべてが欠落しているという意味ではありません

データの欠落は信号である場合があります。入力する前に、「なぜデータが欠落しているのか、ランダムに欠落しているのか、系統的に欠落しているのか、欠落しているかどうかをマークするために追加の列を作成する必要があるのか​​」を考えてください。

一般的な治療法

  • 数値: 外れ値がある場合は、通常、中央値の方が平均値より安全です。
  • カテゴリ: 最も一般的な値を入力するか、「不明」というラベルを付けます。
  • 欠落インジケーター: 欠落自体がシグナルである場合に便利です。

特徴量エンジニアリングは実用的です

過去 30 日間の総支出額、月あたりのサポート チケットの数、制限を超えた使用率など、明確なビジネス ロジックを使用して機能に優先順位を付けます。

フレームコード

sklearn.impute から SimpleImputer をインポート
sklearn.preprocessing から OneHotEncoder をインポート

num_imputer = SimpleImputer(strategy='median')
cat_imputer = SimpleImputer(strategy='most_frequent')
エンコーダ = OneHotEncoder(handle_unknown='ignore')

よくある間違い

  • データを分割する前に不足しているものを埋めます。
  • 未来を見据えた機能を作成します。
  • One-hot にはカテゴリが多すぎるため、機能スペースが無駄に肥大化します。

練習問題を練習する

  • 数値とカテゴリの両方を含む表形式のデータセットを選択します。
  • 数字の不足している数字を埋める 2 つの方法を試してください。
  • 明確なビジネス説明を含む 3 つの新機能を作成します。

完了基準

  • 各列タイプの欠落を埋める戦略を選択する方法を理解します。
  • ワンホット エンコーディングを使用すると、新しいカテゴリに遭遇したときにエラーが発生しません。
  • リークを発生させずに新しいフィーチャーを作成します。

段階的に練習する (上級)

  1. データ プロファイリング レポート (欠損率、カーディナリティ、外れ値) を準備します。
  2. 比較のために欠落処理の 2 つのバージョンを作成します。
  3. ワンホットを使用して分類をエンコードし、ターゲット セーフ エンコーディングと比較します。
  4. 起源を明確に説明した 3 つのビジネス機能を追加します。
  5. 最終的な指標に対する各ステップの影響を評価します。

アーティファクトを送信する必要があります

  • 処理前/処理後のデータ品質テーブル。
  • 新機能とその存在理由のリスト。
  • 各前処理ステップ後の実験ログ。

セルフテストの質問

  • 非ランダムな欠損は別の方法で処理する必要がありますか?
  • ワンホットが効かなくなるのはどんな時ですか?
  • 新しい機能に真の価値があることをどのように証明しますか?