【问题标题】:Should I build a different model for each subset我应该为每个子集建立不同的模型吗
【发布时间】:2019-05-15 18:52:20
【问题描述】:

我有一个包含分类变量的数据集class我正在尝试解决一个回归问题

我不明白是否应该在整个数据集上构建模型并将变量 class 作为输入变量之一,还是应该为每个类构建一个完全不同的模型。

什么是通用规则,可以帮助我在两种方法之间做出决定。

这是我的数据的样例

+------------+----+-----+-----------------+
|   Class    | X1 | X2  |     Speed       |
+------------+----+-----+-----------------+
| Class1     | 12 | 123 |              10 |
| Class2     | 14 | 120 |              32 |
| Class3     | 15 |  34 |              12 |
|   .        |  . |   . |               . |
|   .        |  . |   . |               . |
|   .        |    |     |                 |
|  Class 300 | 23 |  13 |              45 |
+------------+----+-----+-----------------+

Class 是输入分类变量,我有大约 300 个类。输出变量是Speed。我正在尝试使用变量ClassX1X2 来预测速度。

我应该为每个Class 分别建立一个模型吗?所以当我知道输入类型是Class1 时,我会选择为Class1 构建的模型。当输入类型为Class2 时,我将使用为Class2 构建的模型等等。 Class 变量中的值也可以重复,意思是 Class1 可以出现 4 次,Class2 可以出现 8 次等

我想的另一种方法是将 Class 本身作为变量包含在内,然后只构建一个模型。

我不知道哪个是正确的方法

【问题讨论】:

  • 1) 请编辑您的帖子以保持一致性 - 您提到“大约 10 个课程”和“大约 300 个课程”2) 没有“正确”的方法;虽然第一种方法自然是用class 作为输入变量来构建一个模型,但如果你觉得这样的话,你也绝对应该尝试另一种方法 3) 这个问题在这里可以说是题外话,因为它是不是关于编程,而是关于建模方法,其适当的站点是Cross ValidatedData Science
  • @desertnaut 已编辑。谢谢指出

标签: machine-learning scikit-learn regression categorical-data


【解决方案1】:

没有普遍接受的正确方式。大多数人会告诉您尝试这两种方法并使用最适合您的数据的方法。不过有几点需要注意:

  • 每个类是否有足够的数据点来构建准确的模型?如果不是,则将所有类(或一些相似的类)结合起来可能是更好的方法。

  • 如果您确实需要合并类,如果任何其他参数不在类似的范围内,您可能需要对数据进行规范化。 (参考Feature scaling。)

如果不了解数据的性质,很难说更多。

【讨论】:

  • 我知道这真的很难,但只是想要一个公平的基线来了解人们所做的事情。我想要的是一个总体概述。不过谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多