Kaggle 教程系列:探索数据

  1. 云栖社区>
  2. 博客>
  3. 正文

Kaggle 教程系列:探索数据

黑冰中国 2018-09-01 01:13:00 浏览1001
展开阅读全文

在上一篇文章中,我们通过决策树模型,对机器学习有了初步的认识;但是在整个数据分析的生命周期中,建模并不是第一位的,当我们拿到数据后,首先要对数据进行观察、解读,从中发现我们所需要的特征变量,本文将简要介绍如何通过Pandas对数据进行观察与探索。

Pandas

就像我们前面提到的,任何机器学习、数据分析的第一步都是要先了解数据、解读数据, Pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。它纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

有了Pandas,我们能快速便捷地处理数据,你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

通常我们在使用中将pandas缩写为pd,而Numpy缩写为np

import pandas as pd
import numpy as np

Pandas中最重要的部分莫过于DataFrame了,有过数据库基础的读者可以将它视为一个Excel的Sheet或SQL数据表。

Pandas 提供了许多强大的方法供您进行数据操作。

例如,接下来我们将演示如何使用Pandas观察澳大利亚墨尔本的房价数据;Kaggle提供了一套爱荷华州的房价数据供您练习,您可以稍后在练习环境中回顾本文学到的知识。

示例数据路径在:../input/melbourne-housing-snapshot/melb_data.csv

我们通过下面的代码来加载数据:

# 将路径保存到变量,防止多处硬编码
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
# 从csv文件中读取数据,保存在名为 melbourne_data的DataFrame中
melbourne_data = pd.read_csv(melbourne_file_path) 
# 输出数据的统计信息,包含无缺数据量,最大值、最小值、均值、标准差,四分位数,下面将会详细介绍。
melbourne_data.describe()
img_1940932e6622e17e5d399db1cdde269d.png
统计输出

解释数据

describe输出了一个8行n列的数据表

count

count行统计了此列共有多少行没有缺失值,即:

某列具有缺失值的行 = 总行数 - count;

出现缺失值可能有很多原因,例如调查1室1厅的房屋时,不会询问是否有第二个卧室。

mean

平均值,即是算术平均值,反应此列特征的一般水平。

std

标准差,反应此列数据的离散程度,一个较大的标准差,代表大部分数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值。

min、25%、50%、75%、max

min max分别是最小值和最大值。

25%、50%、75%为四分位数,分位数是将总体的全部数据按大小顺序排列后,处于各等分位置的变量值。如果将全部数据分成相等的两部分,它就是中位数;如果分成四等分,就是四分位数。

  • 第一四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。

  • 第二四分位数 (Q2),又称“[中位数]”,等于该样本中所有数值由小到大排列后第50%的数字。

  • 第三四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。

  • 第三四分位数与第一四分位数的差距又称[四分位距](InterQuartile Range,IQR)。

通过四分位数,可以看出一个变量的分布情况是左偏、右偏或对称分布。

进入练习

点击下面的网址进入练习题,您可能先要注册并登录kaggle

https://www.kaggle.com/kernels/fork/1258954

本练习将测试您读取数据和对数据进行统计观察的能力,对有基础的读者来说,这可能很简单,但本教程是一个循序渐进的过程,后面将会有更多更深入的数据预处理、模型构建、模型改进的练习。

课程中使用了墨尔本的数据,为了保证练习效果,避免直接抄袭课件,您必须使用新的数据集,来自爱荷华州的房价数据。

在此练习中,你要学习使用Notebook编码环境,如果您不熟悉,可以观看一个90秒的介绍视频(有墙)

首先要将这段初始化代码运行一下,鼠标点进去按Shift+Enter,下方显示 Setup Complete,表示执行成功。

# Set up code checking
from learntools.core import binder
binder.bind(globals())
from learntools.machine_learning.ex2 import *
print("Setup Complete")
img_6e4bf95fc0757b19af32e379faef0991.png
Setup Complete

如果不执行这段代码,下面的代码将无法执行,例如:

img_837e71e8c9ea886fb5410882d6e59707.png
未初始化报错

第一步,加载数据

您需要完善下面的代码,然后按Shift+Enter执行代码,加载数据

import pandas as pd

# Path of the file to read
iowa_file_path = '../input/home-data-for-ml-course/train.csv'

# Fill in the line below to read the file into a variable home_data
home_data = pd.read_csv(_)

# Call line below with no argument to check that you've loaded the data correctly
step_1.check()

step_1.check()会对您的结果进行检查,如果填写正确,将会有绿色的Correct字样

img_a622ee83a3180da5e4ee6158064d560b.png
回答正确

当然,如果您不知道怎么做,可以取消下面这段二级提示代码的注释,运行它;其中第一级提示hint()为您讲解需要使用什么技术,第二级提示Solution给出了正确的源代码,如果您只是需要一点技术提示,请先看看hint()的提示是否能够唤起你的记忆。

# Lines below will give you a hint or solution code
# step_1.hint()
# step_1.solution()

例如:

# Lines below will give you a hint or solution code
step_1.hint()
step_1.solution()
img_604d649715db6b5cc9c750f7fd355d67.png
二级提示

最后,通过本文,我们了解到Pandas的冰山一角,并且掌握了打开kaggle练习题的正确姿势,为了避免被喷,以后的文章中不再对这部分重复讲解。

原文地址

https://www.kaggle.com/dansbecker/explore-your-data

网友评论

登录后评论
0/500
评论
黑冰中国
+ 关注