当测试数据的特征少于训练数据时该怎么办?

数据挖掘 机器学习 回归 特征选择 特征构造 缺失数据
2021-10-02 03:35:47

假设我们正在预测一家商店的销售额,我的训练数据有两组特征:

  • 一个关于日期的商店销售(“商店”字段不是唯一的)
  • 关于商店类型的一种(“商店”字段在这里是唯一的)

所以矩阵看起来像这样:

+-------+-----------+------------+---------+-----------+------+-------+--------------+
| 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]

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

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

  • 店铺
  • 星期几
  • 日期
  • 营业(店铺是否营业)
  • 促销(商店是否有促销)
  • StateHoliday(是否为国定假日)

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

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

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

2个回答

使用额外的功能进行无监督学习。您可能会喜欢 Vladimir Vapnik 在 SVM 的背景下对此的看法,他称之为特权学习:与智能教师一起学习:相似性控制和知识转移

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

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

您获得的准确性是您的模型正确的概率。或者换一种说法,下次你用你的模型预测销售时,准确率就是你的预测是真实的概率