【发布时间】:2016-05-07 22:12:03
【问题描述】:
尝试使用 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
【问题讨论】:
标签: machine-learning decision-tree cross-validation