利用一个班级的身高数据(见群里共享文档)来训练一个高斯混合模型(Gaussian Mixture Model, GMM),并使用期望最大化(Expectation-Maximization, EM)算法来估计模型参数。 输出代码
时间: 2025-01-30 22:11:53 浏览: 29
首先,我们需要导入必要的库,如numpy、pandas以及sklearn的GaussianMixture模块。假设我们已经有一个名为`height_data.csv`的CSV文件,其中包含班级学生的身高数据。
```python
import numpy as np
import pandas as pd
from sklearn.mixture import GaussianMixture
from sklearn.preprocessing import StandardScaler
# 加载数据
data = pd.read_csv('height_data.csv')
heights = data['Height'].values.reshape(-1, 1) # 提取身高列并转换为二维数组
# 数据预处理 - 标准化
scaler = StandardScaler()
heights_scaled = scaler.fit_transform(heights)
# 初始化GMM模型(默认使用最大迭代次数)
gmm = GaussianMixture(n_components=2, max_iter=1000) # 可能需要调整n_components以适应数据
# 使用EM算法训练模型
gmm.fit(heights_scaled)
# 获取模型参数
means = gmm.means_ # 每个高斯分布的均值
covariances = gmm.covariances_ # 每个高斯分布的协方差矩阵
weights = gmm.weights_ # 各高斯分布的权重(概率)
# 打印一些关键信息
print(f"Means: {means}")
print(f"Covariances: {covariances}")
print(f"Weights: {weights}")
#
阅读全文
相关推荐



















