《机器学习》第三章——LDA

Posted LittlePointer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《机器学习》第三章——LDA相关的知识,希望对你有一定的参考价值。

import numpy as np
x=np.zeros((2,17))
y=np.zeros((1,17))
def dataload(filename):
    f=open(filename)
    ar=f.readlines()
    num=len(ar)
    ind=0
    for line in ar:
        line.split(‘\n‘)
        linelist=line.split(‘ ‘)
        x[0:2,ind]=linelist[0:2]
        y[0:1,ind]=linelist[2:3]
        ind=ind+1
    return
dataload("1.txt")
u0=np.zeros((2,1))
u1=np.zeros((2,1))
cnt0=0
cnt1=0
for i in range(17):
    for j in range(2):
        if(y[0,i]==1):
            u1[j,0]=u1[j,0]+x[j,i]
            cnt1=cnt1+1
        else :
            u0[j,0]=u0[j,0]+x[j,i]
            cnt0=cnt0+1
for j in range(2):
    u1[j,0]=u1[j,0]/cnt1
    u0[j,0]=u0[j,0]/cnt0
sigma0=np.zeros((2,2))
sigma1=np.zeros((2,2))
for i in range(17):
    tep=np.zeros((2,1))
    for j in range(2):
        tep[j,0]=x[j,i]
    if(y[0,i]==1):
        sigma1=sigma1+np.dot((tep-u0),(tep-u0).T)
    else :
        sigma0=sigma0+np.dot((tep-u1),(tep-u1).T)
Sw=np.zeros((2,2))
Sw=sigma0+sigma1
Sw=np.linalg.inv(Sw)
w=np.dot(Sw,u0-u1)
for i in range(17):
    tep=np.dot(w.T,x[:,i])
    if(tep<=-0.01):
        print("1 ",y[0,i])
    else :
        print("0 ",y[0,i])

  额,这个数据集反正就是有几个特例,好气啊,欢迎指正错误!!

以上是关于《机器学习》第三章——LDA的主要内容,如果未能解决你的问题,请参考以下文章

《机器学习》第三章——LDA

机器学习入门-文本特征-使用LDA主题模型构造标签 1.LatentDirichletAllocation(LDA用于构建主题模型) 2.LDA.components(输出各个词向量的权重值)(代码

☀️机器学习入门☀️ PCA 和 LDA 降维算法 | 附加小练习(文末送书)

机器学习算法的Python实现 :logistics回归 与 线性判别分析(LDA)

Spark机器学习:LDA主题模型算法

我的机器学习/深度学习之路--LDA线性判别分析