【发布时间】:2016-06-12 12:25:36
【问题描述】:
我有一个特征(机器学习)的直方图。这意味着在 x 轴上我有几个特征可以采用的值,在 y 轴上我有出现次数。
如果我不知道它是哪种类型的分布(正态分布或几何分布等),是否可以在 Matlab(或 Java)中自动将概率分布拟合到该直方图?这意味着 Matlab(或 Java)应该找出它是哪个分布并给我最佳参数。
问题是我有很多功能,手动检查功能需要太多时间。
编辑:我发现以下 Matlab 工具可以完成这项工作:http://blogs.mathworks.com/pick/2012/02/10/finding-the-best/ 不幸的是它只支持参数模型。
Edit2:我现在有点困惑。我已经读过我必须标准化我的直方图,以便我看到经验概率而不是数字。如果我想尝试所有可能的参数分布并选择最好的,这是真的吗?在 Matlab 中如何进行这种归一化?
【问题讨论】:
-
没有任何类型的训练 + 建模,你最好的办法是强行将每个分布强加到数据上并计算 RMSE(或其他说明分布与数据拟合程度的方法)并选择一个RMSE 最低,但这远非理想,很容易导致错误。
-
@GameOfThrows 我已经更新了我的问题。
-
如果您对参数模型不感兴趣,那么您需要为您的问题添加更多解释。为什么你认为参数模型是不够的?如果您对参数模型不感兴趣,为什么不直接使用经验分布?您有兴趣使用哪些拟合标准?你为什么要做这个装修?你希望通过这次装修达到什么目的?您放弃了很多上下文(这很好),但是当您陈述的问题 (allfitdist) 的答案不够好时,您需要说明更多。
-
您在编辑 1 中发布的链接正是我所说的,如果您阅读此处的文件描述mathworks.com/matlabcentral/fileexchange/… 这个工具箱基本上使用了许多分布来尝试拟合您的数据。每次计算 RMSE 并在最后决定最佳拟合。您实际上不需要使事情复杂化。首先,您想尝试哪些发行版?正常,线性,二次等?您只需要编写一个带有 IF 条件的循环来执行此操作。相信我,这很简单。
-
还要回答您的 EDIT 2,将您的数据标准化为 PDF 不会改变您的拟合,是的,它会改变您的 RMSE 计算。所以你要么规范化它们中的每一个,要么不规范化任何东西。当您比较每个直方图时,标准化是一种很好的做法,但不会影响您的曲线拟合。
标签: java matlab statistics histogram distribution