【发布时间】:2019-11-21 09:37:45
【问题描述】:
运行 Python 3.7.3
我制作了一个简单的 GMM 并将其拟合到一些数据中。使用 predict_proba 方法,返回值是 1 和 0,而不是属于每个高斯的输入的概率。
我最初在一个更大的数据集上尝试了这个,然后试图获得一个最小的例子。
from sklearn.mixture import GaussianMixture
import pandas as pd
feat_1 = [1,1.8,4,4.1, 2.2]
feat_2 = [1.4,.9,4,3.9, 2.3]
test_df = pd.DataFrame({'feat_1': feat_1, 'feat_2': feat_2})
gmm_test = GaussianMixture(n_components =2 ).fit(test_df)
gmm_test.predict_proba(test_df)
gmm_test.predict_proba(np.array([[8,-1]]))
我得到的数组只有 1 和 0,或者几乎是(10^-30 或其他)。
除非我解释不正确,否则返回应该是每个的概率,例如,
gmm_test.predict_proba(np.array([[8,-1]]))
当然不应该是 [1,0] 或 [0,1]。
【问题讨论】:
-
你也可以尝试做
GaussianMixture(n_components =2, covariance_type='diag')来防止过拟合。
标签: python scikit-learn mixture-model gmm