Ich habe einen Pandas DataFrame, der String- und Float-Spalten enthält, die in symmetrische Slices aufgeteilt werden müssen, um eine Sklearn-Pipeline zu trainieren.StratifiedKold über heterogenen Datenrahmen
Idealerweise würde ich StratifiedKFold über den Datenrahmen verwenden, um kleinere Datenblöcke zu erhalten, die überprüft werden sollen. Aber es beschwert sich, dass ich unorderable Typen haben, wie folgt aus:
import pandas as pd
from sklearn.cross_validation import StratifiedKFold
dataset = pd.DataFrame(
[
{'title': 'Dábale arroz a la zorra el abad', 'size':1.2, 'target': 1},
{'title': 'Ana lleva al oso la avellana', 'size':1.0, 'target': 1},
{'title': 'No te enrollé yornetón', 'size':1.4, 'target': 0},
{'title': 'Acá sólo tito lo saca', 'size':1.4, 'target': 0},
])
skfs = StratifiedKFold(dataset, n_folds=2)
>>> TypeError: unorderable types: str() > float()
Es gibt Möglichkeiten, Falten Indizes zu erhalten und über die Datenrahmen tun schneiden, aber ich glaube nicht, dass garantiert, dass meine Klassen ausgeglichen werden werden.
Was ist die beste Methode zum Teilen meines Dataframe?
Veraltet seit Version 0.18: Dieses Modul wird in 0,20 entfernt. Verwenden Sie stattdessen sklearn.model_selection.StratiifiedKFold. – Matt