CDF是什么?简单对概率分布函数进行一个描述,在概率论中要研究一个随机变量ξ取值小于某一数值x的概率,这概率是x的函数,称这种函数为随机变量ξ的分布函数。
F
(
x
)
=
P
(
X
<
x
)
,
F
(
+
∞
)
=
1
,
F
(
−
∞
)
=
0
F(x)=P(X<x),F(+\infin)=1,F(-\infin)=0
F(x)=P(X<x),F(+∞)=1,F(−∞)=0
CDF对机器学习有什么用?可以非常直观地对预测误差进行分析,可以判断出当误差为某个值时的具体概率是多少,以该图像指标为基础为后续的优化和改进做铺垫。
现在有一个样本序列 l i s t = [ x 1 , x 2 , . . . , x n ] list=[x_1,x_2,...,x_n] list=[x1,x2,...,xn],要用Python将其分布函数绘制出来,实现如下:
import matplotlib.pyplot as plt
import numpy as np
已知样本序列ds,是以list[...]的形式存在的,首先对ds进行排序
ds_sort = sorted(ds)
last, i = min(ds_sort), 0
while i < len(ds_sort):
plt.plot([last, ds_sort[i]], [i/len(ds_sort), i/len(ds_sort)], c='k', lw=2.5)
if i < len(ds_sort):
last = ds_sort[i]
i += 1
plt.grid()
plt.show()
最终绘制出来的图像如下:
直观分析,x小于等于20的概率大约是0.95,x小于等于40的概率大约是1。根据这个分布,可以说几乎所有样本分布在横坐标前40的区间内。
在这个例子中,我用的list本身是在机器学习中预测值与真实值之间的误差,这个分布可以直观地对预测误差进行分析,可以判断出误差为某个值时的具体概率是多少,以便后续的优化和改进。
参考资料: