介绍
在这篇博客中,我们使用以下几个库来实现决策树算法
- scikit-learn机器学习库
scikit-learn最先是由David Cournapeau在2007年发起的一个Google Summer of Code项目,从那时起这个项目就已经拥有很多的贡献者了,该项目目前也是由一个志愿者团队在维护着。scikit-learn是python的一个开源机器学习模块,它建立在numpy,scipy和matplotlib模块之上。scikit-learn最大的特点就是,为用户提供各种机器学习算法接口,可以让用户简单、高效地进行数据挖掘和数据分析。
scikit-learn内包含了常用的机器学习数据集,比如做分类的iris和digit数据集,用于回归的经典数据集Boston house prices。scikit-learn载入的数据集是以类似于字典的形式存放的,该对象中包含了所有有关该数据的数据信息(甚至还有参考文献)。其中的数据值统一存放在.data的成员中。
- numpy
NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!
- pandas
Pandas是一个开源的Python数据分析库。Pandas把结构化数据分为了三类:
1)Series,1维序列,可视作为没有column名的、只有一个column的DataFrame;
2)DataFrame,同Spark SQL中的DataFrame一样,其概念来自于R语言,为多column并schema化的2维结构化数据,可视作为Series的容器(container);
3)Panel,为3维的结构化数据,可视作为DataFrame的容器;
- matplotlib
matplotlib是一个python的数据可视化模块,能够创建多数类型的图表,如条形图,散点图,条形图,饼图,堆叠图,3D 图和地图图表。
- seaborn
seaborn与matlotlib同出一源,只是把matplotlib进行了封装,让许多方法调用时变得更加简便。简单的操作就能够画出更加复杂的图像。由于seaborn是调用的matplotlib,在使用时,两个库可以进行相互操作。
导入库
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
from sklearn import tree
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.externals import joblib
数据集
鸢尾花数据集(iris_data)是原则20世纪30年代的经典数据集。它是用统计进行分类的鼻祖。
1)下面我们从scikit-learn接口导入数据集(第一行)
在导入数据集后我们打印前五行发现每个样本有五个参数,分别为花萼长度、花萼宽度、花瓣长度、花瓣宽度和所属类别(山鸢尾花、变色鸢尾花和维吉尼亚鸢尾花)。
iris=sns.load_dataset("iris")
print(iris.head())
sepal_length sepal_width petal_length petal_width speci