5.散点图矩阵 pd.plotting.scatter_matrix
pd.plotting.scatter_matrix(iris_dataframe, c=y_train, figsize=(15,15), marker=‘0’, hist_kwds={‘bins’:50},s=60,alpha=.8, cmap=mglearn.cm3)
结果:
- pd.scatter_matrix若不可用。
用pd.plotting.scatter_matrix替换掉pd.scatter_matrix即可。 - 第一个参数 dataframe:iris_dataframe 按行取数据
第二个参数 c=c=y_train 颜色,用不同着色度区分不同种类
三:figsize=(15,15) 图像区域大小,英寸为单位
四:marker=‘0’ 点的形状,0是圆,1是¥
五: hist_kwds={‘bins’:50} 对角线上直方图的参数元组
六:s=60 描出点的大小
七:alpha=.8 图像透明度,一般取(0,1]
八:cmap=mglearn.cm3 mylearn实用函数库,主要对图进行一些美化等私有功能,可见https://github.com/YifengChu/introduction_to_ml_with_python
(代码来自《python机器学习基础教程》)
Q:
如何理解给出的图?如何分析关联性、变量分布?
A: 这张图分为两部分:对角线部分和非对角线部分。
对角线部分: 核密度估计图(Kernel Density Estimation),就是用来看某 一个 变量分布情况,横轴对应着该变量的值,纵轴对应着该变量的密度(可以理解为出现频次)。
非对角线部分:两个 变量之间分布的关联散点图。将任意两个变量进行配对,以其中一个为横坐标,另一个为纵坐标,将所有的数据点绘制在图上,用来衡量两个变量的关联度(Correlation)。关于如何分析关联度,可以参考 Wiki:correlation and dependence16。
对这个问题,你还可以参考论坛中的这个帖子:从散列图看数据相关性。
你把图画出来以后,你会看到比如上面的散点图,那么比如说数据的分布可能是像一条线那就是线性的这种。就是你可以充分联想一下它和你见过的哪些函数曲线会类似。
可以使用相关系数,量化方式查看相关性
In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: df = pd.DataFrame(np.array([[1, 2, 3], [100, 9, 6], [0, 78, 9]]).T, columns=[‘A’, ‘B’, ‘C’])
In [4]: df.corr()
Out[4]: A B C
A 1.000000 -0.879722 0.105453
B -0.879722 1.000000 -0.565606
C 0.105453 -0.565606 1.000000
相关性越高,证明一个特征可有另一个特征得到,所以两个特征中可以适当舍去一个
对角线上的是概率密度分布图(轴上的坐标不适用)
其它都是散点图(轴上的坐标适用)
x=y表示两者不相关
来自 https://blog.****.net/zhuiqiuuuu/article/details/82721962