เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การทำ One-Hot Encoding กับข้อมูล Transaction

ตลอดคอร์สนี้ เราจะใช้ pipeline มาตรฐานสำหรับเตรียมข้อมูลเพื่อนำไปใช้ใน Market Basket Analysis ขั้นตอนแรกคือการนำเข้า pandas DataFrame และเลือกคอลัมน์ที่เก็บข้อมูล transaction โดย transaction แต่ละรายการในคอลัมน์จะเป็น string ที่ประกอบด้วยสินค้าหลายชิ้น คั่นด้วยเครื่องหมายจุลภาค จากนั้นใช้ฟังก์ชัน lambda เพื่อแยก string ของแต่ละ transaction ออกเป็น list ซึ่งจะแปลงคอลัมน์ดังกล่าวให้กลายเป็น list of lists

ในแบบฝึกหัดนี้ จะเริ่มต้นด้วย list of lists จากชุดข้อมูลร้านขายของชำ ซึ่งพร้อมใช้งานในชื่อตัวแปร transactions จากนั้นจะแปลง transactions ให้เป็น DataFrame แบบ one-hot encoded โดยแต่ละคอลัมน์จะประกอบด้วยค่า TRUE และ FALSE ที่บ่งบอกว่ามีสินค้านั้นอยู่ใน transaction หรือไม่

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Market Basket Analysis ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นำเข้า TransactionEncoder จาก mlxtend.preprocessing
  • สร้าง transaction encoder และระบุรายการสินค้าที่ไม่ซ้ำกันใน transactions
  • ทำ one-hot encoding กับ transactions เป็น array แล้วกำหนดค่าที่ได้ให้กับตัวแปร onehot
  • แปลง array ดังกล่าวให้เป็น pandas DataFrame โดยใช้ชื่อสินค้าเป็น header ของคอลัมน์

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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)
แก้ไขและรันโค้ด