Ich bin neu im Textmining.Wie kann die Bezeichnung eines neuen Datensatzes vorhergesagt werden, wenn nicht alle Merkmale des Trainingssatzes abgedeckt sind?
Ich habe einen Datensatz von SMS und ich möchte herausfinden, ob etwas Spam ist oder nicht. Ich benutzte Quanteda, um meinen Textinhalt in eine Matrix von Wörtern zu verwandeln. Ich entfernte auch Stoppwörter, konvertierte die Wörter in Wortsätze und trainierte ein Modell mit
rpart.cv.1 <- train(Label ~ ., data = train_tokens_df, method = "rpart", trControl = cv_cntrl, tuneLength = 5)
.
Jetzt möchte ich die Bezeichnung von Testdaten vorhersagen. Ich habe alle Vorverarbeitungsschritte mit den Zugdaten gemacht. Das Problem ist, ich habe Worte in meinen Zugdaten, die die Testdaten nicht abdecken.
Meine Vermutung ist, dass der nächste Schritt darin bestehen sollte, alle Spalten der Trainingsdaten hinzuzufügen, die in den Testdaten fehlen. Aber wie geht das einfach und effizient? Trainieren und Testen sind in meinem Fall beide Datenfelder.
Sie können eine geschichtete Stichprobe verwenden, um sicherzustellen, dass jedes Wort Zug- und Testzeilen enthält. Denken Sie auch zuerst darüber nach, was Sie mit Wörtern tun werden, die nur einmal vorkommen. Diese werden definitiv zu den Zug- oder Testdaten gehören. – AntoniosK
Ich habe geschichtete Stichproben durchgeführt, aber ich weiß, dass ich Daten voraussagen möchte, von denen ich die Bezeichnung nicht kenne. – Burschken
Wenn Sie in Ihren Zugdaten kein Etikett haben, ist es nicht möglich, das Modell in diesen Reihen zu trainieren. Wenn Sie in Ihren Zugdaten kein Etikett haben, können Sie die Genauigkeit dieser Zeilen nicht überprüfen. Label ist deine Zielvariable wenn ich richtig verstanden habe, oder? Warum nicht Zeilen ohne Zielvariable ausschließen? Sie können nicht verwendet werden. – AntoniosK