相关文章推荐
冷静的山寨机  ·  古剑奇谭3图文攻略33:学会如何制作小型禽圈 ...·  7 月前    · 
纯真的保温杯  ·  靠肯德基翻盘,1年狂赚600亿!她是中国餐饮 ...·  1 年前    · 
无聊的松球  ·  琼明神女录第二部作者终于发了_哔哩哔哩_bi ...·  1 年前    · 
爱旅游的茴香  ·  十万级SUV性价比之选!斯威大虎EDi品质实 ...·  2 年前    · 
沉着的饼干  ·  信长之野望创造 ...·  2 年前    · 
Code  ›  用Pandas在Python中可视化机器学习数据开发者社区
大数据 机器学习 pandas 数据可视化
https://cloud.tencent.com/developer/article/1036591?areaId=106001
机灵的乌冬面
2 年前
Hans He
0 篇文章

用Pandas在Python中可视化机器学习数据

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
Hans He
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网

用Pandas在Python中可视化机器学习数据

作者头像
Hans He
发布 于 2018-02-05 14:54:37
4.6K 0
发布 于 2018-02-05 14:54:37
举报

为了从机器学习算法中获取最佳结果,你就必须要了解你的数据。

使用数据可视化可以更快的帮助你对数据有更深入的了解。

在这篇文章中,您将会发现如何在Python中使用Pandas来可视化您的机器学习数据。

让我们开始吧。

在Python使用Pandas可视化机器学习数据 由 Alex Cheek 拍摄,保留部分权利
在Python使用Pandas可视化机器学习数据 由 Alex Cheek 拍摄,保留部分权利

关于样本

本文中的每个样本都是完整且独立的,因此您可以直接将其复制到您自己的项目中使用。

这组 皮马印第安人数据集( Pima Indians dataset ) 将用于演示每个部分。该数据集记录了皮马印第安人的医疗记录,这些记录显示了每位患者是否在五年内患糖尿病。就其本身而论,这是一个分类问题。

这个数据集很适合用于示范,因为所有的输入都为纯数字,而所有的输出变量都为二进制(0或1)。

这些数据可以从 UCI机器学习库中 免费获得,并且下载后可以为每一个样本直接使用。

单变量图

在本节中,我们可以独立的看待每一个特征。

直方图

想要快速的得到每个特征的分布情况,那就去绘制直方图。

直方图将数据分为很多列并为你提供每一列的数值。根据整张图的形状,你可以很快知道这些特征是否呈高斯分布、偏斜分布、还是指数分布。它也可以帮助你剔除出可能的异常值

# 单变量直方图
import matplotlib.pyplot as plt
import pandas
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(url, names=names)
data.hist()
plt.show()

我们可以看到" age "," pedi "," test "可能呈指数分布。" mass "," pres "," plas "可能呈高斯或近高斯分布。这很有趣,因为许多机器学习技术把输入变量假定为高斯单变量分布。

单变量直方图
单变量直方图

密度图

使用密度图是另一种快速了解每个特征分布的方法。这些图像看起来就像是把一幅抽象出来的直方图的每一列顶点用一条平滑曲线链接起来一样。这就好比是用肉眼直接处理直方图一样。

# 单变量密度图
import matplotlib.pyplot as plt
import pandas
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(url, names=names)
data.plot(kind='density', subplots=True, layout=(3,3), sharex=False)
plt.show()

相比于直方图,我们可以更清晰的看到每个特征的分布。

单变量密度图
单变量密度图

箱线图

使用 箱线图(Box and Whisker Plots) 或箱形图是另一种获取特征分布情况的好用的方法。

箱线图中和了每个特征的分布,在中值(中间值)画了一条线,并且在第25%和75%之间(中间的50%的数据)绘制了方框。短线体现了数据的分布,短线以外的点显示了候选异常值(这些值通常比分布在中间50%的值要大1.5倍)。

# 箱线图
import matplotlib.pyplot as plt
import pandas
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(url, names=names)
data.plot(kind='box', subplots=True, layout=(3,3), sharex=False, sharey=False)
plt.show()

我们可以看到,特征的分布是完全不同的。一些像" age "," test "," skin "似乎倾向于较小的值。

单变量箱线图
单变量箱线图

多变量情况

本部分展示多个变量之间共同作用的图表示例。

相关矩阵图

相关性 表明两个变量之间是如何变化的。如果两个变量具有相同的变化趋势,那么它们是正相关的。如果呈相反的趋势(一个上升,一个下降),那么它们是负相关的。

您可以计算每对特征之间的相关性。这被称为相关矩阵。然后,您可以绘制相关矩阵,并了解哪些变量具有高相关性。

这很有用,因为一些像线性回归和逻辑回归的机器学习算法可能在输入变量高度相关的情况下表现不佳。

# 相关矩阵图
import matplotlib.pyplot as plt
import pandas
import numpy
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(url, names=names)
correlations = data.corr()
# plot correlation matrix
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(correlations, vmin=-1, vmax=1)
fig.colorbar(cax)
ticks = numpy.arange(0,9,1)
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.set_xticklabels(names)
ax.set_yticklabels(names)
plt.show()

我们可以看到矩阵是对称的,即矩阵的左下角与右上角相同。这很有用,因为我们可以使用相同数据在同一幅图中看到两个不同的视图。我们还可以看到每个变量在从左上到右下的对角线上完全正相关(如您所期望的那样)。

相关矩阵图
相关矩阵图

散点图矩阵

散点图将两个变量之间的关系显示为二维平面上的点,每条坐标轴代表一个变量特征。您可以为数据中的每对变量特征创建一个散点图。然后将所有的散点图绘制在一起,这就是散点图矩阵。

散点图对于发现变量之间的结构关系非常有用,例如两个变量之间是否呈线性关系。具有结构化关系的特征可能是相关的,也可能是将要从数据集中删除的候选者。

# 散点图矩阵
import matplotlib.pyplot as plt
import pandas
from pandas.tools.plotting import scatter_matrix
 
推荐文章
冷静的山寨机  ·  古剑奇谭3图文攻略33:学会如何制作小型禽圈-百度经验
7 月前
纯真的保温杯  ·  靠肯德基翻盘,1年狂赚600亿!她是中国餐饮“大姐大” - 21经济网
1 年前
无聊的松球  ·  琼明神女录第二部作者终于发了_哔哩哔哩_bilibili
1 年前
爱旅游的茴香  ·  十万级SUV性价比之选!斯威大虎EDi品质实力出众-爱卡汽车爱咖号
2 年前
沉着的饼干  ·  信长之野望创造 战国立志传汉化版下载-信长之野望创造战国立志传汉化补丁-k73游戏之家
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号