【发布时间】:2020-03-02 00:43:21
【问题描述】:
我有一些来自两个不同说话人的数据(用于说话人识别的 MFCC 功能)。每个人 13 个特征的 60 个向量(总共 120 个)。他们每个人都有自己的标签(0 和 1)。我需要在混淆矩阵上显示结果。但是来自 sklearn 的 GaussianMixture 模型不稳定。对于每个程序运行,我都会收到不同的分数(有时准确度是 0.4,有时是 0.7 ...)。我不知道我做错了什么,因为类似地我创建了 SVM 和 k-NN 模型并且它们工作正常(稳定精度在 0.9 左右)。你知道我做错了什么吗?
gmmclf = GaussianMixture(n_components=2, covariance_type='diag')
gmmclf.fit(X_train, y_train) #X_train are mfcc vectors, y_train are labels
ygmm_pred_class = gmmclf.predict(X_test)
print(accuracy_score(y_test, ygmm_pred_class))
print(confusion_matrix(y_test, ygmm_pred_class))
【问题讨论】:
-
在初始化
GaussianMixture模型时,您是否尝试过通过传递random_state参数的值来修复种子?这样你应该总是得到相同的结果,但它可能不是最好的。 -
感谢您的帮助!我认为 random_state 从默认设置为 0。但是,如何修复此算法以确保准确性是最好的?
标签: python machine-learning scikit-learn gmm