Bắt đầu ngayBắt đầu miễn phí

One Hot Encoding

Tại Hoa Kỳ, nơi bạn sinh sống sẽ quyết định con bạn có thể theo học trường nào. Vì vậy, dễ hiểu khi nhiều người rất quan tâm đến việc ngôi nhà tương lai của họ thuộc khu học chính nào. Mặc dù các khu học chính được đánh số trong SCHOOLDISTRICTNUMBER, thực chất đây là biến phân loại. Nghĩa là việc cộng hay lấy trung bình các giá trị này không có ý nghĩa rõ ràng. Do đó, trong ví dụ này, chúng ta sẽ chuyển SCHOOLDISTRICTNUMBER từ biến phân loại thành một vector số để dùng cho mô hình Machine Learning sau này.

Bài tập này là một phần của khóa học

Feature Engineering với PySpark

Xem khóa học

Hướng dẫn bài tập

  • Khởi tạo một StringIndexer tên là string_indexer với đầu vào là SCHOOLDISTRICTNUMBER và đầu ra là School_Index.
  • Áp dụng transformer string_indexer lên df bằng fit()transform(). Lưu DataFrame đã biến đổi vào indexed_df.
  • Tạo một OneHotEncoder tên là encoder với đầu vào là School_Index và đầu ra là School_Vec.
  • Áp dụng phép biến đổi lên indexed_df bằng transform(). Quan sát từng bước biến đổi với đoạn mã đã cung cấp.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

from pyspark.ml.feature import OneHotEncoder, StringIndexer

# Map strings to numbers with string indexer
string_indexer = ____(inputCol=____, outputCol=____)
indexed_df = ____.____(df).____(df)

# Onehot encode indexed values
encoder = ____(inputCol=____, outputCol=____)
encoded_df = ____.____(indexed_df)

# Inspect the transformation steps
encoded_df[['SCHOOLDISTRICTNUMBER', 'School_Index', 'School_Vec']].show(truncate=100)
Chỉnh sửa và Chạy Mã