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

Connected

演習

観測数が少ない列を削除する

多くの特徴量エンジニアリングを行った後は、一度立ち止まって作成物を見直すのがよい方法です。カテゴリ変数に対して explode や OneHot Encoding などの自動化手法を使うと、新しい二値特徴量が何百個もできていることがあります。特徴量選択はそれ自体が別コースのテーマですが、データセットの次元数を減らすためにすぐ実践できる手順もあります。

この演習では、観測数が30未満の列を削除します。30は統計的有意性のための一般的な最小観測数です。これより少ないと、単なる偶然により関係が生じ、過学習につながりやすくなります。

NOTE: データはデータフレーム df に用意されています。

指示

100 XP
  • 二値列のリストを反復するあらかじめ用意された for ループを使い、agg 関数でその列の値の sum を計算します。collect() を使って計算を即時実行し、結果を obs_count に保存します。
  • obs_count を obs_threshold と比較します。if 文は、obs_count が obs_threshold 以下の場合に true になるようにします。
  • cols_to_remove リストに追加された列を、drop() を使って削除します。* を付けるとリストをアンパックできることを思い出してください。
  • PySpark のデータフレームの開始時と終了時の形状を、レコード数は count()、列数は df.columns または new_df.columns に対する len() で出力してください。