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

学校网站建设汇报ppt/手机网页设计

学校网站建设汇报ppt,手机网页设计,网站建设论文文献,wordpress 文章分栏EM 算法相当于一个框架,可以采用不同的模型来进行聚类,比如 GMM(高斯混合模型),或者 HMM(隐马尔科夫模型)来进行聚类。GMM 是通过概率密度来进行聚类,聚成的类符合高斯分布&#xff…

EM 算法相当于一个框架,可以采用不同的模型来进行聚类,比如 GMM(高斯混合模型),或者 HMM(隐马尔科夫模型)来进行聚类。GMM 是通过概率密度来进行聚类,聚成的类符合高斯分布(正态分布)。而 HMM 用到了马尔可夫过程,在这个过程中,通过状态转移矩阵来计算状态转移的概率。HMM 在自然语言处理和语音识别领域中有广泛的应用。

EM 有两个步骤,E 步和 M 步:E 步相当于通过初始化的参数来估计隐含变量,M 步是通过隐含变量来反推优化参数。最后通过 EM 步骤的迭代得到最终的模型参数。

创建 GMM 聚类

from sklearn.mixture import GaussianMixture
gmm = GaussianMixture(n_components=1, covariance_type='full', max_iter=100)

1、n_components:即高斯混合模型的个数,也就是要聚类的个数,默认值为 1。如果不指定 n_components,最终的聚类结果都会为同一个值。

2、covariance_type:代表协方差类型。一个高斯混合模型的分布是由均值向量和协方差矩阵决定的,所以协方差的类型也代表了不同的高斯混合模型的特征。协方差类型有 4 种取值:

  • covariance_type=full,代表完全协方差,也就是元素都不为 0;
  • covariance_type=tied,代表相同的完全协方差;
  • covariance_type=diag,代表对角协方差,也就是对角不为 0,其余为 0;
  • covariance_type=spherical,代表球面协方差,非对角为 0,对角完全相同,呈现球面的特性。

3、max_iter:代表最大迭代次数,EM 算法是由 E 步和 M 步迭代求得最终的模型参数,这里可以指定最大迭代次数,默认值为 100。

用 EM 算法对王者荣耀数据进行聚类

数据

import pandas as pd
import csv
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.mixture import GaussianMixture
from sklearn.preprocessing import StandardScaler# 数据加载,避免中文乱码问题
data_ori = pd.read_csv('./heros7.csv', encoding = 'gb18030')
features = [u'最大生命',u'生命成长',u'初始生命',u'最大法力', u'法力成长',u'初始法力',u'最高物攻',u'物攻成长',u'初始物攻',u'最大物防',u'物防成长',u'初始物防', u'最大每5秒回血', u'每5秒回血成长', u'初始每5秒回血', u'最大每5秒回蓝', u'每5秒回蓝成长', u'初始每5秒回蓝', u'最大攻速', u'攻击范围']
data = data_ori[features]# 对英雄属性之间的关系进行可视化分析
# 设置plt正确显示中文
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
# 用热力图呈现features_mean字段之间的相关性
corr = data[features].corr()
plt.figure(figsize=(14,14))
# annot=True显示每个方格的数据
sns.heatmap(corr, annot=True)
plt.show()# 相关性大的属性保留一个,因此可以对属性进行降维
features_remain = [u'最大生命', u'初始生命', u'最大法力', u'最高物攻', u'初始物攻', u'最大物防', u'初始物防', u'最大每5秒回血', u'最大每5秒回蓝', u'初始每5秒回蓝', u'最大攻速', u'攻击范围']
data = data_ori[features_remain].copy()
# “最大攻速”这个属性值是百分数,不适合做矩阵运算,因此需要将百分数转化为小数
data[u'最大攻速'] = data[u'最大攻速'].apply(lambda x: float(x.strip('%'))/100)
# “攻击范围”这个字段的取值为远程或者近战,不适合矩阵运算,将取值做个映射,用 1 代表远程,0 代表近战。
data[u'攻击范围'] = data[u'攻击范围'].map({'远程':1,'近战':0})
# 采用Z-Score规范化数据,保证每个特征维度的数据均值为0,方差为1
ss = StandardScaler()
data = ss.fit_transform(data)
# 构造GMM聚类
gmm = GaussianMixture(n_components=30, covariance_type='full')
gmm.fit(data)
# 训练数据
prediction = gmm.predict(data)
print(prediction)
# 将分组结果输出到CSV文件中
data_ori.insert(0, '分组', prediction)
data_ori.to_csv('./hero_out.csv', index=False, sep=',')

聚类和分类不一样,聚类是无监督的学习方式,也就是没有实际的结果可以进行比对,所以聚类的结果评估不像分类准确率一样直观,可以采用 Calinski-Harabaz 指标进行评估:

from sklearn.metrics import calinski_harabasz_score
print(calinski_harabasz_score(data, prediction))

指标分数越高,代表聚类效果越好,也就是相同类中的差异性小,不同类之间的差异性大。当然具体聚类的结果含义,需要人工来分析。

另外聚类算法也可以作为其他数据挖掘算法的预处理阶段,这样就可以将数据进行降维。

http://www.jmfq.cn/news/5269051.html

相关文章:

  • 网站分级怎么做/商品推广软文写作500字
  • 买高端品牌网站建设/百度的广告
  • 网络科技公司网站/怎么样引流加微信
  • jeecms做企业网站/滁州网站seo
  • 网页设计软件h/免费seo关键词优化服务
  • 上哪儿找做网站/百度如何注册公司网站
  • 手机版网站模板 免费下载/旺道seo推广有用吗
  • 移动端网站怎么做/厦门搜索引擎优化
  • 铜陵seo/上海关键词排名优化怎样
  • wordpress快速发文插件/微信小程序排名关键词优化
  • 独立网站怎么做seo/seo关键词首页排名
  • 网站怎么做精准引流/1688关键词怎么优化
  • 中国做外贸最好的网站/百度一下了你就知道官网
  • 自己搭建视频播放网站/东莞百度快速优化排名
  • wordpress 购物 插件下载/长沙seo免费诊断
  • 可登录的网站有哪些/怎么免费创建个人网站
  • 宁德营销型网站建设/品牌策划公司排名
  • 做网站单位/网站提交入口链接
  • 阿里巴巴国际站官网网页版/怎么做网络推广最有效
  • 江苏专业做网站的公司/qq推广链接生成
  • 手机怎么安装网站程序/seo网站建设公司
  • 高端的网站建设/国通快速建站
  • 山东郓城网站建设/哪个平台可以免费发广告
  • 上海市政府官网公告/刷关键词排名seo
  • 马云做一网站 只作一次/友情链接举例
  • 丽水企业网站建设公司/百度网站网址是多少
  • 网站建设企业排名推广/5188关键词挖掘工具
  • 自己怎样免费建设网站/站长工具seo综合查询怎么使用的
  • 做移动网站点击软件/体验式营销经典案例
  • 门户网站域名是什么/信息流广告的特点