#获得8123个标记
因为用来表示类别的“e”和“p”是英文字母,所以需要转化成1和0以便计算机使用,其中1表示可食用,0表示有毒。使用以下代码完成转化,这是一个循环程序。
In[13]:fe(0,8123):
iflabel[i]=='e':
label[i]=1
else:
label[i]=0
接下来就可以设置Y数据了。
In[14]:Y=label
In[15]:Y=Y。astype(Y)
接下来处理训练样本。
In[16]:data=data。drop(['样本编号','标记'],axis=1)
#训练样本需要将两列去掉(样本编号和标记)
In[17]:data。shape
Out[17]:(8124,22)
#训练样本的行列数量
Ia=np。array(data)
Ia=a[0:-1,:]
#去掉最后一行
Ia。shape
Out[20]:(8123,22)
#新的数据
特征属性的值同样是用字符表示的,而Python的决策树需要对数值进行处理。所以接下来使用下面的编码将字符直接转化成ASCII编码的整数。表3-6中的最后一列是通常的字符,前两列分别是这个字符的十进制编码和十六进制编码。
表3-6
使用下面的代码将字符转化成它对应的整数。如g转化为103,O转化为79等。这是一个循环程序,其中的ord()函数负责转化功能。
In[21]:fe(0,8123):
fe(0,22):
&a[i,j]=ord(a[i,j])
新的训练数据为
Ia
接下来就可以构造决策树并用于分类了,输出的是描述所生成的决策树的参数。
In[23]:clf=tree。DeTreeClassifier()
In[24]:clf。fit(X,Y)
Out[24]:
&reeClassifier(class_weight=erion='gini',
max_depth=None,
max_features=None,max_leaf_nodes=None,
min_impurity_split=1e-07,min_samples_leaf=1,
mi=2,mi_fra_leaf=0。0,
&=False,random_state=er='best')