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

昆山自适应网站建设用vue element-ui做的网站

昆山自适应网站建设,用vue element-ui做的网站,软件开发培训需要多少钱,模糊背景网站文章目录 一、实验介绍1. 算法流程2. 算法解释3. 算法特点4. 应用场景5. 注意事项 二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. 全局调试变量2. 调试函数3. 高斯密度函数#xff08;phi#xff09;4. E步#xff08;getExpectation#xff09… 文章目录 一、实验介绍1. 算法流程2. 算法解释3. 算法特点4. 应用场景5. 注意事项 二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. 全局调试变量2. 调试函数3. 高斯密度函数phi4. E步getExpectation5. M步maximize6. 数据缩放函数7. 初始化参数8. GMM EM算法函数9. 主函数 四、代码整合 高斯混合聚类是一种基于概率模型的聚类方法采用多个高斯分布的线性组合来表示数据的聚类结构。通过对每个样本的多个高斯分布进行加权组合该算法能够更灵活地适应不同形状的聚类。 一、实验介绍 1. 算法流程 初始化   初始化高斯混合分布的模型参数包括每个高斯混合成分的均值向量 μ i \mu_i μi​、协方差矩阵 Σ i \Sigma_i Σi​ 和混合系数 π i \pi_i πi​。 { ( μ 1 , Σ 1 , π 1 ) , ( μ 2 , Σ 2 , π 2 ) , . . . , ( μ k , Σ k , π k ) } \{(\mu_1, \Sigma_1, \pi_1), (\mu_2, \Sigma_2, \pi_2), ..., (\mu_k, \Sigma_k, \pi_k)\} {(μ1​,Σ1​,π1​),(μ2​,Σ2​,π2​),...,(μk​,Σk​,πk​)} 迭代过程EM算法 Expectation (E) 步骤 对于每个样本 X j X_j Xj​ 计算其由各混合成分生成的后验概率 γ i j \gamma_{ij} γij​表示样本属于第 i i i 个混合成分的概率。 γ i j π i ⋅ N ( X j ∣ μ i , Σ i ) ∑ l 1 k π l ⋅ N ( X j ∣ μ l , Σ l ) \gamma_{ij} \frac{\pi_i \cdot \mathcal{N}(X_j | \mu_i, \Sigma_i)}{\sum_{l1}^{k} \pi_l \cdot \mathcal{N}(X_j | \mu_l, \Sigma_l)} γij​∑l1k​πl​⋅N(Xj​∣μl​,Σl​)πi​⋅N(Xj​∣μi​,Σi​)​ Maximization (M) 步骤 更新模型参数 新均值向量 μ i \mu_i μi​ 的更新 μ i ∑ j 1 m γ i j X j ∑ j 1 m γ i j \mu_i \frac{\sum_{j1}^{m} \gamma_{ij} X_j}{\sum_{j1}^{m} \gamma_{ij}} μi​∑j1m​γij​∑j1m​γij​Xj​​新协方差矩阵 Σ i \Sigma_i Σi​ 的更新 Σ i ∑ j 1 m γ i j ( X j − μ i ) ( X j − μ i ) T ∑ j 1 m γ i j \Sigma_i \frac{\sum_{j1}^{m} \gamma_{ij} (X_j - \mu_i)(X_j - \mu_i)^T}{\sum_{j1}^{m} \gamma_{ij}} Σi​∑j1m​γij​∑j1m​γij​(Xj​−μi​)(Xj​−μi​)T​新混合系数 π i \pi_i πi​ 的更新 π i 1 m ∑ j 1 m γ i j \pi_i \frac{1}{m} \sum_{j1}^{m} \gamma_{ij} πi​m1​∑j1m​γij​ 停止条件   根据设定的停止条件比如达到最大迭代轮数或模型参数的变化小于某一阈值。 簇划分   根据得到的后验概率 γ i j \gamma_{ij} γij​ 确定每个样本的簇标记将样本划入概率最大的簇中。 C i { X j ∣ argmax i γ i j , 1 ≤ i ≤ k } C_i \{X_j | \text{argmax}_i \gamma_{ij}, 1 \leq i \leq k\} Ci​{Xj​∣argmaxi​γij​,1≤i≤k} 输出   返回最终的簇划分 C { C 1 , C 2 , . . . , C k } C \{C_1, C_2, ..., C_k\} C{C1​,C2​,...,Ck​}。 高斯混合聚类采用了迭代优化的方式通过不断更新均值向量、协方差矩阵和混合系数使得模型对数据的拟合更好。EM算法的E步骤计算后验概率M步骤更新模型参数整个过程不断迭代直至满足停止条件。最后将每个样本划分到概率最大的簇中。 2. 算法解释 通过EM算法的E步骤计算每个样本属于每个混合成分的后验概率。通过EM算法的M步骤更新每个混合成分的均值向量、协方差矩阵和混合系数优化模型对数据的拟合。算法通过迭代过程不断调整模型参数使得混合分布更好地刻画数据的分布。 3. 算法特点 通过多个高斯分布的组合适用于不同形状的聚类结构。采用EM算法进行迭代优化灵活适应数据的复杂分布。 4. 应用场景 适用于数据具有多个分布的情况且每个分布可以用高斯分布来描述。在图像分割、语音识别等领域广泛应用。 5. 注意事项 初始参数的选择可能影响最终聚类效果因此需要进行多次运行选择最优结果。算法对异常值不敏感但在特定场景下可能需要考虑异常值的处理。 二、实验环境 1. 配置虚拟环境 conda create -n ML python3.9conda activate MLconda install scikit-learn matplotlib2. 库版本介绍 软件包本实验版本matplotlib3.5.2numpy1.21.5python3.9.13scikit-learn1.0.2 三、实验内容 0. 导入必要的库 import numpy as np import matplotlib.pyplot as plt from scipy.stats import multivariate_normal from sklearn.datasets import load_iris1. 全局调试变量 DEBUG True该变量控制是否在执行过程中打印调试信息。 2. 调试函数 def debug(*args, **kwargs):global DEBUGif DEBUG:print(*args, **kwargs)用于打印调试信息的函数。在整个代码中都使用了它以进行调试。 3. 高斯密度函数phi def phi(Y, mu_k, cov_k):# Check for and handle infinite or NaN values in Ynorm multivariate_normal(meanmu_k, covcov_k)return norm.pdf(Y)计算多元高斯分布的概率密度函数。 4. E步getExpectation def getExpectation(Y, mu, cov, alpha):N Y.shape[0]K alpha.shape[0]assert N 1, There must be more than one sample!assert K 1, There must be more than one gaussian model!gamma np.mat(np.zeros((N, K)))prob np.zeros((N, K))for k in range(K):prob[:, k] phi(Y, mu[k], cov[k]) * alpha[k]prob np.mat(prob)for k in range(K):gamma[:, k] prob[:, k] / np.sum(prob, axis1)return gammaEM算法的E步骤计算每个数据点属于每个簇的概率。主要步骤包括 初始化一个零矩阵 gamma 用于存储响应度。对于每个簇计算每个数据点属于该簇的概率通过 phi 函数计算然后乘以该簇的混合系数。归一化概率以得到响应度矩阵 gamma。 5. M步maximize def maximize(Y, gamma):N, D Y.shapeK gamma.shape[1]mu np.zeros((K, D))cov []alpha np.zeros(K)for k in range(K):Nk np.sum(gamma[:, k])mu[k, :] np.sum(np.multiply(Y, gamma[:, k]), axis0) / Nkdiff Y - mu[k]cov_k np.dot(diff.T, np.multiply(diff, gamma[:, k])) / Nkcov_k 1e-6 * np.identity(D) # Adding a small value to the diagonal for stabilitycov.append(cov_k)alpha[k] Nk / Ncov np.array(cov)return mu, cov, alpha EM算法的M步骤即更新模型参数主要步骤包括 初始化均值 mu、协方差矩阵列表 cov 和混合系数 alpha。对于每个簇计算新的均值、协方差矩阵和混合系数。均值的更新是通过加权平均计算的协方差矩阵的更新考虑了数据的权重响应度混合系数的更新是每个簇中数据点的权重之和。 6. 数据缩放函数 def scale_data(Y):for i in range(Y.shape[1]):max_ Y[:, i].max()min_ Y[:, i].min()Y[:, i] (Y[:, i] - min_) / (max_ - min_)debug(Data scaled.)return Y将数据集中的每个特征缩放到 [0, 1] 范围内。 7. 初始化参数 def init_params(shape, K):N, D shapemu np.random.rand(K, D)cov np.array([np.eye(D)] * K)alpha np.array([1.0 / K] * K)debug(Parameters initialized.)debug(mu:, mu, cov:, cov, alpha:, alpha, sep\n)return mu, cov, alpha 初始化GMM的参数均值、协方差和混合系数。 8. GMM EM算法函数 def GMM_EM(Y, K, times):Y scale_data(Y)mu, cov, alpha init_params(Y.shape, K)for i in range(times):gamma getExpectation(Y, mu, cov, alpha)mu, cov, alpha maximize(Y, gamma)debug({sep} Result {sep}.format(sep- * 20))debug(mu:, mu, cov:, cov, alpha:, alpha, sep\n)return mu, cov, alpha 9. 主函数 if __name__ __main__:# Load Iris datasetiris load_iris()Y iris.data# Model parametersK 3 # number of clustersiterations 100# Run GMM EM algorithmmu, cov, alpha GMM_EM(Y, K, iterations)# Clustering based on the trained modelN Y.shape[0]gamma getExpectation(Y, mu, cov, alpha)category gamma.argmax(axis1).flatten().tolist()[0]# Plotting the resultsfor i in range(K):cluster_data np.array([Y[j] for j in range(N) if category[j] i])plt.scatter(cluster_data[:, 0], cluster_data[:, 1], labelfCluster {i 1})plt.legend()plt.title(GMM Clustering By EM Algorithm)plt.xlabel(Feature 1)plt.ylabel(Feature 2)plt.show() 四、代码整合 import numpy as np import matplotlib.pyplot as plt from scipy.stats import multivariate_normal from sklearn.datasets import load_irisDEBUG Truedef debug(*args, **kwargs):global DEBUGif DEBUG:print(*args, **kwargs)def phi(Y, mu_k, cov_k):# Check for and handle infinite or NaN values in Ynorm multivariate_normal(meanmu_k, covcov_k)return norm.pdf(Y)def getExpectation(Y, mu, cov, alpha):N Y.shape[0]K alpha.shape[0]assert N 1, There must be more than one sample!assert K 1, There must be more than one gaussian model!gamma np.mat(np.zeros((N, K)))prob np.zeros((N, K))for k in range(K):prob[:, k] phi(Y, mu[k], cov[k]) * alpha[k]prob np.mat(prob)for k in range(K):gamma[:, k] prob[:, k] / np.sum(prob, axis1)return gammadef maximize(Y, gamma):N, D Y.shapeK gamma.shape[1]mu np.zeros((K, D))cov []alpha np.zeros(K)for k in range(K):Nk np.sum(gamma[:, k])mu[k, :] np.sum(np.multiply(Y, gamma[:, k]), axis0) / Nkdiff Y - mu[k]cov_k np.dot(diff.T, np.multiply(diff, gamma[:, k])) / Nkcov_k 1e-6 * np.identity(D) # Adding a small value to the diagonal for stabilitycov.append(cov_k)alpha[k] Nk / Ncov np.array(cov)return mu, cov, alphadef scale_data(Y):for i in range(Y.shape[1]):max_ Y[:, i].max()min_ Y[:, i].min()Y[:, i] (Y[:, i] - min_) / (max_ - min_)debug(Data scaled.)return Ydef init_params(shape, K):N, D shapemu np.random.rand(K, D)cov np.array([np.eye(D)] * K)alpha np.array([1.0 / K] * K)debug(Parameters initialized.)debug(mu:, mu, cov:, cov, alpha:, alpha, sep\n)return mu, cov, alphadef GMM_EM(Y, K, times):Y scale_data(Y)mu, cov, alpha init_params(Y.shape, K)for i in range(times):gamma getExpectation(Y, mu, cov, alpha)mu, cov, alpha maximize(Y, gamma)debug({sep} Result {sep}.format(sep- * 20))debug(mu:, mu, cov:, cov, alpha:, alpha, sep\n)return mu, cov, alphaif __name__ __main__:# Load Iris datasetiris load_iris()Y iris.data# Model parametersK 3 # number of clustersiterations 100# Run GMM EM algorithmmu, cov, alpha GMM_EM(Y, K, iterations)# Clustering based on the trained modelN Y.shape[0]gamma getExpectation(Y, mu, cov, alpha)category gamma.argmax(axis1).flatten().tolist()[0]# Plotting the resultsfor i in range(K):cluster_data np.array([Y[j] for j in range(N) if category[j] i])plt.scatter(cluster_data[:, 0], cluster_data[:, 1], labelfCluster {i 1})plt.legend()plt.title(GMM Clustering By EM Algorithm)plt.xlabel(Feature 1)plt.ylabel(Feature 2)plt.show()
http://www.dnsts.com.cn/news/188684.html

相关文章:

  • 石家庄建立网站汉川市城乡建设局网站
  • 百度上公司做网站网站搭建设计 是什么意思
  • 厦门市住宅建设办公室网站南浔做网站
  • 网站设计摘要 优帮云百度保障中心人工电话
  • 网站建设平台硬件要求深圳住建招标网官网
  • 营销型网站建设哪家专业深圳网站制作大运软件小镇
  • 优化网站链接的方法网站建设公司广东
  • 完全免费网站源码企业网站推广的一般策略
  • 松岗做网站公司wordpress安装提示500错误
  • 重庆龙华网站建设公司建网站需要买服务器吗
  • 深圳网站优化最好的方法公司网站制作费计入会计什么科目
  • 有模版之后怎么做网站有没有免费装修设计的网站
  • 汽车设计网站转团关系必须用电脑吗
  • 珠海专业网站建设公司哪个网站是专门做兼职的
  • 二级域名如何绑定网站做网站 域名 网站 空间
  • 求职网站网页模板网站建设 销售
  • 湖州本地做网站在线教育类网站模板
  • 奇迹网站架设视频网站建设php文件放哪里
  • 网站外链建设的15个小技巧西青做网站公司
  • 外贸网站建设制作崇明建设镇虹桥村网站
  • seo优化网站词专业建站网站服务
  • 领先的手机网站设计公司简介模板怎么做
  • 公众号做电影网站赚钱海北公司网站建设多少钱
  • 聚牛网站建设公司html结构代码
  • 常州网站建设专业的公司微信公众号买卖平台
  • 如何做网站 写代码建站上市公司
  • 做网站赚钱多吗电脑网页版
  • 石家庄新钥匙建站建设营销网站
  • 重庆网站模板平台建设建设一个网站需要哪些费用
  • 学校网站建设团队网站建设技术发展趋势预测