¿Qué hacer cuando los datos de prueba tienen menos características que los datos de entrenamiento?

10

Digamos que estamos prediciendo las ventas de una tienda y mis datos de entrenamiento tienen dos conjuntos de características:

  • Uno sobre las ventas de la tienda con las fechas (el campo "Tienda" no es único)
  • Uno sobre los tipos de tienda (el campo "Tienda" es único aquí)

Entonces la matriz se vería así:

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

y

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

La segunda matriz describe el tipo de tienda, los grupos de artículos surtidos que cada uno vende y la distancia desde la tienda competidora más cercana.

Pero en mis datos de prueba, solo tengo información en la primera matriz sin los campos Customersy Sales. El objetivo es predecir el campo de ventas dado el

  • Tienda
  • Día de la semana
  • Fecha
  • Abierto (si la tienda está abierta)
  • Promo (si la tienda tiene una promoción)
  • StateHoliday (si es un feriado estatal)

Puedo entrenar fácilmente un clasificador basado en los campos con viñetas anteriores para predecir, Salespero ¿cómo puedo usar la segunda matriz en mis datos de entrenamiento que no obtendría en los datos de prueba?

¿Es lógico suponer que la segunda matriz sobre los tipos de Tienda es estática y puedo unirla fácilmente a los datos de prueba?

¿Qué sucede si hay agujeros en mi conjunto de características de datos de prueba? Digamos que para algunas filas en los datos de prueba, no tengo los valores "Promo".

alvas
fuente
Sabes que puedes preguntar esto en el foro de Kaggle, y ya está respondido : kaggle.com/c/rossmann-store-sales/forums/t/17137/… y kaggle.com/c/rossmann-store-sales/forums / t / 16730 / ...
Neil Slater
Oooo, perdona mi novato kaggle. Kaggle por primera vez sin que nadie me tome de las manos =)
alvas
1
No hay problema. Los Customersdatos son muy específicos de la competencia. Si no está seguro de cómo lidiar con los valores faltantes en general para ML (como los Promovalores vacíos ), podría valer la pena cambiar esta pregunta para que se trate solo de ese problema. Ya hay algunas respuestas al respecto en este sitio, por ejemplo, datascience.stackexchange.com/questions/8322/…
Neil Slater

Respuestas:

2

Creo que puede haber un problema en la forma en que lo estás planteando. Dices que los datos de prueba no tienen dos campos, pero eso no puede ser correcto.

Debe tomar todos sus datos y dividirlos en 2 grupos, el conjunto de entrenamiento y el conjunto de prueba. En una proporción del 80% -20% o 70% -30%. Luego, entrena su algoritmo con los datos del conjunto de entrenamiento y prueba la precisión del modelo con los datos del conjunto de prueba.

La precisión que obtiene es la probabilidad de que su modelo sea correcto. O dicho de otra manera, la próxima vez que use su modelo para predecir una venta, la precisión es la probabilidad de que su predicción sea real.

hoaphumanoid
fuente
Creo que te estás empantanando por el uso de OP del término "datos de prueba" y te estás perdiendo la esencia de la pregunta por completo ...
Patrick Coulombe