Versuch, einen Entscheidungsbaum mit Kreuzvalidierung mit sklearn und panads zu erstellen.Kreuzvalidierung + Entscheidungsbäume in sklearn
Meine Frage ist in dem Code unten, die Kreuzvalidierung teilt die Daten, die ich dann für Training und Tests verwenden. Ich werde versuchen, die beste Tiefe des Baumes zu finden, indem ich ihn n mal mit verschiedenen maximalen Tiefen neu erstelle. Bei Verwendung der Kreuzvalidierung sollte ich stattdessen k falten CV verwenden und wenn ja, wie würde ich das innerhalb des Codes verwenden, den ich habe?
import numpy as np
import pandas as pd
from sklearn import tree
from sklearn import cross_validation
features = ["fLength", "fWidth", "fSize", "fConc", "fConc1", "fAsym", "fM3Long", "fM3Trans", "fAlpha", "fDist", "class"]
df = pd.read_csv('magic04.data',header=None,names=features)
df['class'] = df['class'].map({'g':0,'h':1})
x = df[features[:-1]]
y = df['class']
x_train,x_test,y_train,y_test = cross_validation.train_test_split(x,y,test_size=0.4,random_state=0)
depth = []
for i in range(3,20):
clf = tree.DecisionTreeClassifier(max_depth=i)
clf = clf.fit(x_train,y_train)
depth.append((i,clf.score(x_test,y_test)))
print depth
Hier ist ein Link zu den Daten, die ich benutze, falls das jemand hilft. https://archive.ics.uci.edu/ml/datasets/MAGIC+Gamma+Telescope
Dies war genau das, was ich suchte; danke – razeal113
Gut zu hören. Kannst du die Antwort akzeptieren? – Dimosthenis
+1 für die Beantwortung der gestellten Frage und auch vorschlagen Gitter Suche, die ist definitiv die bessere Praxis für diese Art von Problem – dsal1951