iris数据_Python数据分析实战,尾鸢花数据集数据分析

本节所使用的尾鸢花数据集是Python中自带的数据集,常用于机器学习分类算法模型,其中sepal_length_cm、sepal_width_cm、petal_length_cm、petal_width_cm、class字段代表的含义分别是花萼长度、花萼宽度、花瓣长度、花瓣宽度、尾鸢花的类别。

一、数据来源

from pandas import Series,DataFrameimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport matplotlib as mplimport seaborn as sns  #导入seaborn绘图库%matplotlib inline
iris_data = pd.read_csv(open('D:python数据分析数据iris-data.csv'))iris_data.head()
5d02fe63a2392ea4803403082e3a5b20.png

二、问题探索

通过数据可视化和分析,按照尾鸢花的特征分出尾鸢花的类别。

三、数据清洗

iris_data.shape

(150, 5)

共有150条数据,5列。

iris_data.describe()
8f56b86f9f5d25e136f914b7bf1ec706.png

由描述统计可以看出,数据没有缺失值。

iris_data['class'].unique() #查看唯一值
array(['Iris-setosa', 'Iris-setossa', 'Iris-versicolor', 'versicolor','Iris-virginica'], dtype=object)
iris_data.ix[iris_data['class'] == 'versicolor', 'class'] = 'Iris-versicolor'iris_data.ix[iris_data['class'] == 'Iris-setossa', 'class'] = 'Iris-setosa'iris_data['class'].unique() #查看唯一值
array(['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'], dtype=object)
sns.pairplot(iris_data, hue='class')
f4a6faa1717429def2262eb839db0b4c.png

利用seaborn绘制散点图矩阵,通过第一列可看出,有几个Iris-versicolor样本中的sepal_length_cm值偏移了大部分的点,通过第二行可看出,一个Iris-setosa样本的sepal_width_cm值偏离了大部分点。

iris_data.ix[iris_data['class'] == 'Iris-setosa', 'sepal_width_cm'].hist()
7cc589765b2e7fbfbc22a627ac66f19f.png

对通过Iris-setosa的花萼宽度绘制直方图也能观测出异常。

过滤小于2.5cm的数据后再做直方图。

iris_data = iris_data.loc[(iris_data['class'] != 'Iris-setosa') | (iris_data['sepal_width_cm'] >= 2.5)]iris_data.loc[iris_data['class'] == 'Iris-setosa', 'sepal_width_cm'].hist()
9e681d384f2d2a1b98d6146ea78162ca.png

通过索引选取Iris-versicolor样本中sepal_length值小于0.1的数据,选取异常数据。

iris_data.loc[(iris_data['class'] == 'Iris-versicolor') &(iris_data['sepal_length_cm'] < 1.0)]
49a75fc2793ccda41fba3c92faef1845.png
iris_data.loc[(iris_data['class'] == 'Iris-versicolor') &(iris_data['sepal_length_cm'] 

发现花瓣宽度有5条缺失值,由于3种分类数据样本均衡,直接将缺失值删除处理。

iris_data.isnull().sum()
254977d853adfb7a7326a0dd2d8992bb.png

发现花瓣宽度有5条缺失值。

iris_data[iris_data['petal_width_cm'].isnull()] #处理缺失值
28cee7ed8d2c428b4026842e4c29b6e3.png
iris_data.dropna(inplace=True)
iris_data.to_csv('D:python数据分析数据iris-clean-data.csv', index=False) #保存清洗后的数据
iris_data = pd.read_csv(open('D:python数据分析数据iris-clean-data.csv'))iris_data.head()
2cf2a3f4cbcb13febac0c7d8a4c1ac4d.png
iris_data.shape

(144, 5)

数据清洗后,有144条数据,5列。

四、数据探索

sns.pairplot(iris_data, hue='class')
00ddf8d73021bdf18dc6bc75dcfd387d.png

绘制散点矩阵图可以发现,大部分情况下数据接近正态分布,而且Iris-setosa与其他两种花是线性可分的,其他两种花型可能需要非线性算法进行分类。

iris_data.boxplot(column='petal_length_cm', by='class',grid=False,figsize=(6,6))
966f6249d6b6ff316f3829b890ec516a.png

通过petal_length_cm(花瓣长度)可以轻松区分Iris-setosa与其他两种花。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值