机器学习笔记 - 21. 主题模型LDA(讲师:邹博)

主题模型

只是看结论没那么复杂,但是理论依据相对麻烦。
如图,LDA的粗略示意图,即如何根据X从隐变量推出Z的分布。
严格意义来说,下面的示意图,是一个贝叶斯网络,只是LDA属于贝叶斯网络。LDA是一个三层的贝叶斯网络


2019-02-08 11_35_46-【邹博_chinahadoop】机器学习升级版VII(七).png

问答
问:对于模型评估的时候,如果是有监督模型,y_hat, y_true是多类别的,如何把他们的ROC_AUC(只能画二分类的)的曲线画到同一个图上面?
答:邹博之前的课件,有根据鸢尾花数据,绘制出ROC曲线的示例
找了一下代码,找到车辆接受情况的例子,代码中包括了二分类与多分类,如何绘制ROC曲线与AUC的方法:

# -*- coding:utf-8 -*-

import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegressionCV
from sklearn import metrics
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
import matplotlib as mpl
import matplotlib.pyplot as plt


if __name__ == '__main__':
    pd.set_option('display.width', 300)
    pd.set_option('display.max_columns', 300)

    data = pd.read_csv('car.data', header=None)
    n_columns = len(data.columns)
    columns = ['buy', 'maintain', 'doors', 'persons', 'boot', 'safety', 'accept']
    new_columns = dict(list(zip(np.arange(n_columns), columns)))
    data.rename(columns=new_columns, inplace=True)
    print(data.head(10))

    # one-hot编码
    x = pd.DataFrame()
    for col in columns[:-1]:
        t = pd.get_dummies(data[col])
        t = t.rename(columns=lambda x: col+'_'+str(x))
        x = pd.concat((x, t), axis=1)
    print(x.head(10))
    # print x.columns
    y = np.array(pd.Categorical(data['accept']).codes)
    # y[y == 1] = 0
    # y[y >= 2] = 1

    x, x_test, y, y_test = train_test_split(x, y, train_size=0.7)
    clf = LogisticRegressionCV(Cs=np.logspace(-3, 4, 8), cv=5)
    clf.fit(x, y)
    print(clf.C_)
    y_hat = clf.predict(x)
    print('训练集精确度:', metrics.accuracy_score(y, y_hat))
    y_test_hat = clf.predict(x_test)
    print('测试集精确度:', metrics.accuracy_score(y_test, y_test_hat))
    n_class = len(np.unique(y))
    if n_class > 2:
        y_test_one_hot = label_binarize(y_test, classes=np.arange(n_class))
        y_test_one_hot_hat = clf.predict_proba(x_test)
        fpr, tpr, _ = metrics.roc_curve(y_test_one_hot.ravel(), y_test_one_hot_hat.ravel())
        print('Micro AUC:\t', metrics.auc(fpr, tpr))
        auc = metrics.roc_auc_score(y_test_one_hot, y_test_one_hot_hat, average='micro')
        print('Micro AUC(System):\t', auc)
        auc = metrics.roc_auc_score(y_test_one_hot, y_test_one_hot_hat, average='macro')
        print('Macro AUC:\t', auc)
    else:
        fpr, tpr, _ = metrics.roc_curve(y_test.ravel(), y_test_hat.ravel())
        print('AUC:\t', metrics.auc(fpr, tpr))
        auc = metrics.roc_auc_score(y_test, y_test_hat)
        print('AUC(System):\t', auc)

    mpl.rcParams['font.sans-serif'] = 'SimHei'
    mpl.rcParams['axes.unicode_minus'] = False
    plt.figure(figsize=(8, 7), dpi=80, facecolor='w')
    plt.plot(fpr, tpr, 'r-', lw=2, label='AUC=%.4f' % auc)
    plt.legend(loc='lower right')
    plt.xlim((-0.01, 1.02))
    plt.ylim((-0.01, 1.02))
    plt.xticks(np.arange(0, 1.1, 0.1))
    plt.yticks(np.arange(0, 1.1, 0.1))
    plt.xlabel('False Positive Rate', fontsize=14)
    plt.ylabel('True Positive Rate', fontsize=14)
    plt.grid(b=True, ls=':')
    plt.title('ROC曲线和AUC', fontsize=18)
    plt.show()

问:感觉LDA和EM很像啊,都有个中间的隐变量?
答:非常好。是这样的。
问:Z变量是隐变量还是可观测到的变量?
答:Z是可观测的,X是先验知识,采样的值,即中间部分是隐变量。
问:LDA是根据概率反推分布么?
答:不是的,贝叶斯网络是做这个的,即根据已知样本推算参数。
问:什么是贝叶斯网络?
答:贝叶斯网络的概念如下图:

2019-02-08 11_56_59-【邹博_chinahadoop】机器学习升级版VII(七).png

贝叶斯网络在几年前很重要
贝叶斯网络是挺重要的,在深度学习火之前,几乎是机器学习中最可能落地的内容。虽然目前大家主要用神经网络做落地应用,但是贝叶斯网络还是很有用的。
举例说明,任何一个节点,用一个条件概率表,可以描述这个节点所有情况。
相关数据,有些容易获取,有些不容易获取,我们把容易获取的数据,得到条件概率表,去计算未知那些节点上的条件概率表。
即Inference,推断;或者Learning,学习
2019-02-08 12_03_36-【邹博_chinahadoop】机器学习升级版VII(七).png

所以贝叶斯网络是:通过随机变量做节点,所形成的有向无环图。
而LDA就是有向无环图
问:我觉得深度学习在基础理论上的欠缺早晚会妨碍它自身的发展。
答:是的。
问:LDA: Latent Dirichlet Allocation为什么叫主题模型呢?好像和缩写不一样?
答:主题模型的简称是Topic Model,其实有很多种办法实现主题模型,比如:

  • PLSA,概率化隐主题分析: 可以用EM算法来算
  • LSI
  • SVD (奇异值分解)
  • LDA
    -- 隐狄利克雷分布,无监督学习,降维 (本节课所提的LDA,是指这个)
    -- 还有一个LDA,即线性判别分析(Linear Discriminant Analysis ),是有监督学习,降维。又名费舍尔准则

主要内容

2019-02-08 14_49_37-【邹博_chinahadoop】机器学习升级版VII(七).png

应用方向

LDA最大的特点,就是带隐变量。
凡是涉及隐变量的应用,都有可能使用LDA。
邹博强调:生物信息数据的应用,是除了图像、自然语言之外,非常有可能落地的方向。不过不见得一定用LDA,也可以使用其他算法来做。


2019-02-08 14_50_23-【邹博_chinahadoop】机器学习升级版VII(七).png

朴素贝叶斯的分析

在下一节课说它的原理,但是今天说另外一个事情。

2019-02-08 14_55_50-【邹博_chinahadoop】机器学习升级版VII(七).png

主题的基本概念

M篇文档,
D1,具有w11, w12, w13, ..., w1n1,有n1个词,记为D1n1
D2 ,具有w21, w22, w23, ..., w2n2,有n2个词,记为D2n2
...
Dm,具有wm1, wm2, wm3, ..., wmnm,有nm个词,记为Dmnm
我们将所有词拿在一起,这些词当中不出意外,总有重复的词,称为Word。
我们将不重复的词拿出来,形成一个词典:Dictionary,如果有v个不重复的词,则将词典记为:t1, t2, t3,..., tv
t为Term或Token(词项)的缩写。
回过头来看,wm1一定是词典v个Token中的某一个。
比如说w11是词典中第8个词,v的数目是1000,我们用one-hot编码,表示:
000000010000....0 (共1000个成员的向量,只有第8个成员的值是1)
w12是词典中第4个词,v的数目是1000,我们用one-hot编码,表示:
000100000000....0 (共1000个成员的向量,只有第4个成员的值是1)
如此这番,一直到n1个词,也这样通过one-hot编码表示。
因此得到n1 x v的非常稀疏的矩阵(one-hot矩阵)
同理,我们可以将D1, D2, ..., Dm都通过这样的one-hot矩阵表示出来。
所以我们现在所拿到的这些文档的维度,都是v维的。
而v的数目是1000,换句话说,就是所有文档不重复词的个数。
所以我们做自然语言处理,往往维度是很高的。
维度很高的话,就不好用,而且浓度太稀疏。
如果我们想用20列表示:

2019-02-08 15_17_02-【邹博_chinahadoop】机器学习升级版VII(七).png

这个20,其实是我们想让其降维到某一个维度上去。
比如20列,第1列记为Z1,第2列记为Z2,..., 第20列记为Z20
而这个n1 x 20的矩阵任意一行,都代表一个词,比如水杯。
降维之后,如果Z8列代表物体,Z1列代表爱情,
水杯这个词可能对应到Z8列,占了0.8的比例系数,对应到Z1列,占了0.15的比例系数,还有0.05的比例系数分布到其他18个类别。
于是长度为1000的v维的向量,映射到长度为20的向量,但是20项里面,水杯大概率属于物体这个类别,小概率属于爱情这个类别,极小概率属于其他类别。
于是我们可以总结为:我们选择了20个主题
所以我们可以将这些词,获取属于哪些主题的概率
即通过将v维降维至20之后,信息的浓度变高了
比如可以将键盘与鼠标归类到一个类别当中去。
也可以将某个词归类到多个主题,而主题就是隐变量。
比如cup这个词,归类到物体(水杯),或者体育(世界杯)多个主题
即通过主题做媒介,使得文档 -> 主题 -> 单词形成关系。

问答
问:对视觉类应聘者的要求?
答:要求就是没有要求。。。
问:有没有可能D1中间有全0行?
答:没有可能,因为任意一个词总是在词典中的
问:感觉把每一行加起来成为一个行向量也能用啊?
答:当然是可以的,但是浓度不够
问:每一个关键词和主题的相关性是一个已知的么?
答:不是的。因为我们可以观察到文档,比如天龙八部,也可以观察到包括的词,比如萧峰,丐帮,星宿派等等,但是观测不到主题,即隐变量。
问:主题是怎么选的?
答:主题个数一般不是选的,大都是事先先算出来,作为主题个数的确定。算出来之后,再确定主题的表达,比如爱情,政治,经济等等。
问:如果一般的问题,所谓的词是不是对应一个特征啊?
答:是的。
问:把停用词去掉,有时就剩下重要的词了?
答:是的,主题模型建立,一定要去停用词,比如:的,么,了等等
问:例子:天龙八部是文档,topic是隐变量?
答:是的
问:文档到主题的关系,是先验的么?
答:不是先验的,是要计算的。
问:每篇文档必定会对应一个部分具有1值的行向量么?会不会有可能不同文档对应同一个值?
答:不可能不同文档对应同一个值。文档对应不到词上,文档对应主题,主题对应词。
问:gensim是这个套路出来的么?
答:在LDA实践,会使用到Gensim,不再只是使用scikit-learn了。

引子:伽玛(γ)函数

2019-02-08 15_56_06-【邹博_chinahadoop】机器学习升级版VII(七).png

看到伽玛函数,比如γ(8),其实就是7的阶乘,即7!
遇到γ(2.4),也可以认为是2.4的阶乘,因为2的阶乘是2,3的阶乘是6,所以2.4的阶乘是位于2~6之间的一个数

Beta分布

2019-02-08 16_00_00-【邹博_chinahadoop】机器学习升级版VII(七).png
2019-02-08 16_34_13-【邹博_chinahadoop】机器学习升级版VII(七).png

2019-02-08 16_35_03-【邹博_chinahadoop】机器学习升级版VII(七).png

问答
问:Bag of Words后面需要用深度学习么?
答:不需要。Bag of Words仅仅是个认识,即我们用深度学习,会用到bag of words,比如直接用TF/ IDF求特征。当然,也有可能用n-gram对词做Word2Vec,将词映射到向量中去。
问:Topic这个隐变量服从什么分布,怎么确定?
答:Topic这个隐变量,如果是文档到主题,服从的是多项分布;从主题到单词,服从的是多项分布;如果加上主题之间的先验,则服从Dirichlet分布
问:词的顺序变,按实际情况应该是变了,至少含义应该变了?
答:这个是刚才说的假设,而且假设有发散性。结果或许是堪用的。


2019-02-08 17_02_09-【邹博_chinahadoop】机器学习升级版VII(七).png

文档和主题的例子


2019-02-08 17_04_34-【邹博_chinahadoop】机器学习升级版VII(七).png

LDA涉及的主要问题

2019-02-08 17_05_58-【邹博_chinahadoop】机器学习升级版VII(七).png

共轭先验分布

2019-02-08 17_09_33-【邹博_chinahadoop】机器学习升级版VII(七).png

说明:
p(θ):未给定任何数据时,参数θ的分布,称为先验分布
P(θ|x):给定数据之后的分布,称为后验分布
P(x|θ):有了参数θ,算出样本x的发生概率,即为似然概率。
实际样本分布,总是可以根据实际场景问题做建模。比如:如果x为身高或房价,则建模为高斯分布;如果x为骰子,则为六点分布;如果是数个数,则有可能建模为泊松分布;
先验概率 P(θ)x 似然概率P(x|θ) = 后验概率P(θ|x),如果先验概率 P(θ)与后验概率P(θ|x)都是同样的分布,那么先验分布和后验分布被叫做共轭分布。
这将利于我们的迭代运算。
2019-02-08 17_23_40-【邹博_chinahadoop】机器学习升级版VII(七).png

这里的修正公式,分母+10,分子+5,是因为其符合Beta分布,所以PB的分子+5相当于α,PG的分子+5相当于β,而PB与PG的分母各自都+10,相当于α+β,符合Beta分布的期望E(X) = α / α+β
2019-02-08 17_24_22-【邹博_chinahadoop】机器学习升级版VII(七).png

如图,Beta分布就是二项分布的共轭先验分布。
2019-02-08 17_45_36-【邹博_chinahadoop】机器学习升级版VII(七).png

更详细解释为:先验分布P(θ)是α与β的Beta分布;后验分布P(θ|x)是K+α与n-k+β的Beta分布,二者都是Beta分布

问答
问:听说有一种识别大众情绪的算法,先随机分配标签(包括一些分错的标签),然后采用一种自适应的方法多次迭代修改最初的错误,直到找不到更多的错误为止。请问这种方法也可以用到EM或是深度学习解决么?
答:其实不仅是识别大众情绪,很多场景都可以这样做。比如K均值聚类,最开始就是将样本随机分为几个簇,然后迭代修正簇的数目。
最开始定初值,往往都是拍脑门做的。
问:为什么P(x)可以省略?
答:x是样本,如果P(x|θ)是给了参数θ,算x的分布的话,那么P(x)是证据,与θ是无关的,所以可以省略P(x)
问:最终是要学习两个多项分布么?
答:PLSA(概率化隐主题分析)是的,LDA不是的。LDA需要学习两个多项分布以及两个Dirichlet分布,是且的关系。当然,最后输出是两个多项分布,但是过程得到的是两个Dirichlet分布,即利用两个Dirichlet分布得到两个多项分布。
问:共轭怎么理解?
答:大家第一次看到轭这个字的时候,是在学数学的时候,但是这不是数学老师的原因。其实属于语文老师的原因。这里的共轭的轭与虚数没关系。
共轭的意思是相互依赖,相互依存的关系。
我们将这样的关系,称为对偶的,或者共轭的,或者相关的。
下图是邹博老师绘制的辕与共轭的关系:


2019-02-08 17_56_33-【邹博_chinahadoop】机器学习升级版VII(七).png

伪计数

2019-02-08 17_58_31-【邹博_chinahadoop】机器学习升级版VII(七).png
2019-02-11 10_12_19-【邹博_chinahadoop】机器学习升级版VII(七).png

如将抛硬币的场景,换为抛骰子的场景。
则α,β,就变成了α1, α2, α3, α4, α5, α6

如果是20个主题,则α,β,就变成了α1, α2, α3..., α19, α20
这就变成了Dirichlet分布

问答
问:学过的分布中有几对共轭分布?
答:高斯分布的均值,其共轭分布还是高斯分布;高斯分布的方差是伽玛分布;

2019-02-11 10_16_12-【邹博_chinahadoop】机器学习升级版VII(七).png

Dirichlet分布可以从Beta分布推导而来:
我们将二项分布的:xα-1(1-x)β-1替换为x1α1-1x2α2-1,对于多项分布,则可以看做:
x1α1-1x2α2-1x3α3-1x4α4-1...xkαk-1
其中x∈[0, 1],且x1 + x2 + x3 + ... + xk = 1
δ(α->)其实就是S(α1, α2, α3, ..., αk),即面积,且积分为1
δ(α->)不是主要关注点
主要关注点应该是:pkαk-1,这表示才是概率与参数α之间的关系。
2019-02-11 10_58_09-【邹博_chinahadoop】机器学习升级版VII(七).png

问答
问:哪些分布是Dirichlet分布?
答:事实上,Dirichlet分布是造出来的分布。
邹博这个时候自言自语:当初1000多人,现在只有100多人了;如果之后又学习录播的,大概只会有两三百人。当然,还有不知有谁散播出去的盗版,也许学习的人要更多一些(比如B站,哈哈哈)

2019-02-11 16_12_14-【邹博_chinahadoop】机器学习升级版VII(七).png

如果α12=...=αk,则称为对称Dirichlet分布
如α=6,且是四元的,则x15x25x35x45,写为(6, 4)
我们往往会取对称Dirichlet分布

2019-02-11 16_19_34-【邹博_chinahadoop】机器学习升级版VII(七).png

α = 1,因为取均值,所以退化为平面:
2019-02-11 16_23_52-【邹博_chinahadoop】机器学习升级版VII(七).png

α > 1:
2019-02-11 16_24_48-【邹博_chinahadoop】机器学习升级版VII(七).png

α < 1:
2019-02-11 16_25_55-【邹博_chinahadoop】机器学习升级版VII(七).png

初始情况,大概率会取样到极值,但有一些主题没有被取样,直观体现如图,这也符合一般情况,即一篇文档不会面面俱到,什么都谈的文档,一般什么都谈不好,一篇文档聚焦在某几个主题的概率很大,其他主题的概率很小,换句话来说,α ∈[0, 1],可能是我们取的先验值:
2019-02-11 16_30_08-【邹博_chinahadoop】机器学习升级版VII(七).png

调参经验传授:做LDA的时候,在条件允许的情况下,α值尽量不要设置太大,这样做的好处是充分考虑样本的因素,而不要过分考虑先验参数的影响。
当然,如果先验给的大,就是更多考虑先验,而不是样本。这需要充分根据实际情况决定,如果说我们认为样本的情况是重要的,就不要加入太大的先验。

在EM算法的课程,DPGMM(Dirichlet过程高斯混合模型)里面也有一个先验参数,它的Dirichlet过程,就是调α值,尽量不要太大

dpgmm = BayesianGaussianMixture(n_components=n_components, 
                                    covariance_type='full', 
                                    max_iter=1000, 
                                    n_init=5,
                                    weight_concentration_prior_type='dirichlet_process', 
                                    weight_concentration_prior=0.1)

其中,weight_concentration_prior就是α值

问答:
问:这个是不是可以用来给微博内容打标签呢?
答:如果对微博内容分类,是可以的。先将微博做成长文档,然后主题模型聚类,然后喂给LPA,半监督的标签传播算法。

2019-02-11 16_46_07-【邹博_chinahadoop】机器学习升级版VII(七).png

LDA的解释

很重要

2019-02-11 16_46_36-【邹博_chinahadoop】机器学习升级版VII(七).png

这是一个生成模型
由于最近GAN的火爆,大家应该对生成模型不陌生了。

1. 文章到主题分布的过程

生成模型的概念:摆在我们面前的不是最终的文档,而是一个可以生成文档的机器。用这个机器生成我们的样本。
以 《天龙八部》为例,我们假定有如下主题以及各自的分布:
武侠 0.7, 爱情 0.2, 军事 0.08, 历史 0.02, 机器学习 0, 经济 0
以《自然语言处理入门》为例,这些主题对应的分布:
武侠 0, 爱情 0.01, 军事 0, 历史 0, 机器学习 0.99, 经济 0
6个主题,决定了若干个6点分布,形成了6项分布
P1P2P3P4P5P6
因为服从Dirichlet分布,即Dir(Pii),如果αi都取0.1,因为Pi的指数项为αi-1,则Pi可写为:
P1-0.9P2-0.9P3-0.9P4-0.9P5-0.9P6-0.9
这就是取0.1这个α值的时候的6点分布的共轭先验分布,即Dirichlet分布。
这个分布,跟我们的主题之间的关系,仅仅在于主题之间的参数们,如《天龙八部》:武侠 0.7, 爱情 0.2, 军事 0.08, 历史 0.02, 机器学习 0, 经济 0,而《自然语言处理入门》:武侠 0, 爱情 0.01, 军事 0, 历史 0, 机器学习 0.99, 经济 0。。。都是可能从这个分布当中采样采出来的。
这个分布需要两个参数:

  1. α,比如取0.1
  2. k,比如取6(即主题的假定个数)

2. 主题到词分布的过程

词分布,比如有1万个词,武侠这个主题中,共有t1 t2 t3 ... tv个词,这些词中,可能“少林寺”被采样的概率极高,但是武侠这个主题中,出现“计算机”这个词的概率就很小。
所以不同的主题,词不一样。
对于武侠这个主题,就是v个词的词分布。
词分布是多项分布,其参数服从Dirichlet分布。

  1. β,比如取0.01
  2. V,取100000 (10万个词)
    这样就可以通过Dirichlet分布描述词分布的参数:β
    β应该是向量,但是我们采用对称Dirichlet分布,那么β就是标量,例如:0.01

3. 如何生成呢?

首先文章到主题:(α, k),得到P1P2P3...Pk的主题分布,本身是多项分布,只是参数α采样自Dirichlet分布
主题分布的k个参数值们采出一个数来,比如8, 4或者3, 记为z
z是标量,∈[1, k],得到第几号主题
然后从词到主题:(β, v)
从(β, v)这个超参数,做一个Dirichlet分布,采样采出词分布,记做:
φ(1)1φ(1)2...φ(1)v,这是我们第一个词分布,即对应第一号主题的分布
继续采出词分布:
φ(2)1φ(2)2...φ(2)v,这是我们第二个词分布,即对应第二号主题的分布
...
然后采k回,得到:
φ(k)1φ(k)2...φ(k)v,这是我们第k个词分布,即对应第k号主题的分布
刚才得到一个标量z,而这个标量的值是[1, k]的,则根据z,比如8,则挑出第8行:φ(8)1φ(8)2...φ(8)v
如果z=3,则挑出第3行:φ(3)1φ(3)2...φ(3)v
则挑出的这一行词,是z号主题的词分布。
词分布本身是多项分布,从v个词选出一个词,比如选中了φ(2)n,将这个词,填充到wm, n中去,完成第m个文档,第n个词的生成。
我们再去完成第m个文档的第n+1个词,第n+2个词。。。
如此不断生成,将摆在我们面前的m个文档的所有词都生成出来。

问答
问:Word2Vec用了LDA的思想了吗?
答:不是,相似词比较,环境往往是相似的。Word2Vec就是这么玩的
问:主题分布的那些概率是已知的还是算出来的?
答:主题分布的概率是算出来的。但是α,k,β是我们事先给的,v是数出来的
问:前面推导的Dirichlet分布的期望,在哪儿使用了呢?没看到啊
答:最后的地方会让大家来看到。用Dirichlet分布的期望解释词分布与主题分布是怎么回事

2019-02-11 17_39_08-【邹博_chinahadoop】机器学习升级版VII(七).png

问:文档的词都是已经知道的啊,还生成什么?
答:我们有认识事物的两种方法。
首先我们有样本(x1, y1), (x2, y2), ..., (xn, yn),
根据xi得到yi的模型,叫做判别模型(Determination),如线性回归,Logistic回归,决策树,随机森林,SVM, CNN,条件随机场(CRF)等都是判别模型
根据yi得到xi的模型,叫做生成模型(Generation),如LDA(本质是贝叶斯网络),朴素贝叶斯,隐马尔科夫模型,都是生成模型
这是认识事物不同的方式
不管用什么方式,都可以求参数。
问:β是做什么的?
答:其与α的原理是一样的,从β这个超参数生成词分布;相应的,α是生成主题分布的。
问:如果是连续变量,需要进行离散化么?
答:有些是需要的。
问:结合购物篮是否可以进行用户画像呢?例如年轻,香水,包包,意味着某种标签呢?
答:是有可能通过用户行为,推断这个人的情况。

4. 推导过程

吉布斯采样


2019-02-11 17_52_13-【邹博_chinahadoop】机器学习升级版VII(七).png

更新规则结论。
即判断给定的文档w,第i个词,属于k号主题的概率。
主题也涉及一词多义的情况,比如之前提过的cup,在《成长的烦恼》中,应该指水杯,属于生活主题;而如果在某篇文章,这个词旁边有阿根廷,梅西,法国队等词,应该指奖杯,属于体育主题。
所以,词属于哪一个主题,真的与文档是相关的。
文档本身,第k号主题出现的概率,与词属于哪一个主题,是成正比的。
比如某人来自清华大学,自然认为这个人学习好。
从词方面出发,如果前9个词与旅游相关,那么第10个词与旅游相关的概率也很大,因为相关。
这是直观解释。


2019-02-11 18_25_48-【邹博_chinahadoop】机器学习升级版VII(七).png

问答
问:到底什么是吉布斯采样?
答:其实是又绕过一个问题,即绕过了采样这个章节。
问:能不能讲讲采样?
答:采样已经更到了下面一层。有兴趣可以自己看一看,作为知识储备
问:生成模型是为了学习最后的参数么?
答:是的。就是为了做拟合。
问:EM算法也讲了主题模型,和LDA这个有什么区别?
答:两个是不一样的贝叶斯网络。EM算法中的主题模型,是两层的PIA;LDA中的是三层的
问:LDA除了做主题模型还有其他应用吗?比如是否可以用于用户画像呢?
答:用户画像,还不如使用标签,然后通过标签做传递;当然,如果觉得样本特征数据稀疏,即浓度不够,可以用LDA降维。其可以起到降维,浓度,增强的作用。

主题模型LDA第一部分笔记完结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容