如何使用不同尺寸的多个分类输入变量为随机森林回归模型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用不同尺寸的多个分类输入变量为随机森林回归模型?相关的知识,希望对你有一定的参考价值。

我有介绍通过释放过程持续一个项目的数据。该项目具有不同的变量,如“产品类别”,“Design_country”,“产品系列”等。在总的I有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个不同的输入dataframes。我怎么那么训练我的模型时,使用这些变量作为输入?我把所有的人都一个数据帧“X”由内相对于指数合并?

或者是更好的直接原数据帧应用一个热码?

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

作为(重要)侧面说明,以避免虚拟变量陷阱,你需要删除一个值,为每个分类变量:您可以通过在drop_first=True加入pd.get_dummies

为了您的回归模型,你可以放在一起所有这些新功能,并用它来训练你的模型。但是你没有创建18个不同的DataFrames,你可以一次做这一切:

>>> 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列,因为它们(上述CF C列)。如果您的变量中的一个仅包含整数,但你希望它被看作是一个分类变量,只需将其转换为字符变量提前。

以上是关于如何使用不同尺寸的多个分类输入变量为随机森林回归模型?的主要内容,如果未能解决你的问题,请参考以下文章

具有所有自变量作为分类的随机森林回归器

MATLAB-随机森林实现数据回归分析预测

R语言编写自定义函数计算分类模型评估指标:准确度特异度敏感度PPVNPV数据数据为模型预测后的混淆矩阵比较多个分类模型分类性能(逻辑回归决策树随机森林支持向量机)

day03-二分类问题

随机森林回归器的特征选择

随机森林回归的 3D 输入