首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python将高斯(或其他发行版)安装在我的数据上

使用python将高斯(或其他发行版)安装在我的数据上
EN

Stack Overflow用户
提问于 2017-06-20 09:35:50
回答 4查看 631关注 0票数 3

我有一个特征数据库,一个2D np.array (2000样本,每个样本包含100个特征,2000 X 100)。我想使用python将高斯分布拟合到我的数据库中。我的代码如下:

代码语言:javascript
复制
data = load_my_data() # loads a np.array with size 2000x200
clf = mixture.GaussianMixture(n_components= 50, covariance_type='full')
clf.fit(data)

我不确定参数,例如covariance_type,以及如何调查是否成功地进行了匹配。

编辑:--我调试代码以调查clf.means_正在发生的情况,并生成一个矩阵n_components X size_of_features 50 X20)。有什么方法可以让我检查拟合是否成功,或者绘制数据?高斯混合(例如指数混合物,我找不到任何可用的实现)的替代方案是什么?

EN

回答 4

Stack Overflow用户

发布于 2017-06-20 11:09:23

我想你用的是滑雪套餐。

一旦你适应,然后键入

代码语言:javascript
复制
print clf.means_

如果它有输出,那么数据就会被安装,如果它会产生误差,而不是拟合。

希望这能帮到你。

票数 3
EN

Stack Overflow用户

发布于 2017-07-04 10:40:04

您可以使用PCA对3D空间(比方说)进行降维,然后绘制方法和数据。

票数 1
EN

Stack Overflow用户

发布于 2017-07-04 14:04:21

在尝试确定分布之前,总是倾向于选择一组减少的候选人(换句话说,使用Cullen & Frey拒绝不太可能的候选人),然后选择最佳的结果。

您只需在can中创建所有可用发行版的列表。有两个分布和随机数据的示例:

代码语言:javascript
复制
import numpy as np
import scipy.stats as st

data = np.random.random(10000)
#Specify all distributions here
distributions = [st.laplace, st.norm]
mles = []

for distribution in distributions:
    pars = distribution.fit(data)
    mle = distribution.nnlf(pars, data)
    mles.append(mle)

results = [(distribution.name, mle) for distribution, mle in 
zip(distributions, mles)]
best_fit = sorted(zip(distributions, mles), key=lambda d: d[1])[0]
print 'Best fit reached using {}, MLE value: {}'.format(best_fit[0].name, best_fit[1])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44649272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档