![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9hNENBY3JTUWw5ZmliUG1xbWZ6YTl1OW5WdHZzZTFCYWg0amsxS3o5Q2FwdXJzMGNtdmQ2MlBhajc0Q0p1YThDdm1GaEFORXVPQXRiU0hpYUxvZ0VXUk5RLzY0MD93eF9mbXQ9cG5n?x-oss-
process=image/format,png)
写在前面
在写这篇文章之前,首先安利下jupyter,简直是神作,既可以用来写文章,又可以用来写代码,文章和代码并存,简直就是写代码/文章/教程的利器。
安装很简单: pip install jupyter
使用很简单: 当前面目录下 shift+右键
呼出 在此处打开命令窗口
,输入 jupyter notebook
召唤神龙。
上面这段文字在jupyter中是这样的(markdown格式):
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9hNENBY3JTUWw5Y3A1NVlJenNxaDhueExCVUFIcjN6VVE4WWJlQ0Q3UDdJY3Rzb0g5VE5pYWR0dHo4MGs5NjJlYkRnYWZWcmljYWljaWJLSThmT1JXUlY1RmcvNjQw?x-oss-
process=image/format,png)
本文介绍
基于iris数据集进行数据分析。
iris数据集是常用的分类实验数据集,由Fisher,1936收集整理。iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。(来自百度百科)
数据预处理
首先使用padas相关的库进行数据读取,处理和预分析。
pandas的可视化user guide参见:
https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html
首先读取信息,并查看数据的基本信息:可以看到数据的字段,数量,数据类型和大小。
%matplotlib notebook
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
iris = pd.read_csv('iris.data.csv')
iris.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
Sepal.Length 150 non-null float64
Sepal.Width 150 non-null float64
Petal.Length 150 non-null float64
Petal.Width 150 non-null float64
type 150 non-null object
dtypes: float64(4), object(1)
memory usage: 5.9+ KB
[/code]
```code
# 前5个数据
iris.head()
Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | type |
---|---|---|---|---|
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 |
# 数据描述
iris.describe()
Sepal.Length | Sepal.Width | Petal.Length | Petal.Width |
---|---|---|---|
count | 150.000000 | 150.000000 | 150.000000 |
mean | 5.843333 | 3.054000 | 3.758667 |
std | 0.828066 | 0.433594 | 1.764420 |
min | 4.300000 | 2.000000 | 1.000000 |
25% | 5.100000 | 2.800000 | 1.600000 |
50% | 5.800000 | 3.000000 | 4.350000 |
75% | 6.400000 | 3.300000 | 5.100000 |
max | 7.900000 | 4.400000 | 6.900000 |
箱线图描述了数据的分布情况,包括:上下界,上下四分位数和中位数,可以简单的查看数据的分布情况。
比如:上下四分位数相隔较远的话,一般可以很容易分为2类。
在《深入浅出统计分析》一书中,一个平均年龄17岁的游泳班,可能是父母带着婴儿的早教班,这种情况在箱线图上就能够清楚的反映出来。
# 箱线图
iris.plot(kind='box', subplots=True, lay