得知李航老师的<统计学习方法>出了第二版,我第一时间就买了.看了这本书的目录,非常高兴,好家伙,居然把主题模型都写了,还有pagerank.一路看到了马尔科夫蒙特卡罗方法和LDA主题模型这里,被打击到了,满满都是数学公式.LDA是目前为止我见过最复杂的模型了. 找了培训班的视频看,对LDA模型有了大致的认识.下面总结一点东西. 1.LDA与PLSA的联系 LDA模型和PLSA的联系非常紧密,都是概率模型(LSA是非概率模型),是利用概率生成模型对文本集合进行主题分析的无监督学习方法. 不同在于…
文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法(TODO) 本文是LDA主题模型的第二篇,读这一篇之前建议先读文本主题模型之LDA(一) LDA基础,同时由于使用了基于MCMC的Gibbs采样算法,如果你对MCMC和Gibbs采样不熟悉,建议阅读之前写的MCMC系列MCMC(四)Gibbs采样. 1. Gibbs采样算法求解LDA的思路 首先,回顾LDA的模型图如下: 在Gibbs采样算…
文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法(TODO) 在前面我们讲到了基于矩阵分解的LSI和NMF主题模型,这里我们开始讨论被广泛使用的主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,以下简称LDA).注意机器学习还有一个LDA,即线性判别分析,主要是用于降维和分类的,如果大家需要了解这个LDA的信息,参看之前写的线性判别分析LDA原理总结.文本…
安装第三方包:gensim 首先,执行去停词操作(去除与主题无关的词) #-*-coding:utf8-*- import jieba def stopwordslist(filepath): stopwords = [line.strip() for line in open(filepath, 'r').readlines()] return stopwords def seg_sentence(sentence): sentence_seged = jieba.cut(sentence.s…
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 1.简介 在机器学习领域,LDA是两个常用模型的简称:Linear Discriminant Analysis和Latent Dirichlet Allocation.本文的LDA是指Latent Dirichlet Allocation,它在主题模型中占有非常重…
文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法 本文是LDA主题模型的第三篇,读这一篇之前建议先读文本主题模型之LDA(一) LDA基础,同时由于使用了EM算法,如果你对EM算法不熟悉,建议先熟悉EM算法的主要思想.LDA的变分推断EM算法求解,应用于Spark MLlib和Scikit-learn的LDA算法实现,因此值得好好理解. 1. 变分推断EM算法求解LDA的思路 首先,回顾L…
gensim的LDA算法中很容易提取到每篇文章的主题分布矩阵,但是一般地还需要进一步获取每篇文章归属到哪个主题概率最大的数据,这个在检索gensim文档和网络有关文章后,发现竟然没有. 简单写了一下. #打印每篇文档最高概率主题 for i in lda.get_document_topics(corpus)[:]: listj=[] for j in i: listj.append(j[1]) bz=listj.index(max(listj)) #print(i[bz][0],i,listj…
今天参考网上的博客,用gensim训练了word2vec词向量.训练的语料是著名科幻小说<三体>,这部小说我一直没有看,所以这次拿来折腾一下. <三体>这本小说里有不少人名和一些特殊名词,我从网上搜了一些,作为字典,加入到jieba里,以提高分词的准确性. 一.gensim中关于word2vec的参数说明 这一部分其他博客整理的比较清楚了,我也就不抄过来了.看这个链接: https://www.cnblogs.com/pinard/p/7278324.html 二.gensim训练…
在文本主题模型之潜在语义索引(LSI)中,我们讲到LSI主题模型使用了奇异值分解,面临着高维度计算量太大的问题.这里我们就介绍另一种基于矩阵分解的主题模型:非负矩阵分解(NMF),它同样使用了矩阵分解,但是计算量和处理速度则比LSI快,它是怎么做到的呢? 1. 非负矩阵分解(NMF)概述 非负矩阵分解(non-negative matrix factorization,以下简称NMF)是一种非常常用的矩阵分解方法,它可以适用于很多领域,比如图像特征识别,语音识别等,这里我们会主要关注于它在文本主…
在文本挖掘中,主题模型是比较特殊的一块,它的思想不同于我们常用的机器学习算法,因此这里我们需要专门来总结文本主题模型的算法.本文关注于潜在语义索引算法(LSI)的原理. 1. 文本主题模型的问题特点 在数据分析中,我们经常会进行非监督学习的聚类算法,它可以对我们的特征数据进行非监督的聚类.而主题模型也是非监督的算法,目的是得到文本按照主题的概率分布.从这个方面来说,主题模型和普通的聚类算法非常的类似.但是两者其实还是有区别的. 聚类算法关注于从样本特征的相似度方面将数据聚类.比如通过数据样本之间…
作者:doze_worm来源:https://www.douban.com/note/620615113/ gensim 起步:本节介绍理解和使用 gensim 所必须的基础概念和术语,并提供一个简单用例. 核心概念和简单样例:从高层级来看,gensim 是一个通过衡量词组(或更高级结构,如整句或文档)模式来挖掘文档语义结构的工具.gensim 以“文集”——文本文档的集合——作为输入,并生成一个“向量”来表征该文集的文本内容,从而实现语义挖掘.该向量表示可被用于训练一个“模型”.模型是从数据生…
“LDA(Latent Dirichlet Allocation)模型,模型主要解决文档处理领域的问题,比如文章主题分类.文章检测.相似度分析.文本分段和文档检索等问题.LDA主题模型是一个三层贝叶斯概率模型,包含词.主题.文档三层结构,文档到主题服从Dirichlet分布,主题到词服从多项式分布.它采用了词袋(Bag of Words)的方法,将每一篇文章视为一个词频向量,每一篇文档代表了一些主题所构成的概率分布,而每一个主题又代表了很多单词所构成的一个概率分布.利用LDA模型对用户参与的话题…
LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,最近看了点资料,准备使用python实现一下.至于数学模型相关知识,某度一大堆,这里也给出之前参考过的一个挺详细的文档lda算法漫游指南 这篇博文只讲算法的sampling方法python实现. 完整实现项目开源python-LDA lda模型变量申请及初始化 # #伪代码 # 输入:文章集合(分词处理后),K(类的个数) 输出:已经随机分派了一次的lda模型 begin 申请几个统计量: p 概率向量 维度…
什么是LDA? LDA是基于贝叶斯模型的,涉及到贝叶斯模型离不开“先验分布”,“数据(似然)”和"后验分布"三块.贝叶斯相关知识:先验分布 + 数据(似然)= 后验分布. 贝叶斯模型通过数学和概率的形式表达, 设 似然(数据)为二项分布: 其中p我们可以理解为好人的概率,k为好人的个数,n为好人坏人的总数.似然(数据)较为容易理解,但是先验分布较难,因为要求先验分布和数据(似然)对应的二项分布集合后,得到的后验分布在后面还可以作为先验分布!即是说,我们希望先验分布和后验分布的形式应该是…
PocketSphinx语音识别系统语言模型的训练和声学模型的改进 zouxy09@qq.com http://blog.csdn.net/zouxy09 关于语音识别的基础知识和sphinx的知识,详细能够參考我的另外两篇博文: 语音识别的基础知识与CMUsphinx介绍: http://blog.csdn.net/zouxy09/article/details/7941585 PocketSphinx语音识别系统的编译.安装和使用: http://blog.csdn.net/zouxy09/…
原数据集:包含 25000张猫狗图像,两个类别各有12500 新数据集:猫.狗 (照片大小不一样) 训练集:各1000个样本 验证集:各500个样本 测试集:各500个样本 1= 狗,0= 猫 # 将图像复制到训练.验证和测试的目录 import os,shutil orginal_dataset_dir = 'kaggle_original_data/train' base_dir = 'cats_and_dogs_small' os.mkdir(base_dir)#保存新数据集的目录 tra…
关于Latent Dirichlet Allocation及Hierarchical LDA模型的必读文章和相关代码 转: http://andyliuxs.iteye.com/blog/1051743 LDA和HLDA: (1)D. M. Blei, et al., "Latent Dirichlet allocation," Journal of Machine Learning Research, vol. 3, pp. 993-1022, 2003. (2)T. L. Grif…
之前参见了中国软件杯大赛,在大赛中用到了深度学习的相关算法,也训练了一些简单的模型.项目线上平台是用java编写的web应用程序,而深度学习使用的是python语言,这就涉及到了在java代码中调用python语言的方法. 为了能在java应用中使用python语言训练的算法模型,我在网上找了很久.我大概找到了三种方法 1. java代码可以直接调用python代码,只需要下载相应的jar包就行.这种方式我没有尝试,只是觉得这样做使得java应用太过于依赖python的环境了.还有网上也有将py…
keras训练cnn模型时loss为nan 1.首先记下来如何解决这个问题的:由于我代码中 model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy']) 即损失函数用的是categorical_crossentropy所以,在pycharm中双击shift键,寻找该函数,会出现keras.loss模块中有该函数,进入该函数后, 原函数为: def categorical_crossent…
原文地址:搭建 MobileNet-SSD 开发环境并使用 VOC 数据集训练 TensorFlow 模型 0x00 环境 OS: Ubuntu 1810 x64 Anaconda: 4.6.12 Python: 3.6.8 TensorFlow: 1.13.1 OpenCV: 3.4.1 0x01 基础环境配置 Anaconda 下载地址: Anaconda-4.6.12-Linux 本文中安装位置为 /usr/local/anaconda3 修改默认的 python 版本为 3.6 cond…
PMML是一种通用的配置文件,只要遵循标准的配置文件,就可以在Spark中训练机器学习模型,然后再web接口端去使用.目前应用最广的就是基于Jpmml来加载模型在javaweb中应用,这样就可以实现跨平台的机器学习应用了. 训练模型 首先在spark MLlib中使用mllib包下的逻辑回归训练模型: import org.apache.spark.mllib.classification.{LogisticRegressionModel, LogisticRegressionWithLBFGS…
tflearn 中文汉字识别,训练后模型存为pb给TensorFlow使用. 数据目录在data,data下放了汉字识别图片: data$ ls0  1  10  11  12  13  14  15  16  2  3  4  5  6  7  8  9 datag$ ls 0xxx.png yyy.png .... 代码: 如果将get model里的模型层数加非常深,训练时候很可能不会收敛,精度一直停留下1%以内. # -*- coding: utf-8 -*- from __future…
数据集 1.准备数据集 1)下载训练和验证图片 ImageNet官网地址:http://www.image-net.org/signup.php?next=download-images (需用邮箱注册,而且邮箱不能是地址以.com结尾的邮箱) ImageNet官网下载ILSVRC2012的训练数据集和验证数据集.除数据集外,ImageNet还提供了一个开发工具包ILSVRC2012_devkit_t12.tar.gz,是对ILSVRC2012数据集的详细讲解,提交比赛结果的要求,和对结果评价的…
TensorFlow 训练好模型参数的保存和恢复代码,之前就在想模型不应该每次要个结果都要重新训练一遍吧,应该训练一次就可以一直使用吧. TensorFlow 提供了 Saver 类,可以进行保存和恢复.下面是 TensorFlow-Examples 项目中提供的保存和恢复代码. ''' Save and Restore a model using TensorFlow. This example is using the MNIST database of handwritten digits…
[源码分析] Facebook如何训练超大模型---(1) 目录 [源码分析] Facebook如何训练超大模型---(1) 0x00 摘要 0x01 简介 1.1 FAIR & FSDP 1.2 大规模训练计算能力需求 0x02 FSDP 如何工作 2.1 全参数分片 2.2 比对 2.3 梳理 2.3.1 思路 2.3.2 流程步骤 0x03 How to use FSDP 3.1 在语言模型中使用FSDP 3.2 在计算机视觉模型之中使用FSDP 3.3 在PyTorch Lightnin…
[源码分析] Facebook如何训练超大模型 --- (2) 目录 [源码分析] Facebook如何训练超大模型 --- (2) 0x00 摘要 0x01 回顾 1.1 ZeRO 1.1.1 ZeRO-1 1.1.2 ZeRO-2 1.1.3 ZeRO-3 1.2 DDP VS FSDP 0x02 总体逻辑 2.1 FSDP 2.2 原始ZeRO 1.2.1 初始化 1.2.2 前向传播 1.2.3 反向传播 2.3 FSDP代码 2.3.1 初始化 2.3.2 前向传播 2.3.3 分层优…
[源码分析] Facebook如何训练超大模型 --- (3) 目录 [源码分析] Facebook如何训练超大模型 --- (3) 0x00 摘要 0x01 ZeRO-Offload 1.1 设计原则 1.2 ZeRO 0x02 卸载策略 2.1 数据流图 2.2 限制CPU计算 2.3 最小化计算量 2.4 最大化内存节约 2.5 唯一最优化策略 2.6 ZeRO-Offload Schedule 2.6.1 单机计划 2.6.2 多节点计划 0x03 FairScale Offload 使…
def genlda(textlist,n): ticks = str(time.time()).replace('.','')[-6:-1] nn=str(n) dictionary = corpora.Dictionary(textlist) corpus = [ dictionary.doc2bow(text) for text in textlist ] #tfidf = models.TfidfModel(corpus) #corpus_tfidf = tfidf[corpus] #p…
#coding=utf8 import numpy as np import pandas as pd import re from gensim import corpora, models, similarities import gensim from nltk.corpus import stopwords df = pd.read_csv("./input/HillaryEmails.csv") # 原邮件数据中有很多Nan的值,直接扔了. df = df[['Id', 'E…
http://www.52nlp.cn/lda-math-lda-%E6%96%87%E6%9C%AC%E5%BB%BA%E6%A8%A1 LDA主题模型评估方法--Perplexity http://www.52nlp.cn/lda-math-lda-%E6%96%87%E6%9C%AC%E5%BB%BA%E6%A8%A1 LDA-math-LDA 文本建模 http://www.iyunv.com/thread-59890-1-1.html 用python计算lda语言模型的困惑度并作图 h…