python - 如何使用高斯混合模型进行聚类?
问题描述
我一直在使用 k-Means 将数据聚类为 2 个类。但是,现在,我想使用不同的方法并使用高斯混合模型将数据聚类为 2 个类。我已经阅读了 Scikit-Learn 文档和其他 SO 问题,但无法理解如何在我目前的上下文中使用 GMM 进行 2 类聚类。
我可以使用 k-Means 轻松地将数据聚类到 2 个类中,如下所示:-
import pandas as pd
from scipy import stats
from sklearn.cluster import KMeans
import numpy as np
df = pd.read_pickle('my_df.pkl')
clmns = df.columns
df = df.fillna(df.mean())
df.isnull().any
df_tr_std = stats.zscore(df[clmns])
kmeans = KMeans(n_clusters = 2, random_state = 0, n_init = 100, max_iter=500, n_jobs = -1).fit(df_tr_std)
# >>> kmeans
# KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
# n_clusters=2, n_init=10, n_jobs=None, precompute_distances='auto',
# random_state=0, tol=0.0001, verbose=0)
labels = kmeans.labels_
我会很感激任何一个线性/短代码段,我可以用它来在我的数据上拟合 GMM 模型(df_tr_std
)。我确信这必须是一个相当简单的过程来适应 GMM 模型,但我对如何将我当前的 k-Means 上下文修改为 GMM 模型感到非常困惑。
解决方案
推荐阅读
- amadeus - Amadeus Flight Offers API
- c# - 多线程 - 传递参数和接收结果
- python - ValueError:“balanced_accuracy”不是 scikit-learn 中的有效评分值
- algorithm - 快速排序 - 中位数三
- node.js - 在一个 aws lambda 函数中组合多个查询
- c++ - 将 `char []` 传递给接受 `std::string&` 的函数是一种好习惯吗?
- android - Dialog 和 AlertDialog 有什么区别?
- java - OnResume 在第 1 次尝试时未显示所需的结果
- python - 改变实例变量的值
- javascript - GET 服务调用未从 Controller 调用