1

データセット内のクラスターを見つけるためにガウス混合モデリングを実行していました。最初に sklearn の Gaussian Mixture クラスを使用し、BIC によると 3 つのクラスターが最適な数であることがわかりました。

from sklearn.mixture import GaussianMixture as GMM
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scd = scaler.fit_transform(data)
n_components = np.arange(1, 21)
models = [GMM(n, covariance_type='full',random_state=42).fit(scd)
          for n in n_components]
plt.plot(n_components, [m.bic(scd) for m in models], label='BIC')

次に、次のようにRでこれを再確認したかった:

library(factoextra)
library(mclust)
normFunc <- function(x){(x-mean(x, na.rm = T))/sd(x, na.rm = T)}
set.seed(123)
clust<-sapply(df,normFunc)
clust<-data.frame(clust)
BIC<-Mclust(clust, G=1:20)
summary(BIC)

ただし、R では、mclust は VEE モデルで 13 個のクラスターを言いました。違いはどこで生じたのですか?この回答min_covar=0.0000001に記載されているようにGMM を設定しようとしましたが、そのドキュメントはサポートされなくなりました。私の考えでは、それはいくつかの小さなスケーリングの違いまたは. sklearn でチューニングすることをお勧めしますか? mclustの VVV モデルに似ていますか?covariance_typeconvariance_typecovariance_type='full'

4

0 に答える 0