我想知道如何处理以下情况:
我有一个需要分析的数据集。它被标记为数据,我需要对其执行分类任务。一些功能是数字功能,而其他功能是分类功能(非标准功能),我的问题是我不知道如何处理这些分类功能。
在进行分类之前,我通常会应用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分类器是否将了解我的数据的真实情况。我的意思是如何向分类器表示一组列属于特定功能?我是否了解整体情况错了?抱歉,这是一个令人困惑的问题,但是我是新手,我对如何处理这个问题感到非常困惑。
我没有足够的声誉来发表评论,但是请注意,决策树分类器不需要缩放其输入。因此,如果您使用的是决策树分类器,则只需使用显示的功能即可。
[如果您使用的是需要特征缩放的方法,那么您可能应该分别进行一次热编码和特征缩放-请参见以下答案:https://stackoverflow.com/a/43798994/9988333
或者,您可以使用一种处理现成的类别变量的方法,例如LGBM。