1183710113-许健-Lab3-Report1
需积分: 0 127 浏览量
更新于2022-08-03
收藏 1.78MB PDF 举报
实验报告“1183710113-许健-Lab3-Report1”主要探讨了两个关键的机器学习算法:K-means聚类和混合高斯模型(GMM),并使用 Expectation-Maximization (EM) 算法进行参数估计。以下是这两个算法的详细解释:
K-means算法是一种无监督学习方法,用于将数据集划分为k个不同的类别。其主要目标是最小化簇内的平方误差和,从而最大化簇间的差异。算法流程包括以下步骤:
1. 初始化:根据输入的超参数k,随机选择k个样本作为初始的簇中心。
2. 分配样本:计算每个样本与所有簇中心之间的欧氏距离,将样本分配给最近的簇。
3. 更新中心:根据新的簇划分,重新计算每个簇的均值,成为新的簇中心。
4. 判断收敛:如果新的簇中心与旧的簇中心之间的差小于预设的阈值ε(例如1e-5),则算法收敛,否则返回步骤2。
在Python中,K-means算法可以通过以下方式实现:
```python
def kmeans(X, k, epsilon=1e-5):
center = np.zeros((k, X.shape[1]-1))
for i in range(k):
center[i,:] = X[np.random.randint(0, high=X.shape[0]),:-1]
while True:
distance = np.zeros(k)
for i in range(X.shape[0]):
for j in range(k):
distance[j] = np.linalg.norm(X[i,:-1] - center[j, :])
X[i, -1] = np.argmin(distance)
new_center = np.zeros((k, X.shape[1]-1))
count = np.zeros(k)
for i in range(X.shape[0]):
new_center[int(X[i, -1]), :] += X[i, :-1]
count[int(X[i, -1])] += 1
for i in range(k):
if count[i] > 0:
new_center[i, :] /= count[i]
if np.linalg.norm(center - new_center) < epsilon:
break
center = new_center
return center, X
```
接下来,混合高斯模型(GMM)是概率模型,假设数据是由多个高斯分布的线性组合生成的。每个样本x可以表示为k个高斯分布中某一个的生成结果,对应的概率为权重π_i。GMM的联合概率密度函数可以表示为:
$$P(x|\theta) = \sum_{i=1}^{k} \pi_i \mathcal{N}(x|\mu_i, \Sigma_i)$$
其中,θ是模型参数,包含每个高斯分布的均值μ_i、协方差矩阵Σ_i和混合系数π_i,这些参数通过EM算法进行估计。
在EM算法中,E步骤(Expectation)计算每个样本属于每个高斯分布的概率(后验概率),M步骤(Maximization)则根据这些概率来更新模型参数。这个过程反复进行,直至参数收敛,即似然函数达到最大或变化非常小。
实验中,学生许健被要求用高斯分布生成的数据测试K-means的效果,然后使用自实现的EM算法估计GMM的参数,并比较迭代过程中的似然值变化,以验证算法的正确性。此外,还要求在UCI数据集上应用GMM进行聚类,以此评估算法在实际问题上的表现。
该实验旨在加深对K-means聚类和GMM的理解,以及掌握EM算法在参数估计中的应用,通过实践提高学生的理论知识和编程技能。
坐在地心看宇宙
- 粉丝: 32
- 资源: 330
最新资源
- 资源名称不得少于十一字
- PXI 429总线卡 航空总线卡 底板板+功能子卡结构 底板原理图+PCB 子卡原理图+PCB FPGA源代码(EP3C40F484) 如需要,详谈
- JDWT01 220 台,高精度称重模块,rs485通讯,支持多种通讯格式,采用g24位ad7190转模块,内码高达1000w,精度可达2w分之一 提供海为pLc标定程序 JDWT01-A 160
- 重庆大学Python课程试题解析与核心知识点汇总
- MATLAB代码:基于两阶段鲁棒优化算法的微网电源容量优化配置 关键词:容量优化配置 微网 两阶段鲁棒规划 仿真平台:MATLAB YALMIP+CPLEX 主要内容:代码主要做的是一个微网中电源
- jmeter学习笔记,基础知识,实用
- 正弦余弦指引的乌鸦搜索算法Matlab代码 1肖子雅,刘升,韩斐斐于建芳正弦余弦指引的乌鸦搜索算法研究J.计算机工程与应用,2019,55(21):52-59. 乌鸦搜索算法模拟乌鸦觅食行为对
- SVPWM算法的simulink实现 有两种,分别是只simulink的和基于s-fun函数的,附代码 默认matlab2018b
- 西门子PLC程序大型项目,siemens博途V16 V17版,配方处理程序,多个昆仑通态触摸屏配方,ScL语言,485通讯控制变频器,模拟量压力处理,多个1200cpu处理,称重数据读取
- electron rtmp桌面推流客户端
- 一个使用 JavaScript 结合 HTML 和 CSS 创建一个出租车计价器界面及实现计价功能的源码
- 串口调试助手软件,socket通信调试助手软件 很好用的两个助手软件功能强大,侦测,拦截,逆向分析串口通汛协议,是RS232 422 485串行端口的专业工貝软件
- dfajkfghdjk s12m code
- 微电网 孤岛 孤岛并网切 并网 三种模式 考虑风光储 储能环节可以根据孤岛并网模式在PQ 和VF模式两环节切 考虑蓄电池和超级电容混合储能 超级电容提供高频分量 附各个环节讲解说明 模型可塑
- 两级式光伏并网逆变器,DCDC环节采用boost电路,通过增量电导法实现光伏最大功率跟踪MPPT 逆变器采用二电平逆变器,通过双闭环控制,实现并网单位功率因数,并网电流与电网电压同相位,并网电流TH
- MATLAB simiulink永磁直驱风力发电系统, 机侧网侧均使用为SVPWM矢量控制算法,参数调节均已完成,直接运行即可,可供初学者学习 (1)采用 SVPWM 矢量控制; (2)采用转速、电