Ich habe eine Frage zur Datenvorverarbeitung für maschinelles Lernen. Spezifisches Transformieren der Daten, so dass sie null Mittelwert und Einheitsvarianz aufweist. Ich habe meine Daten in zwei Datensätze aufgeteilt (ich weiß, ich sollte drei haben, aber der Einfachheit halber sagen wir einfach, ich habe zwei). Sollte ich meinen Trainingsdatensatz so transformieren, dass der gesamte Trainingsdatensatz eine Einheitsvarianz und einen Nullmittelwert aufweist und dann beim Testen des Modells jeden Testeingabevektor so transformiert, dass jeder bestimmte Testeingabevektor Einheitsvarianz und Nullmittelwert darstellt, oder sollte ich einfach transformieren der gesamte Datensatz (Ausprobieren und Testen) zusammen, so dass das Ganze Einheit var und Null bedeutet? Meine Überzeugung ist, dass ich die erstere so machen sollte, dass ich keine verachtenswerte Menge an Voreingenommenheit in den Testdatensatz einführen werde. Aber ich bin kein Experte, also meine Frage.Machine Learning Datenvorverarbeitung
Antwort
Die Montage Ihres Präprozessors sollte nur am Trainingssatz erfolgen und die Mittelwert- und Varianztransformatoren werden dann im Test-Set verwendet. Berechnen dieser Statistiken über Zug- und Testlecks einige Informationen über das Test-Set.
Lassen Sie mich Link auf eine good course auf Deep-Learning und zeigen Ihnen ein Zitat (beide von Andrej Karpathy):
Gemeinsame pitfall. Ein wichtiger Punkt, der über die Vorverarbeitung zu machen ist, ist, dass jede Vorverarbeitungsstatistik (z. B. der Datenmittelwert) nur auf den Trainingsdaten berechnet und dann auf die Validierungs-/Testdaten angewendet werden muss. Z.B. es wäre ein Fehler, den Mittelwert zu berechnen und ihn von jedem Bild über den gesamten Datensatz zu subtrahieren und dann die Daten in Zug/Wert/Testaufteilungen aufzuteilen. Stattdessen muss der Mittelwert nur über die Trainingsdaten berechnet und dann gleichmäßig von allen Splits (Train/Val/Test) abgezogen werden.
Brilliant! Wird es durchlesen. Ich fand, dass dieses Leck real war, wenn ein Modell, das ich in einem Datensatz trainierte, der vor der Trennung von Zug- und Validierungsdaten standardisiert war, eine störende 98% ige Genauigkeit bei den Testsatzvorhersagen ergab. Es war einfach zu schön, um wahr zu sein. –
- 1. Machine Learning Datenvorverarbeitung mit Pandas
- 2. Machine Learning für Tippfehler
- 3. PHP-Machine-Learning-Bibliothek?
- 4. Azure Machine Learning - CORS
- 5. Machine Learning Unfähigkeit
- 6. Machine Learning (Adversarial Images)
- 7. Python Machine Learning DeprecationWarning
- 8. Python Machine Learning Warnung
- 9. Export Machine Learning Modell
- 10. Machine Learning Job Recommender
- 11. NLP/Machine Learning Textvergleich
- 12. Numerische Vorhersage mit Machine Learning
- 13. AWS Machine Learning Retrain-Modell
- 14. Machine Learning Bibliotheken für Android
- 15. Azure Machine Learning-Webservice Eingabedatenproblem
- 16. Machine Learning Instanz basierte Lernen
- 17. Machine Learning-Bibliotheken in C#
- 18. AWS Machine Learning - Django Template
- 19. Großvolumiges SVM (Machine Learning) System
- 20. Azure Machine Learning Request Reaktionslatenz
- 21. Spark Machine Learning AST-Vergleich
- 22. Automatisierung von Azure Machine Learning
- 23. Azure Machine Learning Eingabegröße angeben
- 24. Machine Learning Training & Test Datenaufteilungsmethode
- 25. GATE Machine Learning funktioniert nicht
- 26. Azure Machine Learning Experiment Erstellung
- 27. Machine Learning-Algorithmus für die Datenklassifizierung.
- 28. Machine Learning Algorithmus zur Vorhersage nächsten Wert
- 29. Machine Learning Fall Erkennung mit Zeitreihenanalyse
- 30. Parallel * gelten in Azure Machine Learning Studio
Afaik, Leute wenden Standardisierung auf den gesamten Datensatz an. Aber ich habe eine ähnliche Frage [hier] gestellt (http://stats.stackexchange.com/questions/212597/standardization-in-neural-network-online-training), weil es in einem Online-Trainingsszenario nicht so einfach ist. – davidhigh