1. 学ぶ
  2. /
  3. コース
  4. /
  5. XGBoost で学ぶ極限の勾配ブースティング

Connected

演習

カテゴリ列のエンコード II: OneHotEncoder

さて、カテゴリ列を数値にエンコードできました。では、いよいよパイプラインと XGBoost に進めるでしょうか? まだです!このデータセットのカテゴリ列には、要素同士に自然な順序関係がありません。例として、LabelEncoder を使った場合、Neighborhood の CollgCr は 5、Veenker は 24、Crawfor は 6 にエンコードされました。Veenker は Crawfor や CollgCr より「大きい」のでしょうか? いいえ。モデルがこのような自然な順序を仮定してしまうと、性能が下がる可能性があります。

そのため、もう一段階必要な処理があります。ワンホットエンコーディングを適用して、二値の「ダミー」変数を作成する必要があります。これは scikit-learn の OneHotEncoder を使って行えます。

指示

100 XP
  • sklearn.preprocessing から OneHotEncoder をインポートします。
  • OneHotEncoder オブジェクト ohe を作成します。キーワード引数 sparse=False を指定します。
  • .fit_transform() メソッドを使って OneHotEncoder を df に適用し、結果を df_encoded として保存します。出力は NumPy の配列になります。
  • df_encoded の先頭5行を表示し、さらに df と df_encoded の shape も出力して違いを確認します。