Que faire lorsque les données de test ont moins de fonctionnalités que les données de formation?

10

Disons que nous prédisons les ventes d'une boutique et que mes données de formation ont deux ensembles de fonctionnalités:

  • Un sur les ventes du magasin avec les dates (le champ "Store" n'est pas unique)
  • Un sur les types de magasins (le champ "Store" est unique ici)

La matrice ressemblerait donc à ceci:

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

et

+-------+-----------+------------+---------------------+
| 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 deuxième matrice décrit le type de magasin, les groupes d'assortiments d'articles que chacun vend et la distance du magasin concurrent le plus proche.

Mais dans mes données de test, je n'ai que des informations dans la première matrice sans les champs Customerset Sales. L'objectif est de prédire le domaine des ventes

  • Boutique
  • Jour de la semaine
  • Date
  • Ouvert (si le magasin est ouvert)
  • Promo (si le magasin a une promotion)
  • StateHoliday (que ce soit un jour férié)

Je peux facilement former un classificateur basé sur les champs à puces ci-dessus pour prédire, Salesmais comment puis-je utiliser la deuxième matrice dans mes données d'entraînement que je n'obtiendrais pas dans les données de test?

Est-il logique de supposer que la deuxième matrice sur les types de magasin est statique et que je peux facilement la joindre aux données de test?

Que se passe-t-il s'il y a des trous dans mon jeu de fonctionnalités de données de test, disons que pour certaines lignes des données de test, je n'ai pas les valeurs "Promo".

alvas
la source
Vous savez que vous pouvez demander cela sur le forum Kaggle, et il est déjà répondu : kaggle.com/c/rossmann-store-sales/forums/t/17137/… et kaggle.com/c/rossmann-store-sales/forums/ / t / 16730 /…
Neil Slater
Oooo, pardonnez ma noblesse kaggle. Première kaggle sans que personne ne me tienne la main =)
alvas
1
Aucun problème. Les Customersdonnées sont très spécifiques à la compétition. Si vous ne savez pas comment traiter les valeurs manquantes en général pour ML (telles que les Promovaleurs vides ), il peut être utile de modifier cette question pour ne concerner que ce problème. Il y a déjà quelques réponses à ce sujet sur ce site, par exemple datascience.stackexchange.com/questions/8322/…
Neil Slater

Réponses:

2

Je pense qu'il pourrait y avoir un problème dans la façon dont vous énoncez le problème. Vous dites que vos données de test n'ont pas deux champs, mais cela ne peut pas être correct.

Vous devez prendre toutes vos données et les diviser en 2 groupes, l'ensemble d'entraînement et l'ensemble de test. Dans une proportion de 80% -20% ou 70% -30%. Ensuite, vous entraînez votre algorithme avec les données de l'ensemble de formation et testez la précision du modèle avec les données de l'ensemble de test.

La précision que vous obtenez est la probabilité que votre modèle soit correct. Ou dit autrement, la prochaine fois que vous utiliserez votre modèle pour prédire une vente, la précision est la probabilité que votre prédiction soit réelle

hoaphumanoïde
la source
Je pense que vous vous enlisez dans l'utilisation par OP du terme "données de test" et que vous manquez complètement l'essence de la question ...
Patrick Coulombe