当前位置: 首页 > news >正文

网站收录减少名师工作室网站建设建议

网站收录减少,名师工作室网站建设建议,如何自己制作公众号,58同城建网站怎么做高斯混合模型#xff08;Gaussian Mixture Model#xff0c;简称 GMM#xff09;是一种概率模型#xff0c;用于表示具有多个子群体的数据集#xff0c;其中每个子群体的数据分布可以用高斯分布#xff08;正态分布#xff09;来描述。GMM 是一种软聚类方法#xff0c;…高斯混合模型Gaussian Mixture Model简称 GMM是一种概率模型用于表示具有多个子群体的数据集其中每个子群体的数据分布可以用高斯分布正态分布来描述。GMM 是一种软聚类方法意味着它为每个数据点分配一个属于每个聚类的概率分布而不是硬聚类方法中的严格分类。 GMM 的组成 一个 GMM 由以下几个部分组成 聚类数量K模型中高斯分布聚类的数量。均值向量μkμk​每个高斯分布的均值向量其中 kk 表示聚类索引。协方差矩阵ΣkΣk​每个高斯分布的协方差矩阵描述了数据在各个维度上的分布范围和形状。混合系数πkπk​每个高斯分布的权重表示数据属于该聚类的概率所有混合系数之和为1。 GMM 的数学表达 GMM 的概率密度函数PDF可以表示为 GMM 的学习 GMM 的参数学习通常使用 EM 算法进行EM算法前面有将是一个策略优化算法 24/11/14 算法笔记 EM算法期望最大化算法-CSDN博客 我们来看一下简单的GMM源代码 import numpy as np from scipy.stats import multivariate_normalclass GaussianMixture:def __init__(self, n_components, covariance_typefull, n_iter100, random_stateNone):self.n_components n_components # 聚类数量self.covariance_type covariance_type # 协方差类型self.n_iter n_iter # 迭代次数self.random_state random_state # 随机种子self.weights_ None # 混合系数self.means_ None # 均值self.covariances_ None # 协方差def _initialize_parameters(self, X):随机初始化均值、协方差和权重n_samples, n_features X.shapeself.weights_ np.ones(self.n_components) / self.n_components # 初始化权重random_indices np.random.choice(n_samples, self.n_components, replaceFalse)self.means_ X[random_indices] # 随机选择均值self.covariances_ np.array([np.eye(n_features)] * self.n_components) # 初始化协方差为单位矩阵def _e_step(self, X):E步骤计算每个数据点属于每个高斯分布的责任n_samples X.shape[0]responsibilities np.zeros((n_samples, self.n_components))for k in range(self.n_components):rv multivariate_normal(meanself.means_[k], covself.covariances_[k])responsibilities[:, k] self.weights_[k] * rv.pdf(X)# 归一化责任responsibilities / responsibilities.sum(axis1, keepdimsTrue)return responsibilitiesdef _m_step(self, X, responsibilities):M步骤更新均值、协方差和权重n_samples X.shape[0]effective_n responsibilities.sum(axis0) # 每个聚类的有效样本数量# 更新权重self.weights_ effective_n / n_samples# 更新均值self.means_ np.dot(responsibilities.T, X) / effective_n[:, np.newaxis]# 更新协方差for k in range(self.n_components):diff X - self.means_[k]self.covariances_[k] np.dot(responsibilities[:, k] * diff.T, diff) / effective_n[k]def fit(self, X):训练模型self._initialize_parameters(X) # 初始化参数for _ in range(self.n_iter): # 迭代更新responsibilities self._e_step(X) # E步骤self._m_step(X, responsibilities) # M步骤def predict(self, X):预测数据点的聚类标签responsibilities self._e_step(X) # 计算责任return np.argmax(responsibilities, axis1) # 返回最大责任的聚类索引def sample(self, n_samples):从模型中生成新样本samples np.zeros((n_samples, self.means_.shape[1]))for i in range(n_samples):k np.random.choice(self.n_components, pself.weights_) # 根据权重选择聚类samples[i] np.random.multivariate_normal(self.means_[k], self.covariances_[k]) # 生成样本return samples 接下来让我们分析下每段代码 1.初始化函数 __init__ def __init__(self, n_components, covariance_typefull, n_iter100, random_stateNone):self.n_components n_components # 聚类数量self.covariance_type covariance_type # 协方差类型self.n_iter n_iter # 迭代次数self.random_state random_state # 随机种子self.weights_ None # 混合系数self.means_ None # 均值self.covariances_ None # 协方差 这是类的构造函数用于初始化GMM模型的参数 n_components模型中高斯分布聚类的数量。covariance_type协方差矩阵的类型可以是full、diag或spherical分别表示全协方差、对角协方差和球面协方差。n_iterEM算法的最大迭代次数。random_state随机数生成器的种子用于结果的可重复性。weights_、means_和covariances_这些属性将在模型训练后存储模型参数。 2.参数初始化函数 _initialize_parameters def _initialize_parameters(self, X):随机初始化均值、协方差和权重n_samples, n_features X.shapeself.weights_ np.ones(self.n_components) / self.n_components # 初始化权重random_indices np.random.choice(n_samples, self.n_components, replaceFalse)self.means_ X[random_indices] # 随机选择均值self.covariances_ np.array([np.eye(n_features)] * self.n_components) # 初始化协方差为单位矩阵 这个函数用于随机初始化模型参数 self.weights_权重初始化为均等分布。self.means_均值初始化为数据集中随机选择的点。self.covariances_协方差矩阵初始化为单位矩阵适用于全协方差情况。协方差可以告诉我们两个变量是如何一起变化的。如果两个变量的协方差是正的那么它们倾向于朝相同的方向变化如果协方差是负的那么一个变量增加时另一个变量倾向于减少。 3.E步骤函数 _e_step def _e_step(self, X):E步骤计算每个数据点属于每个高斯分布的责任n_samples X.shape[0]responsibilities np.zeros((n_samples, self.n_components))for k in range(self.n_components):#函数用于生成符合多元正态分布的随机样本。rv multivariate_normal(meanself.means_[k], covself.covariances_[k])responsibilities[:, k] self.weights_[k] * rv.pdf(X)# 归一化责任responsibilities / responsibilities.sum(axis1, keepdimsTrue)return responsibilities E步骤计算每个数据点属于每个高斯分布的责任后验概率 使用multivariate_normal.pdf计算每个高斯分布的PDF值。将每个高斯分布的PDF值乘以相应的权重得到未归一化的责任。通过将每个数据点的责任除以其总和来归一化责任确保每个数据点的责任之和为1。 PDF值通常指的是概率密度函数Probability Density Function的值。概率密度函数是连续概率分布的一个核心概念它描述了随机变量在给定区间内取值的概率密度。对于连续随机变量其概率密度函数的图形可以告诉我们随机变量取某个特定值的可能性。 4.M步骤函数 _m_step def _m_step(self, X, responsibilities):M步骤更新均值、协方差和权重n_samples X.shape[0]effective_n responsibilities.sum(axis0) # 每个聚类的有效样本数量# 更新权重self.weights_ effective_n / n_samples# 更新均值self.means_ np.dot(responsibilities.T, X) / effective_n[:, np.newaxis]# 更新协方差for k in range(self.n_components):diff X - self.means_[k]self.covariances_[k] np.dot(responsibilities[:, k] * diff.T, diff) / effective_n[k] M步骤根据E步骤计算的责任更新模型参数 self.weights_权重更新为每个聚类的有效样本数量除以总样本数量。self.means_均值更新为加权平均权重是每个数据点对每个聚类的责任。self.covariances_协方差更新为加权的样本偏差的外积权重是每个数据点对每个聚类的责任。 5.训练函数 fit def fit(self, X):训练模型self._initialize_parameters(X) # 初始化参数for _ in range(self.n_iter): # 迭代更新responsibilities self._e_step(X) # E步骤self._m_step(X, responsibilities) # M步骤 首先调用_initialize_parameters函数初始化参数。然后进行指定次数的迭代每次迭代都包括E步骤和M步骤。 6.预测函数 predict def predict(self, X):预测数据点的聚类标签responsibilities self._e_step(X) # 计算责任return np.argmax(responsibilities, axis1) # 返回最大责任的聚类索引 首先调用_e_step函数计算新数据点对每个聚类的责任。然后返回责任最大的聚类索引作为预测标签。 7.采样函数 sample def sample(self, n_samples):从模型中生成新样本samples np.zeros((n_samples, self.means_.shape[1]))for i in range(n_samples):k np.random.choice(self.n_components, pself.weights_) # 根据权重选择聚类samples[i] np.random.multivariate_normal(self.means_[k], self.covariances_[k]) # 生成样本return samples 首先初始化一个空的样本数组。然后根据每个聚类的权重随机选择一个聚类。从选定的聚类对应的高斯分布中生成一个样本。重复上述过程直到生成所需数量的样本。
http://www.w-s-a.com/news/475835/

相关文章:

  • 中国做的儿童编程网站网站建设模板网站
  • 电脑做系统网站微信开店
  • site之后网站在首页说明说明网络舆情分析师怎么考
  • 本溪网站建设兼职wordpress lapa
  • 官网网站设计费用vue大型网站怎么做路由
  • 青海省安建设管理部门网站厦门网站快照优化公司
  • 张家港建网站公司网站开发 认证
  • 网站建设方式优化兰州医院网站制作
  • 怎么创造网站wordpress伪静态规则怎么写
  • 自己怎么做一元购物网站信誉好的合肥网站推广
  • 做网站的骗术有什么好的网站设计思想的博客
  • 网站建设工作 方案企查查企业信息查询在线
  • 上海外贸建站商城定制软件安卓
  • 成都网站建设_创新互联wordpress 相邻文章
  • 电子商务网站制作步骤免费建网站知乎
  • 龙岩有什么招聘本地网站团购网站 方案
  • 服务器运行一段时间网站打不开注册公司名字核名查询系统
  • 企业网站改版的意义响应式网站建设新闻
  • 大连金州新区规划建设局网站金坛市建设局网站
  • 有哪些做排球比赛视频网站wordpress 教师工作坊
  • 深圳好点的网站建设公司互联网企业信息服务平台
  • 下载空间大的网站建设哈尔滨网站制作软件
  • 南城网站仿做无锡网站制作哪家价格便宜
  • c做的网站营销策划课程
  • 免费网站404免费进入重庆的公需科目在哪个网站做
  • 网站空间租用费用网站建设公司怎么宣传
  • 镇江网站建设优化案例分析dw2018网页制作步骤图文
  • 网站开发一个多少钱为什么前端都不用dw
  • 网站降权的原因北京中小企业网站建设公司
  • 个人域名能做网站吗wordpress