Python-sklearn机器学习的第一个样例(2)

接上一篇


Step 2:数据探索

数据探索是为了回答这几个问题: 数据集有什么缺陷或错误? 是否有异常数据? 是否需要对数据集进行修补或剔除? 首先,从把数据从csv中读入,保存在一个pandas DataFrame中:

In [1]:
import pandas as pd

iris_data = pd.read_csv('iris-data.csv')
iris_data.head()
Out[1]:
  sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm class
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa

非常幸运,数据是按格式保存的。

接下来首要的工作是找到缺失的数据,感谢研究者,已经把缺失数据用'NA'表示了。

当然,我们也可以使用以下方法,把缺失值用'NA'表示。

In [2]:
iris_data = pd.read_csv('iris-data.csv', na_values=['NA'])

下一步,我们通常要看看数据集的分布情况,尤其是异常值。

我们先来看看数据集的概要。

In [3]:
iris_data.describe()
Out[3]:
  sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm
count 150.000000 150.000000 150.000000 145.000000
mean 5.644627 3.054667 3.758667 1.236552
std 1.312781 0.433123 1.764420 0.755058
min 0.055000 2.000000 1.000000 0.100000
25% 5.100000 2.800000 1.600000 0.400000
50% 5.700000 3.000000 4.350000 1.300000
75% 6.400000 3.300000 5.100000 1.800000
max 7.900000 4.400000 6.900000 2.500000

可以看出有5条数据缺失了“花瓣宽度”数据。

除了使用表格,我们还经常用画图的方式探索数据,特别是表格太大的时候。

In [4]:
# This line tells the notebook to show plots inside of the notebook
%matplotlib inline

import matplotlib.pyplot as plt
import seaborn as sb

接下来创建一个散点图矩阵。散点图矩阵中,每一列的分布情况在对角线中表示,其他部分标识了每两列之间的关系。这是用来查找数据异常的有效工具。

我们可以使用plot包,对不同的种类着色,观察各个种类的趋势。

In [5]:
# We have to temporarily drop the rows with 'NA' values
# because the Seaborn plotting function does not know
# what to do with them
sb.pairplot(iris_data.dropna(), hue='class')
Out[5]: <seaborn.axisgrid.PairGrid at 0x615fb30>

通过散点图矩阵,我们可以发现以下几个问题:

  1. 原本应该只有三个种类的鸢尾花,但却出现了五个种类。意味着有编码错误。
  2. 有一些明显的异常值的测量可能是错误的:一个Iris-setosa种的sepal_width_cm字段,游离在其正常范围之外;几个Iris-versicolor种类的sepal_length_cm字段不知为何接近于零。
  3. 我们不得不放弃那些具有缺失值的行。 因此,我们需要考虑如何处理这些错误的数值,进入下一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值