Що робити, коли дані тестування мають менше функцій, ніж дані про навчання?


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. Метою є прогнозувати сферу продажів за даними

  • Магазин
  • DayofWeek
  • Дата
  • Відкрити (чи магазин відкритий)
  • Промо (чи магазин має акцію)
  • StateHoliday (чи це державне свято)

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

Чи логічно припустити, що друга матриця про типи Store є статичною, і я можу легко приєднати її до тестових даних?

Що станеться, якщо в моєму наборі тестових даних є отвори, скажімо, для деяких рядків тестових даних у мене немає значень "Промо".


Ви знаєте, що можете запитати це на форумі 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

Відповіді:



2

Я думаю, що може бути проблема в тому, як ви заявляєте про проблему. Ви кажете, що для тестових даних немає двох полів, але це не може бути правильним.

Ви повинні взяти всі свої дані та розділити їх на 2 групи, навчальний набір та тестовий набір. У пропорції 80% -20% або 70% -30%. Потім ви тренуєте свій алгоритм з даними в навчальному наборі та випробовуєте точність моделі з даними тестового набору.

Точність, яку ви отримуєте - це ймовірність правильності вашої моделі. Або сказано по-іншому: наступного разу, коли ви використовуєте свою модель для прогнозування продажу, точність - це ймовірність того, що ваш прогноз реальний


Я думаю, що ви заплутаєтесь у використанні терміну "тестові дані" ОП і повністю пропускаєте суть питання ...
Патрік Куломбе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.