2016-05-04 12 views
0

Ich versuche, Daten in Training, Validierung und Test mit Numpy und Pandas zu teilen.Auswählen von Zeilen basierend auf dem Bereich der Vektorwerte in Pandas

Ich weiß, das funktioniert (es ist von der sklearn Iris Beispiel):

DataFrame['is_train'] = np.random.uniform(0, 1, len(train)) <= .75 
train, test = DataFrame[DataFrame['is_train']==True], DataFrame[DataFrame['is_train']==False] 

Aber wie mache ich etwas ähnliches für einen Bereich von Werten, zB .33 < x < 0,66?

funktioniert das nicht:

DataFrame['segment'] = np.random.uniform(0, 1, len(df)) 
DataFrame[DataFrame['segment'] < .33 & DataFrame['segment'] < .66] 

Schließlich, wenn Sie einen besseren Weg bewusst sind, dann sagen beten.

Nach meinem besten Wissen, sklearn 's cross_validation.train_test_split() macht keine Drei-Wege-Splits.

+0

kleiner Fehler: DataFrame [DataFrame ['Segment']> .33 & DataFrame ['Segment'] <.66] Für die Antwort ist Edchum's klar und prägnant! – ysearka

Antwort

1

Wickeln Sie die Bedingungen in Klammern:

DataFrame[(DataFrame['segment'] < .33) & (DataFrame['segment'] < .66)] 

Der & Operator hat eine höhere Priorität als <: https://docs.python.org/2/reference/expressions.html#operator-precedence

auch typischerweise eine die Daten in verschiedene Splits spaltet nach was auch immer Kriterien, die Sie sich wünschen: http://scikit-learn.org/stable/modules/cross_validation.html#cross-validation und Sie Iteriere über die verschiedenen Splits, um die Robustheit deines Modells zu testen. Es ist nicht so nützlich, dass IMO einen festen Validierungssatz hat, denn woher wissen Sie, wie repräsentativ dieser Validierungssatz ist?

+0

Danke. Würdest du zufällig wissen, ob eine dreiseitige Teilung mit cross_validation.train_test_split() gemacht werden kann? – zadrozny

+0

Warum benötigen Sie einen Validierungssatz? Wäre es nicht besser, die Zug-Test-Splits zu generieren und die Perf-Werte über diese Splits zu mitteln? – EdChum

+0

Möglicherweise. Es ist eine Übung, die ich durcharbeite. Und ich würde gerne die Best Practice dafür wissen. – zadrozny

Verwandte Themen