python的seaborn.kdeplot有什么用

Python034

python的seaborn.kdeplot有什么用,第1张

kde(kernel density estimation)是核密度估计。核的作用是根据离散采样,估计连续密度分布。

如果原始采样是《阴阳师》里的式神,那么kernel(核函数)就相当于御魂。

假设现在有一系列离散变量X = [4, 5, 5, 6, 12, 14, 15, 15, 16, 17],可见5和15的概率密度应该要高一些,但具体有多高呢?有没有三四层楼那么高,有没有华莱士高?如果要估计的是没有出现过的3呢?这就要自己判断了。

核函数就是给空间的每个离散点都套上一个连续分布。最简单的核函数是Parzen窗,类似一个方波:

这时候单个离散点就可以变成区间,空间或者高维空间下的超立方,实质上是进行了升维。

设h=4,则3的概率密度为:

(只有4对应的核函数为1,其他皆为0)

kernel是非负实值对称可积函数,表示为K,且一本满足:

这样才能保证cdf仍为1。

实际上应用最多的是高斯核函数(Gaussian Kernel),也就是标准正态分布。所谓核密度估计就是把所有离散点的核函数加起来,得到整体的概率密度分布。核密度估计在很多机器学习算法中都有应用,比如K近邻、K平均等。

在支持向量机里,也有“核”的概念,同样也是给数据升维,最常用的还是高斯核函数,也叫径向基函数(Radial Basis Funtion)。

seaborn.kdeplot内置了多种kerne,总有一款适合你。

Series和DataFrame都有一个用于生成图表的plot方法,该方法是matplotlib中plt.plot()函数的一个简单包装,使得创建可视化图形变得容易。

plot方法默认为线形(kind='line');

使用kind='bar'(垂直柱状图)或kind='barh'(水平柱状图)可生成柱状图,Series和DataFrame的索引将用作X(bar)或Y(barh)刻度

使用kind='hist'可生成直方图(histogram),直方图是一种可以对值频率进行离散化的柱状图

使用kind='kde'生成KDE(Kernel Density Estimate)密度图

使用kind='pie'生成饼图

使用kind='scatter'生成散点图

使用kind = 'box'生成盒图

Series.plot方法的参数如下:

label:用于图例的标签

ax: 要在其上进行绘制的matplotlib subplot对象。如果没有设置,则使用当前matplotlib subplot

kind: 可以是’line’, ‘bar’, ‘barh’, ‘kde’

style: 将要传给matplotlib的风格字符串

logy: 在Y轴上使用对数标尺

use_index: 将对象的索引用作刻度标签

xticks: 用作X轴刻度的值

yticks: 用作Y轴刻度的值

xlim: X轴的界限

ylim: Y轴的界限

DataFrame还有一些用于对列进行灵活处理的选项,如下表:

subplots:将各个DataFrame列绘制到单独的subplot中

sharex:如果subplots=True,则共用同一个X轴,包括刻度和界限

sharey: 类似于sharex

figsize: 表示图像大小的元组

title: 表示图像标题的字符串

legend: 添加一个subplot图例(默认为True)

sort_columns: 以字母表顺序绘制各列,默认使用前列顺序