In[13]:foriinrange(0,8123):
iflabel[i]=='e':
label[i]=1
else:
label[i]=0
接下来就可以设置Y数据了。
In[14]:Y=label
In[15]:Y=(Y)
接下来处理训练样本。
In[16]:data=(['样本编号','标记'],axis=1)
#训练样本需要将两列去掉(样本编号和标记)
In[17]:
Out[17]:(8124,22)
#训练样本的行列数量
In[18]:newdata=(data)
In[19]:newdata=newdata[0:-1,:]
#去掉最后一行
In[20]:
Out[20]:(8123,22)
#新的数据
特征属性的值同样是用字符表示的,而Python的决策树需要对数值进行处理。所以接下来使用下面的编码将字符直接转化成ASCII编码的整数。表3-6中的最后一列是通常的字符,前两列分别是这个字符的十进制编码和十六进制编码。
表3-6
使用下面的代码将字符转化成它对应的整数。如g转化为103,O转化为79等。这是一个循环程序,其中的ord( )函数负责转化功能。
In[21]:foriinrange(0,8123):
forjinrange(0,22):
newdata[i,j]=ord(newdata[i,j])
新的训练数据为
In[22]:X=newdata
接下来就可以构造决策树并用于分类了,输出的是描述所生成的决策树的参数。
In[23]:clf=()
In[24]:(X,Y)
Out[24]:
DecisionTreeClassifier(class_weight=None,criterion='gini',
max_depth=None,
max_features=None,max_leaf_nodes=None,
min_impurity_split=1e-07,min_samples_leaf=1,
min_samples_split=2,min_weight_fraction_leaf=0.0,
presort=False,random_state=None,splitter='best')
使用决策树用于新数据的分类,可以看到对下列4个新的蘑菇数据进行分类后,输出结果表明其中有3种是可食用的,1种是有毒的。
In[25]:test=([[…],[…],[…],[…]])