gpt4 book ai didi

python - 如何将不同维度的多个分类输入变量用于随机森林回归模型?

转载 作者:行者123 更新时间:2023-11-30 09:44:16 25 4
gpt4 key购买 nike

我有描述某个项目正在经历发布过程的数据。该项目具有不同的变量,例如“产品类别”、“设计国家”、“产品系列”等。我总共有 18 种不同类型的二进制或分类数据。这些不同的变量具有不同的维度。例如,有 3 个不同的设计国家和 8 个不同的产品类别。输出变量是一个项目经历发布过程所花费的时间,是一个连续变量。我想预测一个项目完成这个过程需要多长时间。

 Design_cntry      Prod_category    prod_line    ...   time_minutes
A A1 A11 ... 43.2
B B1 A11 ... 20.1
C E1 B11 ... 15.0
... ... ... ... ....

为了让我将它们用作随机森林回归器的输入,我如何处理不同的输入变量?

我知道使用分类变量可以应用一种热编码。但是我要对每个单独的变量执行此操作吗?

 X_des_country = pd.get_dummies([data['design_cntry'], prefix = "design_country")
X_prod_cat = pd.get_dummies([data['prod_cat'], prefix = "prod_cat")

然后我将拥有 18 个不同列数的不同输入数据帧。在训练模型时如何使用这些变量作为输入?我是否通过相对于索引合并将它们全部放入一个数据框“X”中?

或者直接在原始数据帧上应用一种热编码是否更好?

   X = df.drop("time_minutes", axis = 1)
X = pd.get_dummies(X)

最佳答案

作为(重要的)旁注,为了避免虚拟变量陷阱,您需要为每个分类变量删除一个值:您可以通过在 pd 中添加 drop_first=True 来做到这一点.get_dummies

对于您的回归模型,您可以将所有这些新功能组合在一起并使用它来训练您的模型。但您不必创建 18 个不同的 DataFrame,您可以一次完成所有操作:

>>> df = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'],'C': [1, 2, 3]})
A B C
0 a b 1
1 b a 2
2 a c 3

>>> pd.get_dummies(df, drop_first=True)
C A_b B_b B_c
0 1 0 1 0
1 2 1 0 0
2 3 0 0 1

这将仅为分类变量(即 char 列)创建虚拟变量,并保留 int 列原样(参见上面的 C 列)。如果您的变量之一仅包含整数,但您希望将其视为分类变量,只需预先将其转换为字符变量即可。

关于python - 如何将不同维度的多个分类输入变量用于随机森林回归模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54568870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com