शुरू करेंमुफ़्त में शुरू करें

Categorical कॉलम्स का Encoding I: LabelEncoder

अब जब आपने देख लिया है कि XGBoost के लिए housing डेटा को तैयार करने के लिए क्या करना होगा, तो आइए इस प्रक्रिया को स्टेप-बाय-स्टेप करें.

सबसे पहले, आपको missing values भरनी होंगी — जैसा कि आपने पहले देखा, LotFrontage कॉलम में कई missing values हैं. फिर, आपको डेटासेट के किसी भी categorical कॉलम को one-hot encoding के ज़रिए encode करना होगा ताकि वे संख्यात्मक रूप में आ जाएँ. इस आइडिया की दोबारा याद के लिए आप यह वीडियो Supervised Learning with scikit-learn से देख सकते हैं.

डेटा में पाँच categorical कॉलम हैं: MSZoning, PavedDrive, Neighborhood, BldgType, और HouseStyle. Scikit-learn में एक LabelEncoder फंक्शन है जो प्रत्येक categorical कॉलम के मानों को integers में बदलता है. आप यहाँ इसका अभ्यास करेंगे.

यह अभ्यास पाठ्यक्रम का हिस्सा है

XGBoost के साथ Extreme Gradient Boosting

पाठ्यक्रम देखें

अभ्यास निर्देश

  • sklearn.preprocessing से LabelEncoder इम्पोर्ट करें.
  • .fillna() का उपयोग करके LotFrontage कॉलम में missing values को 0 से भरें.
  • Categorical कॉलम्स के लिए एक boolean mask बनाएँ. आप यह df.dtypes के object के बराबर होने की जाँच करके कर सकते हैं.
  • एक LabelEncoder ऑब्जेक्ट बनाएँ. आप इसे उसी तरह instantiate कर सकते हैं जैसे किसी भी scikit-learn estimator को करते हैं.
  • सभी categorical कॉलम्स को integers में encode करें LabelEncoder() का उपयोग करके. इसके लिए, दिए गए lambda फंक्शन में le की .fit_transform() मेथड का उपयोग करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Import LabelEncoder
____

# Fill missing values with 0
df.LotFrontage = ____

# Create a boolean mask for categorical columns
categorical_mask = (____ == ____)

# Get list of categorical column names
categorical_columns = df.columns[categorical_mask].tolist()

# Print the head of the categorical columns
print(df[categorical_columns].head())

# Create LabelEncoder object: le
le = ____

# Apply LabelEncoder to categorical columns
df[categorical_columns] = df[categorical_columns].apply(lambda x: ____(x))

# Print the head of the LabelEncoded categorical columns
print(df[categorical_columns].head())
कोड संपादित करें और चलाएँ