测试数据的功能少于训练数据时该怎么办?


10

假设我们正在预测商店的销售量,而我的培训数据具有两组功能:

  • 关于带有日期的商店销售的一项(“商店”字段不是唯一的)
  • 一种关于商店类型(此处的“商店”字段是唯一的)

所以矩阵看起来像这样:

+-------+-----------+------------+---------+-----------+------+-------+--------------+
| Store | DayOfWeek |    Date    |  Sales  | Customers | Open | Promo | StateHoliday |
+-------+-----------+------------+---------+-----------+------+-------+--------------+
|   1   |     5     | 2015-07-31 |  5263.0 |   555.0   |  1   |   1   |      0       |
|   2   |     5     | 2015-07-31 |  6064.0 |   625.0   |  1   |   1   |      0       |
|   3   |     5     | 2015-07-31 |  8314.0 |   821.0   |  1   |   1   |      0       |
|   4   |     5     | 2015-07-31 | 13995.0 |   1498.0  |  1   |   1   |      0       |
|   5   |     5     | 2015-07-31 |  4822.0 |   559.0   |  1   |   1   |      0       |
|   6   |     5     | 2015-07-31 |  5651.0 |   589.0   |  1   |   1   |      0       |
|   7   |     5     | 2015-07-31 | 15344.0 |   1414.0  |  1   |   1   |      0       |
|   8   |     5     | 2015-07-31 |  8492.0 |   833.0   |  1   |   1   |      0       |
|   9   |     5     | 2015-07-31 |  8565.0 |   687.0   |  1   |   1   |      0       |
|   10  |     5     | 2015-07-31 |  7185.0 |   681.0   |  1   |   1   |      0       |
+-------+-----------+------------+---------+-----------+------+-------+--------------+
[986159 rows x 4 columns]

+-------+-----------+------------+---------------------+
| Store | StoreType | Assortment | CompetitionDistance |
+-------+-----------+------------+---------------------+
|   1   |     c     |     a      |         1270        |
|   2   |     a     |     a      |         570         |
|   3   |     a     |     a      |        14130        |
|   4   |     c     |     c      |         620         |
|   5   |     a     |     a      |        29910        |
|   6   |     a     |     a      |         310         |
|   7   |     a     |     c      |        24000        |
|   8   |     a     |     a      |         7520        |
|   9   |     a     |     c      |         2030        |
|   10  |     a     |     a      |         3160        |
+-------+-----------+------------+---------------------+
[1115 rows x 4 columns]

第二个矩阵描述了商店类型,每个商店出售的商品的分类组以及与最近的竞争对手商店的距离。

但是在我的测试数据中,我只有第一个矩阵中的信息,而没有Customersand Sales字段。目的是在给定销售价格的情况下预测销售领域

  • 商店
  • 周日
  • 日期
  • 营业(商店是否营业)
  • 促销(商店是否正在促销)
  • StateHoliday(是否为州假日)

我可以根据上面的项目符号字段轻松地训练分类器来进行预测,Sales但是如何在训练数据中利用我无法从测试数据中获得的第二个矩阵呢?

假设关于商店类型的第二个矩阵是静态的,并且我可以轻松地将其加入测试数据,这是否合乎逻辑?

如果我的测试数据功能集上有空洞,那会发生什么,比如说对于测试数据中的某些行,我没有“促销”值。


您知道您可以在Kaggle论坛上提出此问题,并且已经回答了kaggle.com/c/rossmann-store-sales/forums/t/17137/…kaggle.com/c/rossmann-store-sales/forums / t / 16730 /…
尼尔·斯莱特

噢,原谅我的傻笑。没有人牵着我的手的第一次嘲笑=)
alvas

1
没问题。该Customers数据是非常特殊的比赛。如果您不确定如何处理ML的缺失值(例如空Promo值),则可能有必要将此问题更改为仅与该问题有关。此站点上已经有关于此的一些答案,例如,datascience.stackexchange.com / questions / 8322 /…
Neil Slater

Answers:



2

我认为您陈述问题的方式可能存在问题。您说您的测试数据没有两个字段,但是那是不正确的。

您必须获取所有数据并将其分为两组,即训练集和测试集。比例为80%-20%或70%-30%。然后,使用训练集中的数据训练算法,并使用测试集中的数据测试模型的准确性。

您获得的准确性是您的模型正确的可能性。或用另一种方式说,下次您使用模型预测销售时,准确性是预测为真实的概率


我认为您会被OP对“测试数据”一词的使用所困扰,并完全错过了问题的实质...
Patrick Coulombe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.