【发布时间】:2020-02-26 21:26:08
【问题描述】:
我想知道我应该如何处理以下情况:
我有一个需要分析的数据集。它是标记数据,我需要对其执行分类任务。有些特征是数字的,有些是分类的(非序数的),我的问题是我不知道如何处理分类的。
在分类之前,我通常会应用一个 MinMaxScaler。但由于分类特征,我无法在这个特定数据集中执行此操作。
我已经阅读了one-hot encoding,但我不明白如何将它应用到我的案例中,因为我的数据集有一些数字特征和 10 个分类特征,并且 one-hot 编码会在数据框中生成更多列,而且我不知道我需要如何准备结果数据帧以将其发送到决策树分类器。
为了澄清情况,我目前使用的代码如下:
y = df.class
X = df.drop(['class'] , axis=1)
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X = scaler.fit_transform(X)
# call DecisionTree classifier
当df 具有分类特征时,我收到以下错误:TypeError: data type not understood。所以,如果我应用one-hot encoding,我会得到一个包含许多列的数据框,我不知道决策树分类器是否会理解我的数据的真实情况。我的意思是如何向分类器表达一组列属于特定特征?我对整个情况的理解错了吗?抱歉,如果这是一个令人困惑的问题,但我是新手,我对如何处理这个问题感到很困惑。
【问题讨论】:
-
如果使用 DecisionTree 分类器,您实际上不需要扩展数据
-
在尝试 one-hot 编码(对于树分类器并不总是很好)之前,请尝试查看一些更基本的编码方案,例如序数编码。您可以尝试这样的encoder 的sklearn 实现。尝试更新您的问题,然后我们可以帮助您进行调试。
标签: python pandas decision-tree