特征编码的一些技巧

来源:互联网 发布:淘宝谁家的ipad是正品 编辑:程序博客网 时间:2024/06/04 18:31
  • 如何进行数字编码。 对于次序型特征,手工编码转换表,然后使用Pandas的map函数。对于名义型特征,可以使用sklean提供的LabelEncoder类。

buying_dict = {"low":0,"med":1,"high":2,"vhigh":3}car_num_encoded["buying"] = car_num_encoded["buying"].map(buying_dict)car_num_encoded["buying"].head(5)from sklearn.preprocessing import LabelEncoderbuying_encoder = LabelEncoder()encoded_buying = buying_encoder.fit_transform(car["buying"])buying_encoder.inverse_transform([0,1,2,3])

  • 如何进行One-Hot编码。 有两个工具可以帮助我们方便地完成:pandas自带的get_dummies函数和sklearn实现的OneHotEncoder类。

car_onehot_encoded = pd.DataFrame()for col in ["buying","maint","doors","persons","lug_boot","safety"]:    col_encoded = pd.get_dummies(car[col],prefix = col+"_")    car_onehot_encoded = pd.concat([car_onehot_encoded, col_encoded],axis=1)    car_onehot_encoded.head(5)

  • 如何将数据集划分成训练集和测试集。 使用sklearn实现的train_test_split函数。如果要保持训练集和测试集样本类别的均衡,记得设置stratify参数。

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, stratify = y, random_state=42)



原创粉丝点击