我一直在尝试将我的数据集随机分成测试集和训练集,然后在5个深度的决策树上进行训练并绘制决策树。
另外,我不允许用熊猫做这种事。
我想做的是:
import numpy
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
from sklearn.model_selection import train_test_split
filename = 'diabetes.csv'
raw_data = open(filename, 'rt')
data = numpy.loadtxt(raw_data, delimiter=",", skiprows=1)
print(data.shape)
X = data[:,0:8] #identify columns as data sets
Y = data[:, 9] #identfy last column as target
print(X)
print(Y)
X_train, X_test, Y_train, Y_test = train_test_split(
X, Y, test_size=0.25)
treeClassifier = DecisionTreeClassifier(max_depth=5)
treeClassifier.fit(X_train, Y_train)
with open("treeClassifier.txt", "w") as f:
f = tree.export_graphviz(treeClassifier, out_file=f)
我的输出是:
^{pr2}$我想要的是一个结果树的例子:
我遇到的问题是,在我的树中,我没有得到'class=0\class=1'属性。我想问题可能出在Y = data[:, 9]
部分,第9列对它是0还是1进行了分类——这是class属性,但我看不到任何方法来更改它以使它出现在树中;也许是tree.export_graphviz
函数中的某个东西?我缺少参数吗?任何帮助都将不胜感激。
如果你更换
与
^{pr2}$你应该是好人。在
例如
为了使它看起来更像您所引用的示例,可以使用
相关问题 更多 >
编程相关推荐