One-hot encoden van transactiegegevens
In de hele cursus gebruiken we een vaste pijplijn om gegevens voor te bereiden voor market basket-analyse. De eerste stap is om een pandas DataFrame te importeren en de kolom te selecteren die de transacties bevat. Elke transactie in die kolom is een string met meerdere items, gescheiden door komma’s. De volgende stap is om met een lambda-functie elke transactiestring te splitsen in een lijst, zodat de kolom verandert in een lijst-van-lijsten.
In deze oefening begin je met de lijst-van-lijsten uit de supermarktgegevensset, die beschikbaar is als transactions. Vervolgens zet je transactions om naar een one-hot geencodeerd DataFrame, waarbij elke kolom uit TRUE- en FALSE-waarden bestaat die aangeven of een item in een transactie voorkwam.
Deze oefening maakt deel uit van de cursus
Market Basket Analysis in Python
Oefeninstructies
- Importeer uit
mlxtend.preprocessingdeTransactionEncoder. - Instantieer een transaction encoder en identificeer de unieke items in
transactions. - One-hot-encode
transactionsnaar een array en wijs de waarden toe aanonehot. - Zet de array om naar een
pandasDataFrame met de itemnamen als kolomkoppen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)