取引データのワンホットエンコード
このコース全体を通して、マーケットバスケット分析に使う前処理の共通パイプラインを用います。最初のステップは、pandas の DataFrame を読み込み、取引(トランザクション)が入っている列を選ぶことです。その列の各取引は、カンマ区切りの複数アイテムを含む文字列です。次に、lambda 関数で各取引文字列を分割してリストにし、列全体を「リストのリスト」に変換します。
この演習では、食料品データセットから作成済みの「リストのリスト」transactions が用意されています。transactions をワンホットエンコードした DataFrame に変換し、各列を TRUE/FALSE で表して、取引にそのアイテムが含まれているかどうかを示します。
この演習はコースの一部です
Python で学ぶマーケットバスケット分析
演習の手順
mlxtend.preprocessingからTransactionEncoderをインポートします。- トランザクションエンコーダをインスタンス化し、
transactionsに含まれる一意のアイテムを特定します。 transactionsをワンホットエンコードして配列にし、その値をonehotに代入します。- その配列を、アイテム名を列名として用いて
pandasの DataFrame に変換します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the transaction encoder function from mlxtend
from ____.____ import ____
import pandas as pd
# Instantiate transaction encoder and identify unique items in transactions
encoder = TransactionEncoder().____(____)
# One-hot encode transactions
onehot = encoder.____(transactions)
# Convert one-hot encoded data to DataFrame
onehot = pd.DataFrame(____, columns = encoder.columns_)
# Print the one-hot encoded transaction dataset
print(onehot)