フライト出発地のエンコーディング
フライトデータの org 列は、フライトの出発空港を示すカテゴリ変数です。
- ORD — オヘア国際空港(シカゴ)
- SFO — サンフランシスコ国際空港
- JFK — ジョン・F・ケネディ国際空港(ニューヨーク)
- LGA — ラガーディア空港(ニューヨーク)
- SMF — サクラメント
- SJC — サンノゼ
- OGG — カフルイ(ハワイ)
これはあくまで空港の一部ですが、カテゴリ変数であるため、回帰モデルで使用する前にワンホットエンコーディング(One-Hot Encoding)を行う必要があります。
データは flights という変数に格納されています。すでに文字列インデクサーを使って、org の文字列に対応するインデックス値の列を作成済みです。
IPython Shell の隣にある スライド パネルでレッスンのスライドを確認すると、理解が深まるでしょう。
この演習はコースの一部です
Machine Learning with PySpark
演習の手順
- ワンホットエンコーダーのクラスをインポートします。
- ワンホットエンコーダーのインスタンスを作成し、入力列を
org_idx、出力列をorg_dummyに設定します。 - ワンホットエンコーダーをフライトデータに適用します。
- カテゴリ値から二値エンコードされたダミー変数へのマッピングの概要を確認します。重複を除いた値のみを含め、
org_idxで並べ替えます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the one hot encoder class
from pyspark.ml.____ import ____
# Create an instance of the one hot encoder
onehot = ____(inputCols=[____], outputCols=[____])
# Apply the one hot encoder to the flights data
onehot = onehot.____(____)
flights_onehot = onehot.____(____)
# Check the results
flights_onehot.____('org', 'org_idx', 'org_dummy').____().____('org_idx').show()