我想知道如何处理以下情况:
我有一个数据集需要分析。它被标记为数据,我需要对其执行分类任务。一些功能是数字功能,而其他功能是分类功能(非标准功能),我的问题是我不知道如何处理这些分类功能。
在进行分类之前,我通常会应用MinMaxScaler。但是由于分类特征,我无法在此特定数据集中执行此操作。
我已经读过one-hot encoding
,但是我不知道如何将其应用于我的情况,因为我的数据集具有一些数值特征和10个分类特征,并且一键编码会在数据框,我不知道如何准备生成的数据框以将其发送到决策树分类器。
为了弄清情况,我到目前为止使用的代码如下:
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分类器是否可以理解我的数据的真实情况。我的意思是如何向分类器表达一组列属于特定功能?我是否了解整体情况错了?抱歉,这是一个令人困惑的问题,但是我是新手,我对如何处理这个问题感到非常困惑。
答案 0 :(得分:0)
我没有足够的声誉来评论,但是请注意,决策树分类器不需要缩放其输入。因此,如果您使用决策树分类器,则只需使用它们出现的功能即可。
如果您使用的是需要特征缩放的方法,那么您可能应该分别进行一次热编码和特征缩放-请参见以下答案:https://stackoverflow.com/a/43798994/9988333
或者,您可以使用“开箱即用”的分类变量处理方法,例如LGBM。