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 Customers
und 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, Sales
aber 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.
Customers
Daten sind sehr wettbewerbsspezifisch. Wenn Sie nicht sicher sind, wie Sie mit fehlenden Werten für ML im Allgemeinen umgehen sollen (z. B. leerePromo
Werte), 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/…Antworten:
Verwenden Sie die zusätzlichen Funktionen für unbeaufsichtigtes Lernen. Vielleicht gefällt Ihnen Vladimir Vapnik im Zusammenhang mit SVMs, die er als privilegiertes Lernen bezeichnet: Lernen mit intelligenten Lehrern: Ähnlichkeitskontrolle und Wissenstransfer
quelle
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
quelle