Was tun, wenn das Testen von Daten weniger Funktionen als die Trainingsdaten hat?

10

Angenommen, wir prognostizieren den Verkauf eines Geschäfts und meine Trainingsdaten weisen zwei Funktionen auf:

  • Eine über den Ladenverkauf mit den Daten (das Feld "Laden" ist nicht eindeutig)
  • Eine über die Geschäftstypen (das Feld "Geschäft" ist hier eindeutig)

Die Matrix würde also ungefähr so ​​aussehen:

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

und

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

Die zweite Matrix beschreibt den Filialtyp, die Sortimentsgruppen der Artikel, die jeder von ihnen verkauft, und die Entfernung zum nächstgelegenen Geschäft des Mitbewerbers.

In meinen Testdaten habe ich jedoch nur Informationen in der ersten Matrix ohne die Felder Customersund Sales. Ziel ist es, das Verkaufsfeld angesichts der

  • Geschäft
  • Wochentag
  • Datum
  • Öffnen (ob der Laden geöffnet ist)
  • Promo (ob das Geschäft eine Promotion hat)
  • StateHoliday (ob es ein Staatsfeiertag ist)

Ich kann leicht einen Klassifikator anhand der obigen Aufzählungsfelder trainieren, um vorherzusagen, Salesaber wie kann ich die zweite Matrix in meinen Trainingsdaten verwenden, die ich in Testdaten nicht erhalten würde?

Ist es logisch anzunehmen, dass die zweite Matrix über die Speichertypen statisch ist und ich sie problemlos mit den Testdaten verknüpfen kann?

Was passiert, wenn mein Testdaten-Feature-Set Lücken aufweist? Nehmen wir an, für einige Zeilen in den Testdaten habe ich keine "Promo" -Werte.

Alvas
quelle
Sie wissen, dass Sie dies im Kaggle-Forum erfragen können, und es ist bereits beantwortet : kaggle.com/c/rossmann-store-sales/forums/t/17137/… und kaggle.com/c/rossmann-store-sales/forums / t / 16730 /…
Neil Slater
Oooo, verzeih meine Kaggle Noobiness. Zum ersten Mal kaggle ohne dass jemand meine Hände hält =)
Alvas
1
Kein Problem. Die CustomersDaten sind sehr wettbewerbsspezifisch. Wenn Sie nicht sicher sind, wie Sie mit fehlenden Werten für ML im Allgemeinen umgehen sollen (z. B. leere PromoWerte), kann es sinnvoll sein, diese Frage so zu ändern, dass sie sich nur auf dieses Problem bezieht. Es gibt bereits einige Antworten auf dieser Website, z. B. datascience.stackexchange.com/questions/8322/…
Neil Slater

Antworten:

2

Ich denke, es könnte ein Problem in der Art und Weise geben, wie Sie das Problem angeben. Sie sagen, dass Sie Testdaten nicht zwei Felder haben, aber das kann nicht korrekt sein.

Sie müssen alle Ihre Daten nehmen und in zwei Gruppen aufteilen, den Trainingssatz und den Testsatz. In einem Anteil von 80% -20% oder 70% -30%. Anschließend trainieren Sie Ihren Algorithmus mit den Daten im Trainingssatz und testen die Genauigkeit des Modells anhand der Daten im Testsatz.

Die Genauigkeit, die Sie erhalten, ist die Wahrscheinlichkeit, dass Ihr Modell korrekt ist. Oder anders ausgedrückt: Wenn Sie das nächste Mal Ihr Modell verwenden, um einen Verkauf vorherzusagen, ist die Genauigkeit die Wahrscheinlichkeit, dass Ihre Vorhersage real ist

Hoaphumanoid
quelle
Ich denke, Sie sind festgefahren, weil OP den Begriff "Testdaten" verwendet und das Wesentliche der Frage völlig verfehlt ...
Patrick Coulombe