sklearnとpanadsを使用したクロスバリデーションで決定木を作成しようとしています。クロスバリデーション+スケルトンの決定木
私の質問は以下のコードにあります。クロスバリデーションによってデータが分割され、トレーニングとテストの両方に使用されます。私は、さまざまな最大深度を設定してn回再作成して、ツリーの最深の深さを見つけようとします。クロスバリデーションの使用では、私は代わりにkフォールドCVを使用する必要があります。もしそうなら、私はどのようにコード内でそれを使用しますか?
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
ここには、誰かを助ける場合のデータへのリンクがあります。 https://archive.ics.uci.edu/ml/datasets/MAGIC+Gamma+Telescope
これは私が探していたものです。ありがとうございます – razeal113
それを聞いてよかったです。あなたは答えを受け入れることができますか? – Dimosthenis
質問に答えるための+1とグリッド検索の提案もあります。このタイプの問題の方がより良い方法です。 – dsal1951