针对不同数据组的不同ML模型的训练和表示

时间:2019-11-28 10:50:31

标签: python pandas machine-learning scikit-learn pandas-groupby

我想使用sklearn构建和训练回归模型,假设它是LinearRegression

主要问题是,给定我的数据集,我(基于领域知识)知道可能存在一些代表不同组的变量(列),并且这些组应该分别建模

这是代表问题的示例数据集:

功能

['f1', 'f2']-连续

['Group', 'SubGroup']-分类(代表不同的组)

响应

['score']-响应

+-------+-----------+----+----+-------+
| Group | Sub_Group | F1 | F2 | Score |
+-------+-----------+----+----+-------+
| G1    |         1 |  3 | 32 |    58 |
| G1    |         1 |  0 | 34 |    78 |
| G1    |         1 |  2 | 42 |    63 |
| G2    |         1 |  1 | 29 |    82 |
| G2    |         2 |  7 | 36 |    60 |
| G2    |         2 |  9 | 39 |    91 |
+-------+-----------+----+----+-------+

在这种情况下,这些是我需要分别建模的不同组:

组1: ('G1', 1)

+-------+-----------+----+----+-------+
| Group | Sub_Group | F1 | F2 | Score |
+-------+-----------+----+----+-------+
| G1    |         1 |  3 | 32 |    58 |
| G1    |         1 |  0 | 34 |    78 |
| G1    |         1 |  2 | 42 |    63 |
+-------+-----------+----+----+-------+

组2: ('G2', 1)

+-------+-----------+----+----+-------+
| Group | Sub_Group | F1 | F2 | Score |
+-------+-----------+----+----+-------+
| G2    |         1 |  1 | 29 |    82 |
+-------+-----------+----+----+-------+

组3: ('G2', 2)

+-------+-----------+----+----+-------+
| Group | Sub_Group | F1 | F2 | Score |
+-------+-----------+----+----+-------+
| G2    |         2 |  7 | 36 |    60 |
| G2    |         2 |  9 | 39 |    91 |
+-------+-----------+----+----+-------+

问题是:

我应该选择哪个选项来对这些不同的组进行建模?

  1. 选项1: One model for all groups.

    使用完整的数据集训练一个大型模型,其中包含代表不同组的列。

    在使用OneHotEncoder进行训练/预测时,我将处理这些分类组列。

    通常会针对给定的特征向量进行预测。

  2. 选项2: Different model for each group.

    每个小组建立和训练不同的模型。

    在这种情况下,我们将有3种不同的模型 在删除组列的同时在原始数据集的右侧进行训练。

    预测将按组分别进行。

在模型评分(R2/RMSE/MSE)上选择以上任何选项是否会有区别? 我认为应该有,因为将这些组表示为要素可能不正确,因为模型会将这些要素视为其他要素,并且它们最终可能没有真正应有的重要性。

0 个答案:

没有答案