【发布时间】:2018-03-22 09:35:45
【问题描述】:
假设我有以下数据
import pandas as pd
data = {
'Reference': [1, 2, 3, 4, 5],
'Brand': ['Volkswagen', 'Volvo', 'Volvo', 'Audi', 'Volkswagen'],
'Town': ['Berlin', 'Berlin', 'Stockholm', 'Munich', 'Berlin'],
'Mileage': [35000, 45000, 121000, 35000, 181000],
'Year': [2015, 2014, 2012, 2016, 2013]
}
df = pd.DataFrame(data)
我想在“品牌”和“城镇”两列上进行一次热编码,以训练分类器(例如使用 Scikit-Learn)并预测年份。
一旦分类器被训练,我将想要预测新传入数据的年份(不在训练中使用),我需要重新应用相同的热编码。例如:
new_data = {
'Reference': [6, 7],
'Brand': ['Volvo', 'Audi'],
'Town': ['Stockholm', 'Munich']
}
在这种情况下,知道需要对多列进行编码并且需要能够应用相同的列,对 Pandas DataFrame 上的 2 列进行 one-hot 编码的最佳方法是什么稍后对新数据进行编码。
这是How to re-use LabelBinarizer for input prediction in SkLearn的后续问题
【问题讨论】:
标签: python pandas scikit-learn