我有一个手写数据集用于分类,其类别是从a-z
。如果我想使用MLPClassifier,我想我不能直接使用这些分类类别,因为scikit-learn中的MLP实现只能处理数值类别。因此,这里应该采取什么适当的措施呢?将这些类别转换为从1到28的编号,这样做有意义吗?如果没有,scikit-learn是否提供了特殊的编码机制来处理这种情况的类标签(我猜这里不适用独热编码)?
谢谢
回答:
您可能需要预处理数据,因为scikit-learn只能处理数值。在这种情况下,我想要预测交易的货币。货币以ISO代码表示,因此使用LabelEncoder将其转换为数值类别(即:1, 2, 3…):
#导入LabelEncoder对象from sklearn.preprocessing import LabelEncoder#定义类别列my_encoder = LabelEncoder()my_class_currency = np.array(my_encoder.fit_transform(my_data['currency'])).reshape(-1,1)#创建一个“字典”,以便在获得输出后将类别翻译成实际值my_class_decoder = list(np.unique(my_data['currency']))