首页 > 解决方案 > 如何在 python 中使用不同大小的数据集训练 GMM?

问题描述

我正在尝试使用 GMM 根据 28 个不同大小的数据集生成合成数据。数据集包含我试图合成复制的某些分子位置的坐标列表(x,y,z)。例如,假设我有以下三个 numpy 数组形式的数据集(真实数据集包含数百或数千个坐标):

dataset1 = array([[ -23.40615192, -105.30347846,  106.5562609 ],
   [ -47.24327393, -122.24249306,  105.13437965],
   [ -38.14460785,  -93.42933431,   96.78474773],
   [ -36.72412585, -106.34904917,   88.97037884]])

dataset2 = array([[ -29.60147729,  -90.73071122,  113.1567724 ],
   [ -31.76138045,  -93.35949818,  133.9334376 ],
   [ -16.31718164,  -91.41650939,  100.26570896]])

dataset3 = array([[ 111.799484,  -86.1     ,   14.38    ],
   [  97.88    ,  -93.036994,   14.38    ],
   [  76.35    ,  -80.89    ,   12.826868],
   [  49.26    ,  -77.827499,   16.88    ],
   [  31.561942,  -84.15    ,   16.88    ],
   [  -3.6     , -151.01    ,   17.070828],
   [  70.8     ,  -60.99    ,   13.876267],
   [  84.996985,  -61.64    ,   18.93    ],
   [  75.612867,  -47.94    ,   18.93    ],
   [  53.667344,  -61.31    ,   18.93    ]])

我已经使用[GaussianMixture][1]sklearn 中的函数基于 ONE 数据集生成了合成数据,如下所示:

from sklearn import mixture    
model = mixture.GaussianMixture(n_components=50, covariance_type='full').fit(dataset1)
syntheticdata = model.sample(2000)

它工作得很好,但我想一次使用所有数据集(大小不同)生成一个模型。这可能吗?

标签: pythonscikit-learngmm

解决方案


推荐阅读