开发者社区> 韩曙亮> 正文

【数据挖掘】高斯混合模型 ( 高斯混合模型参数 | 高斯混合模型评分函数 | 似然函数 | 生成模型法 | 对数似然函数 | 高斯混合模型方法步骤 )

简介: 【数据挖掘】高斯混合模型 ( 高斯混合模型参数 | 高斯混合模型评分函数 | 似然函数 | 生成模型法 | 对数似然函数 | 高斯混合模型方法步骤 )
+关注继续查看

文章目录

I . 高斯混合模型 参数简介 ( 参数 )

II . 高斯混合模型 评分函数 ( 评价参数 )

III. 似然函数与参数

IV . 生成模型法

V . 对数似然函数

VI . 高斯混合模型方法 步骤



I . 高斯混合模型 参数简介 ( 参数 )


1 . 模型 与 参数 : 高斯混合模型 概率密度函数 :



p ( x ) = ∑ i = 1 k ω i g ( x ∣ μ i , Σ i ) p(x) = \sum_{i = 1}^k \omega_i g ( x | \mu_i , \Sigma_i )

p(x)=

i=1

k


ω

i


g(x∣μ

i


i


)



模型结构已知 , 即 高斯混合模型 , 需要根据已知的数据样本 , 学习出模型的参数 ;



2 . 高斯混合模型 参数个数 :



① 聚类个数 ( 高斯模型个数 ) : 每个高斯混合模型 都由 k kk 个高斯模型 ( 组件 ) 线性叠加组成的 ;


② 高斯模型参数 : 每个高斯模型 都有两个参数 , 即 均值 μ i \mu_iμ

i


 , 方差 Σ i \Sigma_iΣ

i


 ;


③ 样本属于聚类分组概率 ( 系数 ) : 每个高斯模型 还有一个系数参数 , ω i \omega_iω

i


 表示该 x xx 样本由第 i ii 个 高斯分布 ( 组件 ) 生成的概率 , 也就是 该样本被指派到某个聚类的概率 ;


④ 每个高斯模型相关参数个数 : k kk 个 高斯模型 , 每个高斯模型有 均值 μ i \mu_iμ

i


 , 方差 Σ i \Sigma_iΣ

i


 , 生成概率 ω i \omega_iω

i


 等 3 33个参数 ;


⑤ 高斯混合模型参数个数 : 整个 高斯混合模型 有 3 × k 3 \times k3×k 个参数 , k kk 是聚类分组个数 , 也是高斯模型个数 , 正态分布个数 ;



Σ i \Sigma_iΣ

i


 此处方差表示 , 是大写的希腊字母 sigma σ \sigmaσ , 注意与加和符号 ∑ \sum∑ 区分 ;



K-Means 方法中 , 有 k kk 个参数 , 每个聚类分组 , 只有一个参数 , 即中心点样本参数 ;




II . 高斯混合模型 评分函数 ( 评价参数 )


高斯混合模型 评分函数 :



评价参数 : 为 高斯混合模型 学习训练出的 参数 , 需要 评分函数 来 对参数进行评价 , 评分函数取值 最大 时 , 该 参数是最优参数 ;


似然函数 : 高斯混合模型 中 , 采用似然函数 , 作为评分函数 ;



E = ∏ j = 1 n p ( x j ) E = \prod_{j = 1} ^ n p(x_j)

E=

j=1

n


p(x

j


)



∏ \prod∏ 是多个乘积 , 与 ∑ \sum∑ 多个加和性质类似 ;


n nn 表示数据集中样本个数 ;


x j x_jx

j


 表示数据样本对象 , 被聚类的样本点 ;


p ( x j ) p(x_j)p(x

j


) 表示高斯混合模型中 , x j x_jx

j


 生成的概率 , 也就是 x j x_jx

j


 被分为某个聚类分组的概率 ;



评分函数 ( 似然函数 ) 取值最大时 , 高斯混合模型 的参数最佳 , 使用该 高斯混合模型 , 和对应的 概率 ω i \omega_iω

i


 , 均值 μ i \mu_iμ

i


 , 方差 Σ i \Sigma_iΣ

i


 参数 生成样本数据时 , 与真实的数据集样本 相似的概率最大 ;




III. 似然函数与参数


似然函数 与 参数 :



① 模型生成 样本 概率 : 如果模型参数非常好 , x j x_jx

j


 生成的概率 , 也就是 x j x_jx

j


 属于某个聚类分组的概率是 100 % 100\%100% , 此时 p ( x j ) = 1 p(x_j) = 1p(x

j


)=1 ; 如果 x j x_jx

j


 属于某个聚类分组的概率是 73 % 73\%73% , 此时 p ( x j ) = 0.73 p(x_j) = 0.73p(x

j


)=0.73


② 最佳概率 : 极限情况下 , 所有的样本属于某个聚类分组的概率都是 100 % 100\%100% , 每个 p ( x j ) = 1 p(x_j) = 1p(x

j


)=1 , n nn 个 p ( x j ) p(x_j)p(x

j


) 相乘也是 1 11 , 该似然函数取值为 1 11 是理论情况的最佳值 ;


③ 最大似然 : 该似然函数的本质是将每个对象属于某聚类分组的概率相乘 , E EE 越接近于 1 11 , 参数效果越好 , 此时的 E EE 称为最大似然 ;




IV . 生成模型法


生成模型法 : 先不看真实数据 , 先用 模型 ( 参数已经训练好 ) 生成数据 , 希望这个模型生成的数据 , 与真实数据是完全相同的 , 如果生成的数据 , 与真实的数据 , 全部完全相同 , 那么分析似然函数的


E = ∏ j = 1 n p ( x j ) E = \prod_{j = 1} ^ n p(x_j)

E=

j=1

n


p(x

j


)


乘积 , 其中 p ( x j ) = 1 p(x_j) = 1p(x

j


)=1 , 似然函数 计算过程 就是 n nn 个 1 11 相乘 , 其结果是 1 11 ;



但是实际结果肯定不是这样的 , 每个样本的概率 p ( x j ) p(x_j)p(x

j


) 可能是 0.9 0.90.9 , 0.5 0.50.5 , 0.01 0.010.01 , 这样 乘起来 值就非常小了 , 参数 和 模型 的 评价结果就是这个最终的乘积越大 , 模型 和 参数 越好 ;




V . 对数似然函数


1 . 似然函数 :

E = ∏ j = 1 n p ( x j ) E = \prod_{j = 1} ^ n p(x_j)

E=

j=1

n


p(x

j


)

是多个 p ( x j ) p(x_j)p(x

j


) 相乘 , 每个 p ( x j ) p(x_j)p(x

j


) 值都是小于 1 11 的数 , 多个小于 1 11 的数值相乘 , E EE 的最终计算的值非常小 , 不利于统计计算 ;




2 . 对数运算法则 :



① 两个正数之积的对数 , 等于两个正数对数之和 ;


l o g a ( M × N ) = l o g a M + l o g a N log_a ( M \times N ) = log_a M + log_a N

log

a


(M×N)=log

a


M+log

a


N



② 两个正数相除的对数 , 等于两个正数对数相减 ;


l o g a ( M N ) = l o g a M − l o g a N log_a ( \frac{M}{N}) = log_a M- log_a N

log

a


(

N

M


)=log

a


M−log

a


N




3 . 对数似然函数 : 对上述似然函数取对数 , 就可以将 成绩 ∏ \prod∏ 变成 求和 ∑ \sum∑ 形式 ;



F = l o g E = l o g ( ∏ j = 1 n p ( x j ) )

F


 

=

 

logE=log(∏

j=1

n


p(x

j


))


F = ∑ j = 1 n l o g p ( x j ) F = \sum_{j=1}^n logp(x_j)

F=

j=1

n


logp(x

j


)


该函数就是对数似然函数 ;



4 . 对数函数 最大值 :



① 无法使用导数 : 对数函数是求和的操作 , 因此该函数无法使用导数方式求最大值 ;


② 迭代求最大值 : 采用逐次迭代 , 的方式求最大值 , 与 K-Means 方法类似 ;


③ 第一次迭代的参数值 : k kk 个 概率 ω i \omega_iω

i


 , 均值 μ i \mu_iμ

i


 , 方差 Σ i \Sigma_iΣ

i


 参数 , 任意选取 , 随便给出 ;


④ 逐次迭代 : 每次迭代 , 逐步优化这些参数值 , 使 对数似然函数 取值越来越大 ;


⑤ 最佳参数 : 当 对数似然函数 取最大值时 , 此时的参数就是最优参数 ;




VI . 高斯混合模型方法 步骤


1 . 参数初始值设置 :



① 初始状态 ( 第一次迭代 ) : 先给出 k kk 组参数的初始值 , 每组参数由 概率 ω i \omega_iω

i


 , 均值 μ i \mu_iμ

i


 , 方差 Σ i \Sigma_iΣ

i


 组成 , 参数个数是 3 × k 3 \times k3×k 个 ;


② 聚类分组个数 : k kk 指的是聚类分组的个数 ;


③ 概率 ω i \omega_iω

i


 参数 : 指样本属于某组聚类的概率 ;


④ 均值 μ i \mu_iμ

i


 参数 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 均值参数 ;


⑤ 方差 Σ i \Sigma_iΣ

i


 参数 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 方差参数 ;




2 . 计算概率 :



数据集和分组情况 : 数据集有 n nn 个对象 , 将这 n nn 个对象分成 k kk 个聚类分组 ;


计算的概率 : 这里需要计算每个对象 x j   ( 1 ≤ j ≤ n ) x_j \, (1 \leq j \leq n)x

j


(1≤j≤n) 属于每个聚类 C i   ( 1 ≤ i ≤ k ) C_i \, (1 \leq i \leq k)C

i


(1≤i≤k) 的概率 , 需要计算 n × k n \times kn×k 次概率 ;


概率说明 : x j   ( 1 ≤ j ≤ n ) x_j \, (1 \leq j \leq n)x

j


(1≤j≤n) 属于 聚类 C i   ( 1 ≤ i ≤ k ) C_i \, (1 \leq i \leq k)C

i


(1≤i≤k) 的概率 , 反过来说 , 就是 x j x_jx

j


 样本对象 由 C i C_iC

i


 聚类分组对应的 高斯分布 生成的概率 ;


计算公式 :



p ( x i ∈ C i ) = ω i g ( x ∣ μ i , Σ i ) ∑ i = 1 k   ω i g ( x ∣ μ i , Σ i ) p(x_i \in C_i) = \dfrac{\omega_i g ( x | \mu_i , \Sigma_i )}{ \sum_{i=1}^{k} \, \omega_i g ( x | \mu_i , \Sigma_i ) }

p(x

i


∈C

i


)=

i=1

k


ω

i


g(x∣μ

i


i


)

ω

i


g(x∣μ

i


i


)




如果本次迭代是第一次迭代 , 那么上述式子中的参数采用 初始参数设置的值 ;


如果本次迭代不是第一次迭代 , 那么采用上一次迭代得到的参数 值 ;




3 . 计算参数值 : 计算 概率 ω i \omega_iω

i


 , 均值 μ i \mu_iμ

i


 , 方差 Σ i \Sigma_iΣ

i


 参数 ;



① 概率 ω i \omega_iω

i


 参数计算公式 : 指样本属于某组聚类的概率 ;



ω i = n i n \omega_i = \frac{n_i}{n}

ω

i


=

n

n

i





② 均值 μ i \mu_iμ

i


 参数计算公式 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 均值参数 ;



μ i = 1 n i ∑ j = 1 n p ( x j ∈ C i ) x j \mu_i = \frac{1}{n_i} \sum_{j=1} ^n p(x_j \in C_i) x_j

μ

i


=

n

i


1


 

j=1

n


p(x

j


∈C

i


)x

j




③ 方差 Σ i \Sigma_iΣ

i


 参数计算公式 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 方差参数 ;



μ i = 1 n i ∑ j = 1 n p ( x j ∈ C i )   ( x j − μ i ) ( x j − μ i ) T \mu_i = \frac{1}{n_i} \sum_{j=1} ^n p(x_j \in C_i) \,( x_j - \mu_i ) ( x_j - \mu_i ) ^T

μ

i


=

n

i


1


 

j=1

n


p(x

j


∈C

i


)(x

j


−μ

i


)(x

j


−μ

i


)

T





迭代执行 2 , 3 操作 , 直到评分函数达到最大值 ;


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
webapi token、参数签名是如何生成的
一个问题 在这里我想问大家一句,如果你向一个刚刚接触.net web后端程序开发的同学(别人刚刚也就学了webform的request,response,会提交表单的这种刚接触不久的同学),你怎么去解释标题“webapi token验证”。
1753 0
微信公众平台----带参数二维码生成和扫描事件
原文:微信公众平台----带参数二维码生成和扫描事件 摘要: 账号管理----生成带参数的二维码 消息管理----接收消息----接收事件推送 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。
2150 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18199 0
微信公众平台开发(83) 生成带参数二维码
本文介绍在微信公众平台上如何使用高级接口开发生成带参数二维码的功能。   一、场景二维码 为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。
1124 0
微信开发生成带参数的二维码的讲解
生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微信公众号上
22 0
微信公众平台开发文档 生成带参数的二维码
为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。 目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000)。
965 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24880 0
+关注
韩曙亮
专注 Android 领域
2605
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载