Ich recherchiere und lese einige Artikel mit dem SOM-Algorithmus. Ich verstehe die Logik nicht, dass Leute ihren Datensatz in Training/Test-Sets für SOM aufteilen. Ich meine, zum Beispiel, während C4.5 Decision Tree verwendet wird, enthält eine trainierte Struktur einige Regeln, die anzuwenden sind, wenn ein neuer Datensatz (Test) dazu kommt, die Daten dort zu klassifizieren. Welche Art von Regeln oder Ähnlichem werden jedoch generiert, nachdem ein System über SOM trainiert wurde? Was wäre der Unterschied, wenn ich 100% meiner Daten auf ein SOM-System anwende und stattdessen 30% für das Training und dann 70% für das Testen verwende? Vielen Dank für Ihre Antworten im Voraus.Was ist der Grund für die Aufteilung von Daten auf Training/Tests in SOM?
Antwort
Für jedes System, das datenabhängig ist und in Zukunft neuen Daten ausgesetzt sein soll, können Sie durch das Freihalten eines Teils der vorhandenen Daten die Vorhersagen über die Prognose nach der Bereitstellung zuverlässig treffen . Für SOM lernen Sie eine spezifische Dateneinbettung. Wenn Sie alle Ihre Daten für das Training verwenden und später dieses trainierte SOM auf noch nie gesehene Daten anwenden wollen - haben Sie keine Garantie, wie es sich verhalten wird (wie gut ist diese Darstellung für die vorliegende Aufgabe). Mit einem Holdout können Sie dies in einer kontrollierten Umgebung testen - Sie trainieren die SOM-Repräsentation für einen Teil Ihrer Daten und wenden sie dann auf Embed Holdout (Test) an, was simuliert, was passieren würde, wenn ich neue Daten erhalte mein SOM drauf ". Dasselbe gilt für jeden einzelnen Algorithmus, der Daten verwendet, egal, ob er überwacht wird oder nicht. Wenn Sie etwas basierend auf diesem Modell bereitstellen möchten, benötigen Sie einen Testsatz, um Vertrauen in Ihre eigene Lösung aufzubauen. Wenn Sie andererseits nur eine explorative Analyse von "geschlossenen" Datensätzen durchführen, können Sie unbeaufsichtigte Methoden einfach auf alle anwenden (wenn Sie nur fragen, "Was ist die Struktur in diesem bestimmten Datensatz?").
Es scheint, dass Sie nicht sehen, warum SOM (unbeaufsichtigtes maschinelles Lernen) wie andere maschinelle Lerntechniken behandelt werden sollte, daher Ihre Aussage: "... eine trainierte Struktur enthält einige Regeln, die anzuwenden sind, wenn ein neuer Datensatz (Test) kommt die Daten dort zu klassifizieren ..“
Im allgemeinen während der Ausbildung (einschließlich der SOM), zielen Sie mit einem Satz von
final weights
am Ende (uns e deine Worte; "Die Regeln, die angewendet werden sollen", die für einen neuen, zuvor nicht sichtbaren Datensatz verwendet werden sollen. Der Trainingssatz sollte eine breite Palette von Funktionen enthalten, typischerweise einen guten Vertreter der Art von Daten, auf die Sie ihn anwenden möchten.
Dies ermöglicht die final weights
so genau und zuverlässig wie möglich zu sein. Zu "Welche Art von Regeln oder etwas Ähnliches werden generiert, nachdem ein System über SOM trainiert wurde?" Die final weights
enthält die "Regeln", die auf alle neuen Daten angewendet werden, die der SOM unterzogen werden. Daher wird das SOM Ihnen Ergebnisse basierend auf den Werten in seiner final weights
geben.
Die Aufteilung der Daten in Training und Tests hilft Ihnen, die Zuverlässigkeit der trainierten SOM zu gewährleisten, bevor Sie sie in Produktion nehmen.
Mit dem Test-Set können Sie dagegen sehen, wie gut das trainierte SOM funktioniert. Sie vergleichen die Ergebnisse aus dem Trainingssatz und dem Testsatz. Dies ist wichtig, bevor Sie das trainierte SOM anwenden und verwenden. Wenn Sie große Diskrepanzen zwischen den Ergebnissen des Trainingssatzes und dem Testsatz feststellen, sollten Sie den Trainingssatz überprüfen - wahrscheinlich mehr verschiedene Funktionen im Trainingssatz.
Kurz gesagt, können Sie mit der Schulung und dem Test-Set die Leistung des SOM sicherstellen, wenn es implementiert wird.Wie bereits erwähnt here:
"... wir schaffen Test Partitionen uns der Leistung unserer Prognosemodelle ehrliche Einschätzungen liefern kein Betrag von mathematisches Denken und Manipulation der Ergebnisse auf der Grundlage der Trainingsdaten werden. überzeugend für einen erfahrenen Beobachter. "
- 1. In Bezug auf ASP.NET Caching, was ist der Grund oder der Grund für gleitende Ablauf?
- 2. Was ist der Grund für '//' in Python?
- 3. Was ist der Grund für die Qt-Benennung von Klassen?
- 4. Was ist der Grund für diese Ausgabe?
- 5. Was ist der Grund für die vorläufige Definition in C?
- 6. Was ist der Grund für cbegin/cend?
- 7. Was ist der Grund für `std :: make_tuple`?
- 8. Was ist der Grund für Swifts Größenmethoden, die `Int`s?
- 9. Was ist der Grund für SwingWorker?
- 10. Was ist der Grund für die Verwendung des richtigen Datentyps?
- 11. Was ist der Grund von @strongify
- 12. Was ist der Grund für die Makefile-Whitespace-Syntax?
- 13. Was ist der Grund für das Design von GUIDs?
- 14. Effiziente Aufteilung von Daten in Python
- 15. Was ist der Grund für #pragma einmal in Header-Wachen?
- 16. Was ist der Grund für die Warnung "Zeiger fehlt ein Spezifizierer für die Angabe der Nullabgabefähigkeit"?
- 17. Was ist der Grund für OpenShift-Fehler ungültige ImageStreamTag?
- 18. Was ist der Grund für dieses undefinierte Verhalten?
- 19. Was ist der Grund für boost :: none_t Implementierung?
- 20. Was ist der Grund für den JVM-Exitcode 1073807364?
- 21. Was ist der Grund von "FimgApiStretch: Stretch fehlgeschlagen" in Android
- 22. Was ist der Grund für den Header HTTP Date?
- 23. Was ist der Grund für die Größe von Exponenten und Mantissen in IEEE-Gleitkomma-Standards?
- 24. Akka: Was ist der Grund für die Verarbeitung von Nachrichten einzeln in einem Actor?
- 25. Was ist der mögliche Grund für diese Ausgabe?
- 26. Was ist der Grund für die Verwendung der OPTION-Anfrage vor dem POST bei CORS-Anfragen?
- 27. Was ist der Grund für die Verwendung der Auto-Self-Variable (shared_from_this()) in der Lambda-Funktion?
- 28. Was ist der Grund für die Warnung "Zuweisung in Bedingung" in der Zend Studio IDE?
- 29. Was ist der Grund/Ursprung von textwidth = 78 (statt 80)?
- 30. Was ist der Grund für die Implementierung von IEnumerable und IEnumerator