Ist eine geschichtete Stichprobe erforderlich (zufällige Gesamtstruktur, Python)?

14

Ich verwende Python, um ein zufälliges Gesamtstrukturmodell für mein unausgeglichenes Dataset auszuführen (die Zielvariable war eine Binärklasse). Bei der Aufteilung des Trainings- und Testdatensatzes hatte ich Probleme, geschichtete Stichproben (wie der gezeigte Code) zu verwenden oder nicht. Bisher stellte ich in meinem Projekt fest, dass der geschichtete Fall zu einer höheren Modellleistung führen würde. Aber ich denke, wenn ich mein Modell verwenden werde, um die neuen Fälle vorherzusagen, die sich höchstwahrscheinlich in der Verteilung der Zielklasse mit meinem aktuellen Datensatz unterscheiden würden. Also neigte ich dazu, diese Einschränkung zu lösen und die nicht geschichtete Aufteilung zu verwenden. Kann mir jemand einen Rat geben, um diesen Punkt zu klären?

train,test=train_test_split(myDataset, test_size=0.25, stratify=y)
LUSAQX
quelle

Antworten:

13

Wenn die Anzahl der Werte, die zu jeder Klasse gehören, nicht ausgeglichen ist, ist die Verwendung von geschichteten Stichproben eine gute Sache. Sie fordern das Modell grundsätzlich auf, das Trainings- und Testset so zu absolvieren, dass der Klassenanteil mit dem des gesamten Datensatzes übereinstimmt. Dies ist die richtige Vorgehensweise . Wenn Ihre Klassen ausgeglichen sind, kann ein Shuffle (hier ist keine Schichtung erforderlich) im Grunde genommen einen fairen Test und eine faire Aufteilung der Züge gewährleisten.

Jetzt ist Ihr Modell in der Lage oder zumindest in der Lage, die überzählige Klasse (Klasse mit weniger Punkten) vorherzusagen. Aus diesem Grund wurden Ihnen anstelle der Genauigkeitsberechnung andere Messgrößen wie Empfindlichkeit und Spezifität zugewiesen . Behalte diese im Auge, das sind die Wächter.

Hoffe das hilft.

Kiritee Gak
quelle