如何根据需要将每个分类唯一值编码为数值?
HeatingQC:加热质量和条件
Ex Excellent
Gd Good
TA Average/Typical
Fa Fair
Po Poor
我试图将分类数据编码为数字。所以我用了sklearn.processing.LabelEncoder。我期望给Ex分配一个更大的数字,为Po分配一个更少的数字。即Ex = 4,Gd = 3,依此类推。
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
encoded_data = label_encoder.fit_transform(data)
print(data)
print(encoded_data)
输出是
Id
1461 TA
1462 TA
1463 Gd
1464 Ex
1465 Ex
Name: HeatingQC, dtype: object
[2 2 1 0 0]
如何将ex编码为4,将Po编码为0?
您可以用最基本的方式做:
encoding_map = {
'Ex': 4,
'Po': 0
}
for item in data:
if not item in encoding_map.keys():
minimum = min(encoding_map.values())
while minimum in encoding_map.values():
minimum += 1
encoding_map[item] = minimum
encoded_data = [encoding_map.get(item) for item in data]