首页 人工智能

第三节 识别毒蘑菇

字体:16+-

Python的scikit-learn(简称sklearn)模块可以非常好地支持决策树分类,尽管它使用的是更加复杂的决策树算法,但依然是在上一节讲述的原理基础上的优化算法。本节将使用scikit-learn的决策树分类来识别“蘑菇数据”中的毒蘑菇。

首先介绍本案例使用的数据。原始数据来源于加州大学欧文分校用于机器学习的数据库(UCI数据库),本书使用的是经过必要处理的数据,此数据可从教材资源平台下载。

接下来在命令行界面安装scikit-learn。

pip install -u scikit-learn

安装scikit-learn之前需要确保模块numpy和scipy已经安装,否则可以使用pip install安装。

pip install -u numpy

pip install -u scipy

进入Python之后,使用如下命令调用scikit-learn的决策树方法。

from sklearn import tree

模块scikit-learn的决策树是基于DecisionTreeClassifier对象,它能够解决二分类问题(如蘑菇是否可食用),也可以解决多分类问题。在使用中,对输入训练数据的维度要求如下。

输入X:样本数量×特征属性数量;

输入Y:样本类别标签,与X要一一对应。

下面先用一个简单的例子来熟悉使用方法。对四个点X=[[0,0],[0,1],[1,0],[1,1]]使用决策树进行分类,四个点分别属于两个类别0和1,它们对应的类别标签是Y=[0,0,1,1]。这可以通过如下简单代码实现。

In[1]:from sklearn import tree

X=[[0,0],[0,1],[1,0],[1,1]]

Y=[0,0,1,1]

clf=tree.DecisionTreeClassifier()

clf=clf.fit(X,Y)

clf命令用来构造决策树,通过clf.fit(X,Y)实现了决策树的构建,此时clf已经是能够进行分类的决策树了,可以用它来进行新数据的分类。例如,输出[[0.3,0],[0.8,1],[1.2,1]]的类别,代码如下。

In[2]:test=[[0.3,0],[0.8,1],[1.2,1]]