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
iris_data=pd.read_csv('D:\iris\iris.txt')#读取数据
#数据是以逗号为分隔符的,但是这个数据没有列的字,所以先给每个列取个名字,直接使用数据说明中的描述
iris_data .columns=['sepal_lengh_cm','sepal_width_cm','petal_length_cm','petal_width_cm','class']
print(iris_data.head())#查看前5行数据
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=iris.feature_names#获取类别名字
print(labels)
print(attributes )
print(target )
三.iris数据集的基本操作
import pandas as pd
iris_data=pd.read_csv('D:\iris\iris.txt')
iris_data .columns=['sepal_lengh_cm','sepal_width_cm','petal_length_cm','petal_width_cm','class']
# print(iris_data.head())# iris_data.head(5) #可以查看一下前5行数据,检查是否读取正确
iris_data['class'] = iris_data['class'].apply(lambda x: x.split('-')[1]) #最后类别一列,感觉前面的'Iris-'有点多余即把class这一列的数据按'-'进行切分取切分后的第二个数据,为了好看一点点
print(iris_data.describe())#使用describe()可以很方便的查看数据的大致信息,可以看到数据是没有缺失值的,总共有145条,每一列的最大值、最小值、平均值、分位数都可以查看。
程序运行结果:
image.png
参考:
机器学习案例——鸢尾花数据集分析