【问题标题】:Estimate joint distribution in Python and sample given response variable估计 Python 中的联合分布并采样给定的响应变量
【发布时间】:2013-11-17 21:30:33
【问题描述】:

我有一个来自函数Y = f(X) 的样本序列,其中有d 随机变量、X_1X_2 ... X_d 和一个响应变量Y,其设置为@987654327 @ as x_1, x_2, ... x_d 最后是 Y as y(Y 是实值)。我将这些样本存储在维度为(n x d) 的矩阵中,并将响应存储在向量(d x 1) 中。

我想在 Python 中计算联合分布,以便在收到新样本后,我可以轻松地更新分布。

最重要的是,我希望能够从我自己以Y 为条件的计算分布中采样X 设置,即——选择一个所需的值Y = y 并从一个可能的条件加权联合分布中选择考虑到Y = y 的选择,X 的一组设置。

有些变量是分类变量和序数变量,但我可以将它们离散化为整数(即​​ X_i 在 {'red', 'blue', 'green'} => {1, 2, 3 }) 如果需要的话。

对于小的d 来说,做到这一点很容易,但更高的级别变得更加困难。 Python 中的此工作流程存在哪些解决方案或框架(如果有)?也许用 numpy 自己制作并不是那么糟糕?示例代码?我的统计知识非常非常少,但我在 Python 方面相当扎实。

【问题讨论】:

    标签: python numpy distribution probability


    【解决方案1】:

    一般来说,这类问题属于机器学习领域,你可能想看看一个不错的python包是scikit-learn。 但是,如果您只需要采样,那么更简单的结构就可以了:

    1. 保留所有 (x,y) 对的列表,按 y 排序。 rbtree 在这里很方便。

    2. 当您需要在某个值 y=y0 处对 (x,y) 对进行采样时,请在该列表中搜索该值 y0,然后从该位置返回一组对。

    【讨论】:

    • 好的,所以是的,我可以通过它们对应的Y = y 值对X = x 值进行排序,然后在所需Y = a 周围的邻域中选择X = x 的子集。然后呢?我将如何获取这些“好”样本并生成新样本X = x,以反映所选“好”X 的分布?
    猜你喜欢
    • 2021-07-30
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    相关资源
    最近更新 更多