- 博客(22)
- 收藏
- 关注
原创 LDA主题模型(三)变分方法
LDA主题模型(一)基本概念LDA主题模型(二)Gibbs采样方法LDA主题模型(三)变分方法变分推断变分推断的过程类似于EM过程,区别在于 EM:计算隐变量的后验概率期望得到下界 变分:计算KL散度得到下界 具体关于变分的讲解网上有很多,我看的只是一知半解因此贴上一篇我觉得还可以的博客LDA的变分推断还是回到开始,看LDA的模型图 在这个模型中,我们有观测值wm,n...
2018-11-05 19:57:17 878 1
原创 LDA 主题模型(一) 基本概念
#目标:研究文档中文字的产生过程,属于机器学习中的生成模型,一般认为当写一篇文档时,会先根据一定的概率选定主题,然后根据与选定主题相关的概率生成文字。如果按照频率学派的思想,一篇文章写每个词时选择主题的概率分布与每个主题下词的概率分布是确定的。但是LDA是贝叶斯学派思想。...
2018-11-05 19:56:46 5377
原创 主题模型LDA(二)gibbs采样方法
Gibbs采样过程Gibbs采样可以从复杂的概率分布中生成数据,只需要知道每个分量相对其他分量的条件下就可以进行采样。具体可以看这篇博客 LDA的gibbs采样步骤是:初始随机给每个文档的每个词赋予一个主题,统计词与主题的信息得到n⃗k\vec n_knk和n⃗m\vec n_mnm的值,然后计算对每个词wiw_iwi(这里为方便,将wiw_iwi代替wm,nw_{m,n}wm,n...
2018-11-05 19:56:05 3207 1
原创 《算法导论》第八章 计数排序、基数排序、桶排序 python实现
1. 计数排序 计数排序需要知道所有元素的范围,主要思想是:统计出每个数字出现了几次,存至C中,然后将C中的数字转为小于该数字的元素个数,然后从后往前依次填写,是稳定的排序方法。python实现如下:def count_sort(A, k): """ 计数排序 :param A:待排序列 :param k:元素范围 """ ...
2018-08-28 20:10:00 275
原创 《算法导论》第七章 快速排序 python实现
快速排序时间复杂度平均O(nlgn),最坏的话是O(n^2),原址排序,是不稳定的排序算法过程可以描述为两步:1.分解,将A[p...r]分解为A[p...q-1]和A[q+1...r],前者每个元素均小于A[q],后者每个元素均大于A[q]2.通过递归对A[p...q-1]和A[q+1...r]进行排序python实现如下:def quick_sort(A, first, ...
2018-08-28 16:45:24 258
原创 《算法导论》第六章优先队列 python 实现
优先队列是堆排序的一个应用 :支持的操作:返回最大值,去掉并返回最大值,插入元素def max_heapify(A, i, heap_size): l = 2 * i r = 2 * i + 1 if l <= heap_size and A[l-1] > A[i-1]: largest = l else: la...
2018-08-28 16:26:26 159
原创 《算法导论》第六章堆排序 python代码
堆排序具有的优点:时间O(nlgn),具有空间原址性,按照书上的讲法,主要步骤分三步:1.假定一个堆中一个节点,子树已经为最大堆但根不比左右子树大,构造一个算法将根放置合适位置,让子树加该节点满足最大堆的性质。MAX-HEAPIFY,复杂度O(lgn)2.从堆的最后一个非叶节点开始,使用1的算法保证直到根节点整个堆满足最大堆的性质BUILD-MAX-HEAP,复杂度O(nlgn)3.尽...
2018-08-28 16:21:40 328
原创 球放入盒的组合问题
最近看《算法导论》第五章,一直纠结球放入盒中的问题,索性查了一下,发现大部分资料有点难懂orz...,这里把自己理解的内容记录一下吧,也算是一个总结了。问题:n个小球放入m个盒中,由于球和盒子可以相同也可以不同,可以允许空盒也可以不允许空盒,因此有8种情况。 1-1 n个相同的球放入m个不同的盒子中,不允许空盒子 这个比较好理解,理解为n个球分为m堆,每堆...
2018-08-17 20:04:29 7830 1
原创 全排列递归与非递归python实现
全排列就是,给定一个序列,列举出该序列中元素所有的排列情况,列举方法有递归和非递归两种,详细可以见这位大神写的博客:https://blog.csdn.net/jopus/article/details/18998403。我只列出来两个重要的图吧。1.非递归:字典序法 ,如下图[1,2,3]的例子2.递归方法 递归方法就是将序列中第一位固定,然后将后面...
2018-08-17 17:24:34 1806
原创 《算法导论》5.1-2
要想使用random(0,1)生成(a,b)之间的随机数,可以进行以下步骤:1.相当于实现random(0,b-a)之间的随机数2.但是0101等序列数字直接相加得到的数字概率不等,用二进制这样每个位上出现01的概率就相等,换言之生成的二进制数概率相等,再将二进制转化为十进制即可3.具体做法就是先找出大于b-a的最小2的n次方,即二进制的位数范围,确定位数后每位进行01随机的生成,转为...
2018-08-16 11:29:54 312
原创 《算法导论》第四章矩阵相乘
1.采用递归分治的方法进行矩阵相乘,代码如下:def matrix_divide(mat): """将n*n分解为4个n/2*n/2的四个矩阵""" n = len(mat) / 2 a11 = [[0 for i in range(n)]for j in range(n)] a12 = [[0 for i in range(n)] for j in rang...
2018-08-13 21:47:50 360
原创 《算法导论》4.1-4,4.1-5
这道题在之前基础上,要求在最后判断是否结果小于0,如果最终返回结果小于0,则返回[],直接暴力求解只需要最后返回时进行判断输出即可,但是递归求解时无法在函数中进行判断,所以我在函数外层又加了一层函数。。。。orzdef find_max_cross_subarray(list, low, high, mid): """找出跨越中点的最大子数组""" left_sum = fl...
2018-08-13 11:25:23 1123 3
原创 《算法导论》第二章思考题——逆序对(python实现)
设A[1..n]是一个包含n个不同数的数组。如果在i < j的情况下,有A[i] > A[j],则(i, j)就称为A中的一个逆序对,给出任意一个数组,计算逆序对个数。借助归并排序思想可以得到O(n log n)的最坏运行时间。 归并排序的想法是先分开左右 两个子序,每个子序列排序后再合并。这里求逆序对也是一样,分开后先计算每个子序内部的逆序对数量并将其从...
2018-08-12 14:17:33 2559
原创 数据挖掘笔记——贝叶斯学习
贝叶斯决策理论是朴素贝叶斯分类、贝叶斯信念网络、EM算法的基础。特点:(1)每个观测值都可以提高/降低估计值 (2)先验知识可以和观测数据共同决定最终的假设概率 (3)概率预测,可以提供假设好坏的度量 (4)新实例可以结合多个假设的预测值,依概率加权1.贝叶斯定理 目的:学习到最优假设,即概率最大可能性最高的假设,这就是我们所说的最大后验...
2018-04-25 22:11:58 739
原创 数据挖掘笔记——遗传算法
遗传算法来源于进化论,可以理解为一开始我们产生很多个随机解,构成第一代假设集合(也叫做种群),由这些随机解产生一代新的种群并进行假设解集合的更新,在产生下一代随机解过程中,好的解保留,差的解遗弃,即通过变异和交叉迭代每一步。 总结来说,遗传算法是在候选假设中找到最优假设的过程。1.遗传算法结构 (1)种群:在算法中迭代更新的假设集合 (2)适应度函数...
2018-04-13 14:10:13 2122
原创 数据挖掘笔记——决策树
1.介绍 决策树是一种目标函数为离散值的学习方法(区别于回归),学习到的函数可以用树形表示也可以使用if-then规则来增加可读性。 什么时候考虑使用决策树:(1)实例可以描述为属性-值对,即监督学习 (2)目标函数是离散值 ...
2018-04-08 17:30:31 764
原创 论文《Efficient Estimation of Word Representations in Vector Space》阅读心得
本来应该将Tomas的三篇论文一起读完再写的,但是因为这段时间事情比较多,先写一篇后面的再补上。由于自己刚开始看论文理解能力不够,如有错误欢迎大家指出来,我再修改。 本片论文作者是Tomas Mikolov,他在谷歌是研究的是word2vec,现在跑去了facebook,都很厉害啊!这篇主要讲了word2vec与之前的语言模型例如 NNLM等在语义语法上、训练速度上的比较。总结来说有一下几点...
2018-04-07 16:31:20 4454 1
原创 数据挖掘笔记——概念学习
概念学习可近似为分类问题,例如一个小孩子看过几种鸟的图片,如果再给他一张另外一种没见过的鸟的图片,他还是可以认出这是只鸟,换句话说他已经建立了“鸟”这一概念,进而根据一些特征进行判断是或不是属于这个概念。一、概念和概念学习的定义 概念是在一个更大的集合里面定义一个对象或者事物的子集,或者说是一个从更大的集合里面学到的布尔函数。 概念学习,指自动地给出概念的定义。...
2018-03-23 17:02:20 3263 1
原创 数据挖掘笔记——数据预处理
什么是数据? 数据对象和属性的集合一、属性的类型属性常常用操作来描述,操作有a. 相异性: b.顺序大小 c.加法减法d.乘法与除法根据这些操作可以将属性分为:a. 标称属性(Nominal attribute):只能区分是否相等,例如IDb. 序数属性(Ordinal attribute):可以区分顺序大小,例如...
2018-03-18 18:30:02 2094
原创 《Reducing the Dimensionality of Data with Neural Network》阅读心得
本论文是2006发表在《SCIENCE》上的一篇关于使用神经网络进行数据降维的文章,作者为G. E. Hinton and R. R. Salakhutdinov。 论文的思想是使用一个多层的神经网络对数据进行处理,中间层神经元个数少,实现从高维数据到低维数据的‘编码’,然后再通过低维到高维的‘解码’进行数据的重构,目标是减少元数据与重构数据的交叉熵。但是如果权重的初始化...
2018-03-18 15:43:16 2011
原创 《统计学习方法》读书笔记——感知机
刚开始学习机器学习算法不久,看了李航老师的《统计学习方法》,对我的帮助很大,让我从什么都不知道到现在有了初步的概念,现在打算回过头来整理一下读书时的思考,希望能加深自己的理解,如果能对看这篇文章的小伙伴有所帮助那就更好了。不过文章主要以思考为主,所以有很多书上的很多概念没有提到(注意是很多,所以最好可以提前看看李航老师的这本书),所以小伙伴如果有不明白的可以留下评论。当然,不免有很...
2018-03-05 22:16:41 231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人