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

网站建设与管理专业课程/公司网站怎么建立

网站建设与管理专业课程,公司网站怎么建立,网站模板flash,支持微信支付的网站开发一、教程说明 EM算法就是expect maxmise算法,就是“期望最大化”的缩写。本篇首先提出:1 什么是期望? 2 期望最大化是个啥意思?k-mean聚类中如何用EM算法? 所涉及的概念: 期望 期望的加权平均理解 概率…

一、教程说明

        EM算法就是expect maxmise算法,就是“期望最大化”的缩写。本篇首先提出:1 什么是期望? 2 期望最大化是个啥意思?k-mean聚类中如何用EM算法? 

所涉及的概念:

  1.   期望
  2.   期望的加权平均理解
  3.   概率模型和统计模型
  4.   期望最大化
  5.   k-mean算法的原理

二、什么是期望?

2.1 从一个思想实验入门

        在回答这个概念之前,我们可以做一个思想实验。

        假如:我们这里有一枚六面骰子

        1)每次掷出“1”奖励一块钱,那么掷出100次,您能得到几块钱?

        我们很容易想到:掷出100次,获得“1”的次数大约100/6次,每次的1块,总数大约1×100/6 =16.6元。故IN _{come}= 16.6

        2)如果每次掷出“1”奖励一块钱,每掷出“2”奖励三元,那么掷出100次,您能得到几块钱?

        100次掷出,得到“2”的可能次数为100/6, 每次奖励3块,那么总的收益数为:

IN_{come} = \frac{100}{6}\times 1 + \frac{100}{6}\times 3 = 66.6

         3)更一般地,我们给出一个收益函数,那么,掷出100次后,总的收益是多少?

        给出收益函数:

        F = [ 1, 3, 0,-2, 4,-1 ]

        给出概率模型:

        R = [ 1/6, 1/6, 1/6, 1/6, 1/6, 1/6]

        那么,抛掷100次后,总的收益就是期望,它的公式为:

E(F)  =  <F, R >                     期望就是收益函数和概率模型的内积!

  • 掷出100次的获益(期望):

E = 100 < F, R > =100(1 \times \frac{1}{6} + 3 \times \frac{1}{6} + 0\times \frac{1}{6} + (-2)\times \frac{1}{6} + 4 \times \frac{1}{6} + (-1) \times \frac{1}{6} ) = 83

  •  掷出1 次的获益(期望)

E = < F, R > = (1 \times \frac{1}{6} + 3 \times \frac{1}{6} + 0\times \frac{1}{6} + (-2)\times \frac{1}{6} + 4 \times \frac{1}{6} + (-1) \times \frac{1}{6} ) =0.83

        结论:期望就是收益函数和概率模型的内积!此内积表示概率作用下的总收益。

 2.2 改变概率模型

        将上面的概率模型是:R = [ 1/6, 1/6, 1/6, 1/6, 1/6, 1/6]将其改成其它模型:

R = [ 0,1, 0.2, 0.1, 0.3, 0.1, 0.1, 0.1 ]

        期望可以如法炮制:

E = < F, R > = (1 \times \frac{1}{10} + 3 \times \frac{2}{10} + 0\times \frac{3}{10} + (-2)\times \frac{1}{10} + 4 \times \frac{1}{10} + (-1) \times \frac{1}{10} ) =0.8

        结论: 期望就是对“多路贡献”的加权平均。加权平均就是“多路贡献”的总贡献。

2.3 给期望一个定义

  • 所谓期望,就是一个收益函数与一个概率分布模型的内积。
  • 所谓期望就是在一个收益函数上施加概率模型,最终获益的总量。
  • 所谓期望,就是一个收益函数,在一个概率模型下的收益的概率平均(或加权平均)。

        注意:将收益函数赋予其它意义,期望还能有其它意义。

三、期望的几何意义

     我们看这里是教材对期望的定义:     

在这里插入图片描述

这个定义是否与上述的“收益函数”有矛盾?答曰“没有”,因为这里只要将“收益函数”定义为:

 F = X 就可以了。问题是这种期望有啥意义?

        期望的几何意义:一组数据的概率加权平均,或叫中心点,或叫重心。

四、期望的最大化原理(EM)

        引理:如果一组数据符合统计规律,那么这组数据能和理论上的一个概率模型对应。

 上图假定有两组数据,符合统计规律,且给出4个均匀分布概率模型。问两组数据分别和哪个理论模型匹配?

分别做内积:

组1和【1-4】期望:   【1,2,3,4】* 【1/4,1/4,1/4,1/4 】 = 2.5

组1和【2-5】期望:   【1,2,3,4,0】* 【0,1/4,1/4,1/4,1/4】 = 2.25

组1和【1-6】期望:   【1,2,3,4,0,0】* 【1/6,1/6,1/6,1/6,1/6,1/6】 =  1.666

因此:组1和【1-4】期望最大,说明组1和该分布最匹配。

组2和【12-17】的期望: 【12,13,14,15,16,17】* 【1/6,1/6,1/6,1/6,1/6,1/6】=14.5

结论:当一组数与一个概率模型匹配,那么它们的内积(期望)最大的。这就是期望最大原理。

五、K-mean算法原理

5.1 算法简要描述

kmeans的计算方法如下:

1  对于一组数据,我们假定需要将它们分成K 个类

2  随机选取k个中心点(期望)作为初始概率模型的位置(聚类重心)。

3  我们假设分类是合理的,遍历所有数据点,通过距离模型,将他们归到指定的概率模型中。

4  从以上的归类中,计算各分类的期望(平均值),修改聚类重心。并重新修改验证分类的合理性,并最近的中心点中。

5 重复3-4,直到这k个中心点不再变化(收敛了),或执行了足够多的迭代.


5.2 举个实际例子

给出如下数据集: Data =  {2,3,4,10,11, 12,20,25,30 }

我们假定k=2(就是要分成两类)

随机给出两个点c1 = 9,c2=10,作为两个聚类中心(期望)

数据集(坐标)到c1距离到c2距离距离比较最后归类
278<c1
367<c1
456<c1
1010>c2
1121>c2
1232>c2
201110>c2
251615>c2
302120>c2

累计上表c1的数据平均 = (2+3+4 )/3 = 3

累计上表c2的数据平均 = (10+11+12+20+25+30)/6 =  18

数据集(坐标)到c1距离到c2距离距离比较最后归类
2116<c1
3015<c1
4114<c1
1078<c1
1187>c2
1296>c2
20172>c2
25227>c2
302712>c2

累计上表c1的数据平均 = (2+3+4+10)/4 = 4.75

累计上表c2的数据平均 = (11+12+20+25+30)/5 =  19.6

数据集(坐标)到c1距离到c2距离距离比较最后归类
22.7517.6<c1
31.7516.6<c1
40.7515.6<c1
105.259.6<c1
116.258.6<c1
127.257.6<c1
2015.250.4>c2
2520.255.4>c2
3025.2515.4>c2

最后c1,c2无变化,算法停止,聚类结束!

六、概率模型和统计模型的关系

两者关系

  • 不同点:概率模型从理论出发,描述数据。统计模型是从数据触发,获得理论参数。
  • 共同点,两者都指向同一组数据,如果高度匹配,能使算法收敛。

七、代码实现

# -*- coding: utf-8 -*-import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import randomdata = [
[ 0.697,0.46],[ 0.774,0.376],[ 0.634,0.264],[ 0.608,0.318],
[ 0.556,0.215],[ 0.403,0.237],[ 0.481,0.149],[ 0.437,0.211],
[ 0.666,0.091],[ 0.243,0.267],[ 0.245,0.057],[ 0.343,0.099],
[ 0.639,0.161],[ 0.657,0.198],[ 0.36,0.37],[ 0.593,0.042],
[ 0.719,0.103],[ 0.359,0.188],[ 0.339,0.241],[ 0.282,0.257],
[ 0.784,0.232],[ 0.714,0.346],[ 0.483,0.312],[ 0.478,0.437],
[ 0.525,0.369],[ 0.751,0.489],[ 0.532,0.472],[ 0.473,0.376],
[ 0.725,0.445],[ 0.446,0.459]]# filepath = open('S:/机器学习-周志华/西瓜数据集4.0.csv')
# data = pd.read_csv(filepath, sep=',')[["密度", "含糖率"]].values.tolist()  # tolist:ndarray转换为listk = 3  # K值设置,3,4
mean_vectors = random.sample(data, k)  # 初始化均值向量,随机K个
print(mean_vectors)
x0 = list(map(lambda arr: arr[0], mean_vectors))
y0 = list(map(lambda arr: arr[1], mean_vectors))
# 将初试的均值向量用红色的方块表示出
plt.scatter( x0, y0, c='r', marker=',' )# 计算欧式距离
def Distance(p1, p2):sum = 0for i, j in zip(p1, p2):sum = sum + (i - j) ** 2return np.sqrt(sum)time = 0  # 循环次数
clusters = []  # 聚类初始化
while time < 100:  # 循环次数限制clusters = list(map((lambda x: [x]), mean_vectors))print(clusters)change = 1for sample in data:dist = []for j in mean_vectors:dist.append(Distance(j, sample))clusters[dist.index(min(dist))].append(sample)new_mean_vectors = []for c, v in zip(clusters, mean_vectors):c_num = len(c)c_array = np.array(c)v_array = np.array(v)new_mean_vector = sum(c_array) / c_num# if all(np.divide((new_mean_vector - v), v) < np.array([0.0001, 0.0001])):if all(np.true_divide((new_mean_vector - v_array), v_array) < np.array([0.0001, 0.0001])):new_mean_vectors.append(v)  # 不变change = 0else:new_mean_vectors.append(new_mean_vector.tolist())  # 更新if change == 1:mean_vectors = new_mean_vectorselse:breaktime = time + 1# Show the clustering resultx1 = list(map(lambda arr: arr[0], clusters[0]))
y1 = list(map(lambda arr: arr[1], clusters[0]))
x2 = list(map(lambda arr: arr[0], clusters[1]))
y2 = list(map(lambda arr: arr[1], clusters[1]))
x3 = list(map(lambda arr: arr[0], clusters[2]))
y3 = list(map(lambda arr: arr[1], clusters[2]))
# x4 = list(map(lambda arr: arr[0], clusters[3]))
# y4 = list(map(lambda arr: arr[1], clusters[3]))
# x5 = list(map(lambda arr: arr[0], clusters[4]))
# y5 = list(map(lambda arr: arr[1], clusters[4]))
plt.scatter(x1, y1, c='y', marker='x', label='class1')
plt.scatter(x2, y2, c='g', marker='^', label='class2')
plt.scatter(x3, y3, c='blue', marker='*', label='class3')
# plt.scatter(x4, y4, c='black', marker='+', label='class4')plt.xlabel('density')
plt.ylabel('sugar_content')
plt.show()

八、 总结

        本讲从收益函数的期望入手,让大家直观理解“期望”就是收益函数的总和,这里注意,期望是两个函数的内积。

        当将收益函数看成是数据的坐标,其几何意义就是数据中心位置。

        加权平均是对期望的另外一个观点。

        期望最大化,是指数据模型和某个概率分布的吻合度,越吻合,期望值越大。

        概率模型和统计模型交互搭配,达到自动迭代运算,并用距离衡量其收敛性。

   

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

相关文章:

  • 怎么自己做网站卖东西/百度指数怎么查询
  • 手机怎么搭建网站源码/可以商用的电视app永久软件
  • 山西网络公司网站建设/站长推荐入口自动跳转
  • 品牌网站建设特色/友链提交入口
  • 创意宣传片制作/seo外贸推广
  • 基于站点的推广/全球搜钻
  • 万江仿做网站/西安seo服务商
  • 广州开发小程序/seo的公司排名
  • 外国网站邀请做编辑/如何给网站做推广
  • 做网站怎么让字居右/百度搜索一下
  • wordpress主题离线编辑/seo是什么意思 为什么要做seo
  • 广西上林县住房城乡建设网站/重庆疫情最新情况
  • 网站描文本怎么做/网站seo关键词排名推广
  • 电商网站如何做优化/免费建网站软件下载
  • 做一个网站的价钱/深圳seo网络推广
  • 浙江建设报名网站/一键制作网站
  • 专业手机网站建设哪家好/推推蛙seo顾问
  • 南京做企业网站公司哪家好/免费网页制作成品
  • 重庆万州网站建设费用/自助建站系统破解版
  • 怎样做简易局域网站点/百度指数手机版
  • 做网站客服的工作流程/bt磁力链好用的引擎
  • 做外贸建网站多少钱/上海空气中检测出病毒
  • 公司官网网站建设想法/网站生成
  • 网易企业邮箱价格/山东网站seo
  • 设计服务网络建设方案/优化网站排名
  • 西安企业网站建设/网站统计分析工具的主要功能
  • 怎么做原创电影视频网站/百度seo排名优化是什么
  • 北京网站开发公司电话/推广产品引流的最佳方法
  • 提供网站建设商家/推广优化厂商联系方式
  • 厦门市网站建设公司/seo优化推广流程