楼主: casey_c
3029 1

[程序分享] Scikit-Learn 库核密度估计 [推广有奖]

  • 0关注
  • 10粉丝

博士生

92%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.1003
学术水平
2 点
热心指数
15 点
信用等级
2 点
经验
11502 点
帖子
278
精华
0
在线时间
94 小时
注册时间
2016-11-22
最后登录
2022-5-2

楼主
casey_c 发表于 2017-7-14 10:30:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币


以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文

核密度估计(kernel density estimation)是非参数统计检验中的重要方法之一,常用于估计未知的密度函数。今天将向大家介绍在 Python 中如何利用 Scikit-Learn 库中的相关工具,对数据集的样本分布进行核密度估计。

导入可视化库:


  1. %matplotlib inline
  2. import matplotlib.pyplot as plt
  3. import seaborn as sns; sns.set()
  4. import numpy as np
复制代码


构建示例数据:



  1. def make_data(N, f=0.3, rseed=1):
  2.     rand = np.random.RandomState(rseed)
  3.     x = rand.randn(N)
  4.     x[int(f * N):] += 5
  5.     return x

  6. x = make_data(1000)
复制代码


可以看到,构建的数据为一维的随机数组,我们对其中后2/3的样本加上整数5。处理之后,其频率分布直方图如下所示:



  1. hist = plt.hist(x, bins=30, normed=True)
复制代码
1.jpg

根据频率分布直方图的性质,所有柱形对应的频率之和为1:


  1. density, bins, patches = hist
  2. widths = bins[1:] - bins[:-1]
  3. (density * widths).sum()
复制代码
1.0
频率分布直方图是非参数统计中的重要可视化方法,为了演示方便,我们构造一组规模相对较小的数据集:
  1. x = make_data(20)
  2. bins = np.linspace(-5, 10, 10)
复制代码
在 Python 中,我们可以自定义直方图中的分组。下面我们用两种不同的分组方式,绘制两幅频率分布直方图,并将数据集中每个样本的值标注在横轴刻度下方。其中,右图为将默认的分组边界向右平移0.6之后的频率直方图结果:
  1. fig, ax = plt.subplots(1, 2, figsize=(12, 4),
  2.                        sharex=True, sharey=True,
  3.                        subplot_kw={'xlim':(-4, 9),
  4.                                    'ylim':(-0.02, 0.3)})
  5. fig.subplots_adjust(wspace=0.05)
  6. for i, offset in enumerate([0.0, 0.6]):
  7.     ax[i].hist(x, bins=bins + offset, normed=True)
  8.     ax[i].plot(x, np.full_like(x, -0.01), '|k',
  9.                markeredgewidth=1)
复制代码
2.jpg

以上内容节选自 数析学院,原文内容较多,先搬运到这,后续有时间再补充,有需要的同学可以先直接到 数析学院 查看原文
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:scikit-learn 核密度估计 Learn Earn ear

沙发
casey_c 发表于 2017-7-18 11:33:02

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-11 21:27