1. 学ぶ
  2. /
  3. コース
  4. /
  5. PySparkで学ぶ特徴量エンジニアリング

Connected

演習

欠損値とカテゴリ値の素朴な扱い方

Random Forest Regression は堅牢なので、時間がかかって面倒な前処理の多くを省略できます。Random Forest の一部の実装は欠損値やカテゴリ値を自動で処理しますが、PySpark の実装はそうではありません。とはいえ数理的には同じなので、素朴な値置換で対応できます。

欠損値については、今回のデータはすべて正の値なので、-1 を代入します。random forest はこの値で分割し、同じ特徴量内の他の値とは別扱いにします。

カテゴリ値については、テキスト値を数値にマップすれば、やはり random forest がそれらで分割して適切に扱います。この例では、コードを簡潔に書くため、Introduction to PySpark で扱った pipelines を再び使います。演習の冒頭でデータフレームの各列の dtypes が表示されます。演習の最後の結果と見比べてください。

NOTE: Pipeline と StringIndexer はすでにインポート済みです。リスト categorical_cols も利用できます。

指示

100 XP
  • fillna() と subset パラメータを使って、WALKSCORE と BIKESCORE の値を -1 に置き換えてください。
  • リスト内包表記で categorical_cols の各列を反復し、StringIndexer のリストを作成してください。
  • パイプライン indexer_pipeline に対して fit() と transform() を適用してください。
  • もはや不要な categorical_cols を drop() で削除してください。dtypes を使って結果のデータ型を確認しましょう。