- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想使用 python 将高斯混合模型拟合到一组加权数据点。
我尝试了 sklearn.mixture.GMM() ,除了它对所有数据点的权重相同之外,它工作正常。有谁知道用这种方法为数据点分配权重的方法?我多次尝试使用数据点来“增加它们的权重”,但这对大型数据集似乎无效。
我也考虑过自己实现 EM 算法,但这似乎比例如慢得多上面的 GMM 方法,并且会极大地增加大型数据集的计算时间。
我刚刚发现了 EM 算法 cv2.EM() 的 opencv 方法。这再次工作正常,但与 sklearn.mixture.GMM 存在相同的问题,此外,似乎没有办法更改协方差允许的最小值。或者有没有办法将协方差最小值更改为例如0.001?我希望可以使用probe参数来为数据分配权重,但这似乎只是一个输出参数,对拟合过程没有影响,不是吗?使用 probs0 并通过使用 trainM 从 M 步骤开始算法也无济于事。对于 probs0,我使用了一个(数据点数)x(GMM 分量数)矩阵,其列相同,而数据点的加权参数被写入与数据点对应的行。这也没有解决问题。它只是产生了一个混合模型,其中 all means where 0。
有没有人知道如何操作上述方法,或者有没有人知道另一种方法,以便 GMM 可以用加权数据拟合?
最佳答案
采纳 Jacobs 的建议,我编写了一个石榴实现示例:
import pomegranate
import numpy
import sklearn
import sklearn.datasets
#-------------------------------------------------------------------------------
#Get data from somewhere (moons data is nice for examples)
Xmoon, ymoon = sklearn.datasets.make_moons(200, shuffle = False, noise=.05, random_state=0)
Moon1 = Xmoon[:100]
Moon2 = Xmoon[100:]
MoonsDataSet = Xmoon
#Weight the data from moon2 much higher than moon1:
MoonWeights = numpy.array([numpy.ones(100), numpy.ones(100)*10]).flatten()
#Make the GMM model using pomegranate
model = pomegranate.gmm.GeneralMixtureModel.from_samples(
pomegranate.MultivariateGaussianDistribution, #Either single function, or list of functions
n_components=6, #Required if single function passed as first arg
X=MoonsDataSet, #data format: each row is a point-coordinate, each column is a dimension
)
#Force the model to train again, using additional fitting parameters
model.fit(
X=MoonsDataSet, #data format: each row is a coordinate, each column is a dimension
weights = MoonWeights, #List of weights. One for each point-coordinate
stop_threshold = .001, #Lower this value to get better fit but take longer.
# (sklearn likes better/slower fits than pomegrante by default)
)
#Wrap the model object into a probability density python function
# f(x_vector)
def GaussianMixtureModelFunction(Point):
return model.probability(numpy.atleast_2d( numpy.array(Point) ))
#Plug in a single point to the mixture model and get back a value:
ExampleProbability = GaussianMixtureModelFunction( numpy.array([ 0,0 ]) )
print ('ExampleProbability', ExampleProbability)
关于python 用协方差最小的高斯混合模型(GMM)拟合加权数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36423741/
我知道您不应该将打印与 printf,cout 和 wprintf,wcout 混合使用,但是很难找到一个好的答案,为什么以及是否可以绕过它。问题是我使用了一个用 printf 打印的外部库,而我自己
我有以下问题: class A: animal = 'gerbil' def __init__(self): self.result = self.calculate_
我在屏幕上渲染了一堆形状(多边形),我没有使用深度测试。 我只是希望这些形状在绘制在空白区域时使用自己的颜色,并且在绘制到任何非空区域时使用红色像素,即在我的情况下绘制在另一个多边形上。 这里的问题实
我正在尝试在我的 Groovy/Grails 应用程序中混入一个类,我正在使用 the syntax defined in the docs ,但我不断收到错误消息。 我有一个如下所示的域类: cla
我已经找到了 5349574673 个关于 Alpha 混合的页面,但我仍然无法获得想要的结果。我正在尝试使用 opengl 使 gif/png 文件正确显示(具有透明度/半透明度)。 这是我的初始化
我正在尝试记录以下代码,但我似乎无法让 JSDoc 记录该类,甚至无法引用它的存在。 // SomeMixin.js export default superclass => class SomeMi
我有一个类型家族,我想使用 mixin 以模块化方式“丰富”它们。例如: trait Family { self => trait Dog { def dogname:String
我在 Storyboard中有 Collection View 。我在 Storyboard中有一部分单元格,还有我以编程方式创建的部分单元格。我应该在 sizeForItemAtIndexPath
我有一个字节数组,我想更改它的访问方式。这是数组: char bytes[100]; 我想要另一个数组来改变原始数组的访问方式。如果我们可以将引用放在数组中,它看起来像这样: char& bytes_
我需要从 c 文件调用 cpp 方法。我为此编写了这个界面.. cpp文件 extern "C" void C_Test(int p){ Class::CPP_Test(p); } c文件
我的网站有两份 CSS 表,一份是主 CSS,一份是移动 CSS。问题是在移动设备(iPhone、Android)上查看时,两个样式表会混淆。例如,在 iPhone 上查看网站时,会应用主样式表中的某
维护人员的说明:此问题涉及已过时的 bokeh.charts API,该 API 已于多年前删除。有关使用现代 Bokeh 创建各种条形图的信息,请参阅: https://docs.bokeh.org
在下图中,蓝色圆圈仅用于调试目的。我的目标是蓝色圆圈后面的每一层都应该是透明的。我只想保持蓝色圆圈外面的可见。 这是用 swift 编写的代码: let croissantView = UIV
我不是 SQL 专家。我正在使用 SQL Server 2005,我正在尝试弄清楚如何构造一个查询,以便它可以满足多种要求。我有两个表定义如下: Classroom - ID - Departme
原创: 我之前问过这个问题,但我最初的例子有点不完整,我想我现在可以更具体地说明我的问题。 对于上下文,我在旧的 Apple mac 计算机上使用 openGL 3.3 并尝试渲染四边形的重叠层。每个
是否可以将内联(类似 json)映射与同一对象的常规映射定义混合使用? 考虑以下示例: person: {age: 32, weight: 82} name: foo 生成的人应具有给定的年龄、体
假设我有一个 Parent 类,它有四个字段 A、B、C 和 D,这样 C 和 D 可以选择传递或使用默认实现进行初始化: open class Parent(val a: A, val b: B,
我正在使用 symphony (1.4) 框架在 PHP 中开发一个 Web 应用程序。该代码使用 SVN 进行版本控制。在此网络应用程序中,我们所有客户共享一个共同的基础,以及一些专门为每个客户创建
我想使用两个小部件(一次一个)作为我的应用程序的基础/背景,上面有一个 QML UI 和一个无边框窗口。它应该看起来像这样: 基于 OpenGL 的扫描组件 通过窗口句柄操作的 3D 可视化组件 多个
我们有一个混合的 AngularJS/Angular 8 应用程序,并且我们不断遇到来自不同版本框架的组件之间的变化检测非常慢的问题。到目前为止,我们只在 Angular 组件中使用 AngularJ
我是一名优秀的程序员,十分优秀!