Допустим, мы прогнозируем продажи магазина, и мои данные обучения имеют два набора функций:
- Один о продаже магазина с датами (поле «Магазин» не является уникальным)
- Один из типов магазинов (поле «Магазин» здесь уникально)
Таким образом, матрица будет выглядеть примерно так:
+-------+-----------+------------+---------+-----------+------+-------+--------------+
| 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».
Customers
Данные очень специфичны для конкуренции. Если вы не уверены, что делать с пропущенными значениями в целом для ML (например, пустымиPromo
значениями), возможно, стоит изменить этот вопрос, чтобы он касался только этой проблемы. На этом сайте уже есть ответы на некоторые вопросы, например, datascience.stackexchange.com/questions/8322/…Ответы:
Используйте дополнительные функции для обучения без учителя. Возможно, вам понравится этот взгляд Владимира Вапника в контексте SVM, который он называет привилегированным обучением: обучение с интеллектуальным учителем: контроль сходства и передача знаний
источник
Я думаю, что может быть проблема в том, как вы ее формулируете. Вы говорите, что у тестируемых данных нет двух полей, но это не может быть правильным.
Вы должны взять все свои данные и разделить их на 2 группы: тренировочный набор и тестовый набор. В пропорции 80% -20% или 70% -30%. Затем вы тренируете свой алгоритм с данными в обучающем наборе и проверяете точность модели с данными в тестовом наборе.
Точность, которую вы получаете, - это вероятность того, что ваша модель верна. Или, по-другому, в следующий раз, когда вы используете свою модель для прогнозирования продажи, точность - это вероятность того, что ваш прогноз является реальным
источник