Matlab或Java中直方图分布的自动拟合

Matlab或Java中直方图分布的自动拟合,java,matlab,statistics,histogram,distribution,Java,Matlab,Statistics,Histogram,Distribution,我有一个特征的直方图(机器学习)。这意味着在x轴上我有几个特征值,在y轴上我有出现的次数 如果我不知道它是哪种类型的分布(正态分布或几何分布等),在Matlab(或Java)中是否可能自动将概率分布拟合到此直方图?这意味着Matlab(或Java)应该找出它是哪个分布,并给我最佳参数 问题是我有很多特性,手动检查这些特性需要花费太多时间 编辑:我发现以下Matlab工具可以完成这项工作:不幸的是,它只支持参数化模型 我现在有点糊涂了。我已经读到,我必须规范化我的直方图,以便我看到的是经验概率,而

我有一个特征的直方图(机器学习)。这意味着在x轴上我有几个特征值,在y轴上我有出现的次数

如果我不知道它是哪种类型的分布(正态分布或几何分布等),在Matlab(或Java)中是否可能自动将概率分布拟合到此直方图?这意味着Matlab(或Java)应该找出它是哪个分布,并给我最佳参数

问题是我有很多特性,手动检查这些特性需要花费太多时间

编辑:我发现以下Matlab工具可以完成这项工作:不幸的是,它只支持参数化模型


我现在有点糊涂了。我已经读到,我必须规范化我的直方图,以便我看到的是经验概率,而不是数字。如果我想尝试所有可能的参数分布并选择最好的,这是真的吗?如何在Matlab中实现这种规范化?

我不知道有任何工具能够自动找到最佳的分布类型。但是,由于实际数据通常不完全对应于一个分布,并且存在任意数量的可能分布,因此这种工具的存在也没有什么意义


我建议您将问题局限于某些分布模型(高斯分布、对称分布等),计算相应模型的最佳拟合,为每个拟合生成一个似然参数,然后选择似然度最高的拟合/模型。

无需任何培训+建模,您最好的办法是对数据强制执行每个分布,并计算RMSE(或其他方法来说明分布与您的数据的匹配程度),然后选择RMSE最低的一个,但这远远不理想,而且很容易导致错误。@我已经更新了我的问题。如果您对参数化模型不感兴趣,然后你需要对你的问题做更多的解释。为什么您认为参数化模型是不够的?如果您对参数化模型不感兴趣,为什么不使用经验分布呢?您有兴趣使用什么样的配件标准?你为什么要试穿?您希望通过此配件实现什么?您删除了很多上下文(这很好),但是当您所述问题的答案(allfitdist)不够好时,您需要说明更多。您在编辑1中发布的链接正是我所说的,如果您阅读此处的文件描述,此工具箱基本上使用了许多分发版来尝试适合您的数据。每次计算RMSE并在最后确定最佳拟合。你实际上不需要把事情复杂化。首先,您想尝试什么发行版?正态、线性、二次等?您只需要编写一个带有IF条件的循环就可以做到这一点。相信我,这很容易。同样要回答你的编辑2,将数据标准化为PDF不会改变你的拟合,是的,它会改变你的RMSE计算。所以你要么把它们都标准化,要么什么都不标准化。在比较每个直方图时,标准化是一种很好的做法,但不会影响曲线拟合。谢谢您的回答。请参阅我在原始帖子中的第二次编辑。标准化表示直方图的总体概率为1。要在matlab中为vetcor“data”执行此操作,您可以使用:data=data./sum(data);使总和(数据)=1;