我使用Scikit-Learn培训了一个分类器。我正在加载输入以从CSV中训练我的分类器。我的一些专栏(例如'Town')的价值是规范的(例如可以是'纽约','巴黎','斯德哥尔摩',...)。为了使用这些规范列,我正在使用Scikit-Learn的LabelBinarizer进行单热编码。如何在Scikit-Learn中重新使用LabelBinarizer进行输入预测
我这是怎么训练之前转换数据:
import pandas as pd
from sklearn.preprocessing import LabelBinarizer
headers = [
'Ref.', 'Town' #,...
]
df = pd.read_csv("/path/to/some.csv", header=None, names=headers, na_values="?")
lb = LabelBinarizer()
lb_results = lb.fit_transform(df['Town'])
然而我不清楚如何使用LabelBinarizer创建使用我想要做的预测,新的输入数据的特征向量。尤其是,如果新数据包含所看到的城镇(如纽约),则需要在训练数据中的同一城镇编码。
标签二值化如何被重新应用于新的输入数据?
(我没有对Scikit,了解一种强烈的感觉,如果有人知道如何与大熊猫get_dummies方法是罚款也做到这一点。)
非常感谢。这正是我所期待的。你是否也知道在同一时间对几列进行热编码的方法?或者我们需要做几次热编码并将结果矩阵/数据帧连接在一起? –
@皮尔,欢迎您!你可以使用[MultiLabelBinarizer](http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MultiLabelBinarizer.html) – MaxU
哦,我明白了。我虽然MultiLabelBinarizer是不同的。谢谢,这非常有帮助! 最后但并非最不重要的是,没有办法将热门编码应用于数据框的某些列,而不会丢失其他列(并且必须将它们连接回去)。 –