Iris数据集在模式识别研究领域应该是最知名的数据集了,有很多文章都用到这个数据集。这个数据集里一共包括150行记录,其中前四列为花萼长度,花萼宽度,花瓣长度,花瓣宽度等4个用于识别鸢尾花的属性,第5列为鸢尾花的类别(包括Setosa,Versicolour,Virginica三类)。也即通过判定花萼长度,花萼宽度,花瓣长度,花瓣宽度的尺寸大小来识别鸢尾花的类别。
这个数据集可以从UCI数据集上直接下载,具体地址为:http://archive.ics.uci.edu/ml/datasets/Iris。打开页面后点击Data folder就可以下载到本地磁盘上,默认格式为逗号分隔的文本文件。也可以直接从sklearn包里datasets里导入,语法为:from sklearn.datasets import load_iris。
一、如果从本地磁盘上读入该数据集,可以采用pandas包里的read_excel或者read_csv方法,也可以利用python里面的csv包来处理。
具体如下:
import pandas as pd
data=pd.read_csv('iris.data') #iris.data数据与程序文件存放在同一目录下
print data.head(5) #可以查看一下前5行数据,检查是否读取正确
attributes=data[['sl','sw','pl','pw']] #前四列属性简化为sl,sw,pl,pw
types=data['type'] #第5列属性为鸢尾花的类别
sl sw pl pw
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2
5 5.4 3.9 1.7 0.4
6 4.6 3.4 1.4 0.3
7 5.0 3.4 1.5 0.2
如果要读取单列数据,就采用data['sl']或者data['pl'],加入列属性值就可以。
二、如果从数据包里导入,直接利用sklearn包datasets模块导入 import load_iris。如下:
from sklearn.datasets import load_iris
iris=load_iris()
attributes=iris.data #获取属性数据
target=iris.target #获取类别数据,这里注意的是已经经过了处理,target里0、1、2分别代表三种类别
labels=irs.feature_names #获取列属性值
如下打印出来的属性列数据:
[[ 5.1 3.5 1.4 0.2]
[ 4.9 3. 1.4 0.2]
[ 4.7 3.2 1.3 0.2]
...,
[ 6.5 3. 5.2 2. ]
[ 6.2 3.4 5.4 2.3]
[ 5.9 3. 5.1 1.8]]