想快速学会数据可视化?这里有一门4小时的Kaggle微课程

栏目: 数据库 · 发布时间: 5年前

内容简介:想要制作漂亮的可视化图表吗?Kaggle 平台上有一个数据可视化的微课程,总时长才 4 小时。快来学习吧!课程地址:

想要制作漂亮的可视化图表吗?Kaggle 平台上有一个数据可视化的微课程,总时长才 4 小时。快来学习吧!

课程地址: https://www.kaggle.com/learn/data-visualization-from-non-coder-to-coder

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

课程简介

该课程为免费课程,共包含 15 节课,时长 4 小时。主讲人 Alexis Cook 曾就读于杜克大学、密歇根大学和布朗大学,在多个在线学习平台(如 Udacity 和 DataCamp)教授数据科学。

这门课程使用的 数据可视化 工具是 Seaborn,所以学员需要稍微了解如何写 Python 代码。不过没有任何编程经验的人也可以通过该课程学会数据可视化,正如课程名称那样:Data Visualization: from Non-Coder to Coder,透过数据可视化见证编程的魅力。

该课程包含 15 节课,分为课程讲解和练习两类,每一堂讲解课后都有一节练习课,让学员及时巩固和应用所学知识。

课程涉及对数据可视化工具 Seaborn 的介绍,如何绘制折线图、柱状图、热图、散点图、分布图,如何选择图表类型和自定义样式,课程期末项目,以及如何举一反三为自己的项目创建 notebook。课程目录如下所示:

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

下面,我们将选取其中一节课——散点图(Scatter Plots)进行简单介绍。

如何创建高级散点图

点进去你会在左侧看到这节课的大致内容,如下图所示,「散点图」共包含五个部分:

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

btw,眼尖的读者会发现,下面还有一个 comments 版块。所以,该课程还是交互式的呢,你可以边学习边评论。

通过这节课,你将学习如何创建高级的散点图。

设置 notebook

首先,我们要设置编码环境。

输入:

<code>import pandas as pd</code><code>import matplotlib.pyplot as plt</code><code>%matplotlib inline</code><code>import seaborn as sns</code><code>print("Setup Complete")</code>

输出:

Setup Complete

加载和检查数据

我们将使用一个保险费用(合成)数据集,目的是了解为什么有些客户需要比其他人支付得更多。数据集地址: https://www.kaggle.com/mirichoi0218/insurance/home

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

输入:

<code># Path of the file to read</code><code>insurance_filepath = "../input/insurance.csv"</code><code># Read the file into a variable </code><code>insurance_datainsurance_data = pd.read_csv(insurance_filepath)</code>

打印前五行,以检查数据集是否正确加载。

输入:

insurance_data.head()

输出:

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

散点图

为了创建简单的散点图,我们使用 sns.scatterplot 命令并指定以下值:

水平 x 轴(x=insurance_data['bmi'])

垂直 y 轴(y=insurance_data['charges'])

输入:

sns.scatterplot(x=insurance_data['bmi'], y=insurance_data['charges'])

输出:

<matplotlib.axes._subplots.AxesSubplot at 0x7f4d146c3dd8>

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

上面的散点图表明身体质量指数(BMI)和保险费用是正相关的,BMI 指数更高的客户通常需要支付更多的保险费用。(这也不难理解,高 BMI 指数通常意味着更高的慢性病风险。)

如果要再次检查这种关系的强度,你可能需要添加一条回归线,或者最拟合数据的线。我们通过将该命令更改为 sns.regplot 来实现这一点。

输入:

sns.regplot(x=insurance_data['bmi'], y=insurance_data['charges'])

输出:

<code>/opt/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.</code><code> return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval</code><code><matplotlib.axes._subplots.AxesSubplot at 0x7f4d10de8748></code>

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

着色散点图

我们可以使用散点图展示三个变量之间的关系,实现方式就是给数据点着色。

例如,为了了解吸烟对 BMI 和保险费用之间关系的影响,我们可以给数据点 'smoker' 进行着色编码,然后将'bmi'、'charges'作为坐标轴。

输入:

sns.scatterplot(x=insurance_data['bmi'], y=insurance_data['charges'], hue=insurance_data['smoker'])

输出:

<matplotlib.axes._subplots.AxesSubplot at 0x7f4d10d0c6a0>

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

以上散点图展示了不抽烟的人随着 BMI 指数的增加保险费用会稍有增加,而抽烟的人的保险费用要增加得多得多。

要想进一步明确这一事实,我们可以使用 sns.lmplot 命令添加两个回归线,分别对应抽烟者和不抽烟者。(你会看到抽烟者的回归线更加陡峭。)

输入:

sns.lmplot(x="bmi", y="charges", hue="smoker", data=insurance_data)

输出:

<code>/opt/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.</code><code> return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval</code><code><seaborn.axisgrid.FacetGrid at 0x7f4d10c73240></code>

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

sns.lmplot 命令与其他命令有一些不同:

  • 这里没有用 x=insurance_data['bmi'] 来选择 insurance_data 中的'bmi'列,而是设置 x="bmi"来指定列的名称。

  • 类似地,y="charges" 和 hue="smoker"也包含列的名称。

  • 我们使用 data=insurance_data 来指定数据集。

最后,还有一个图要学。我们通常使用散点图显示两个连续变量(如"bmi"和 "charges")之间的关系。但是,我们可以调整散点图的设计,来侧重某一个类别变量(如"smoker")。我们将这种图表类型称作类别散点图(categorical scatter plot),可使用 sns.swarmplot 命令构建。

输入:

<code>sns.swarmplot(x=insurance_data['smoker'],</code><code> y=insurance_data['charges'])</code>

输出:

<matplotlib.axes._subplots.AxesSubplot at 0x7f4d10c50c88>

想快速学会数据可视化?这里有一门4小时的Kaggle微课程

除此之外,这个图向我们展示了:

  • 不抽烟的人比抽烟的人平均支付的保险费用更少;

  • 支付最多保险费用的客户是抽烟的人,而支付最少的客户是不抽烟的人。


以上所述就是小编给大家介绍的《想快速学会数据可视化?这里有一门4小时的Kaggle微课程》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

世界是数字的

世界是数字的

[美] Brian W. Kernighan / 李松峰、徐建刚 / 人民邮电出版社 / 2013-6 / 49.00

家用电器、汽车、飞机、相机、手机、GPS 导航仪,还有游戏机,虽然你看不见,但这些设备都有计算能力。手机通信网络、有线电视网络、空中交通管制系统、电力系统、银行和金融服务系统等基础设施背后无一不是计算机在支撑。如今的世界是数字的,而计算机和计算无处不在。这本书就是要告诉大家数字世界有关计算机的一切。本书没有高深莫测的专业术语,但它全面解释了当今计算和通信领域的工作方式,包括硬件、软件、互联网、通信......一起来看看 《世界是数字的》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具