无法理解决策树参数的含义

时间:2014-11-09 08:54:02

标签: python scikit-learn

我有3个标签(男性,女性,na),表示如下:

import numpy as np
from sklearn import tree

labels = [0,1,2]

每个标签由3个特征(身高,体重和年龄)定义为训练数据:

男性培训数据:

male_height = np.array([111,121,137,143,157])
male_weight = np.array([60,70,88,99,75])
male_age = np.array([41,32,73,54,35])

males = np.vstack([male_height,male_weight,male_age]).T

女性训练数据:

female_height = np.array([91,121,135,98,90])
female_weight = np.array([32,67,98,86,56])
female_age = np.array([51,35,33,67,61])

females = np.vstack([female_height,female_weight,female_age]).T

培训无法提供的数据:

na_height = np.array([96,127,145,99,91])
na_weight = np.array([42,97,78,76,86])
na_age = np.array([56,35,49,64,66])

nas = np.vstack([na_height,na_weight,na_age]).T

因此,完整的培训数据是:

trainingData = np.vstack([males,females,nas])

完整标签是:

labels =  np.repeat(labels,5)

我必须制定决策树规则,所以我按如下方式拟合:

clf = tree.DecisionTreeClassifier()
clf = clf.fit(trainingData, labels)

我制作的树在这里: enter image description here 但是,我无法理解这棵树的意思。 有人可以帮助我学习图像中显示的以下含义,以及我的示例数据集:

samples, value, gini, X[0], X[1], X[2]

1 个答案:

答案 0 :(得分:2)

树的每个级别,算法都选择了一个特定的功能来进行分区。选择此选项可根据类别进行最佳数据分割。因此,选择了第一个分割高度,因此'X [0] <= 105'。 'samples'显示数据的分割,因此左边是6个样本(所有高度<= 105的样本)和右边的9个样本(所有那些高度> 105的样本) “价值”我认为显示了分类。它始终位于叶节点上。例如,value = [0,1,0]表示样本将被归类为女性 'gini'我不确定如何不查看这个特定决策树实现的细节