Что делать, если данные тестирования имеют меньше возможностей, чем данные обучения?

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]

Вторая матрица описывает тип магазина, ассортиментные группы товаров, которые каждый из них продает, и расстояние до ближайшего магазина-конкурента.

Но в моих тестовых данных, у меня есть только информация в первой матрице без Customersи Salesполей. Цель состоит в том, чтобы предсказать поле продаж с учетом

  • хранить
  • День недели
  • Свидание
  • Открыто (открыт ли магазин)
  • Промо (есть ли в магазине акция)
  • StateHoliday (будь то государственный праздник)

Я могу легко обучить классификатор на основе вышеупомянутых маркированных полей, чтобы предсказать, Salesно как я могу использовать вторую матрицу в моих тренировочных данных, которые я не получу в тестовых данных?

Логично ли предположить, что вторая матрица типов Store является статической, и я могу легко присоединить ее к тестовым данным?

Что произойдет, если в моем наборе функций тестовых данных есть дыры, скажем, для некоторых строк в тестовых данных у меня нет значений «Promo».

Alvas
источник
Вы знаете, что можете спросить об этом на форуме Kaggle, и на него уже есть ответ : kaggle.com/c/rossmann-store-sales/forums/t/17137/… и kaggle.com/c/rossmann-store-sales/forums / т / 16730 /…
Нил Слэйтер
Оооо, извините за невнятность. Первый раз, когда кто-то держит меня за руки =)
alvas
1
Нет проблем. CustomersДанные очень специфичны для конкуренции. Если вы не уверены, что делать с пропущенными значениями в целом для ML (например, пустыми Promoзначениями), возможно, стоит изменить этот вопрос, чтобы он касался только этой проблемы. На этом сайте уже есть ответы на некоторые вопросы, например, datascience.stackexchange.com/questions/8322/…
Нил Слейтер

Ответы:

6

Используйте дополнительные функции для обучения без учителя. Возможно, вам понравится этот взгляд Владимира Вапника в контексте SVM, который он называет привилегированным обучением: обучение с интеллектуальным учителем: контроль сходства и передача знаний

Эмре
источник
2

Я думаю, что может быть проблема в том, как вы ее формулируете. Вы говорите, что у тестируемых данных нет двух полей, но это не может быть правильным.

Вы должны взять все свои данные и разделить их на 2 группы: тренировочный набор и тестовый набор. В пропорции 80% -20% или 70% -30%. Затем вы тренируете свой алгоритм с данными в обучающем наборе и проверяете точность модели с данными в тестовом наборе.

Точность, которую вы получаете, - это вероятность того, что ваша модель верна. Или, по-другому, в следующий раз, когда вы используете свою модель для прогнозирования продажи, точность - это вероятность того, что ваш прогноз является реальным

hoaphumanoid
источник
Я думаю, что вы увязли в использовании ОП термина «тестовые данные» и полностью упустили суть вопроса ...
Патрик Куломб,