自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mankind的博客

90后,计算机研究生,公众号:萌凯的程序人生

  • 博客(115)
  • 资源 (2)
  • 收藏
  • 关注

原创 树,最复杂的数据结构

树,是计算机中最复杂的一种数据结构,它的形式多变,有各种各样复杂的树被人创造并在计算机的各个地方使用,如红黑树,B+树等。本文将对树这一基本的数据结构进行介绍。文章目录1.什么是树2.满二叉树3.完全二叉树4.总结1.什么是树树是计算机中最重要的,也是大大提高效率的一种数据结构。树同样是存储数据的一种结构,只不过,它以树的方式进行组织。如下图所示,是一棵二叉树。图中的每个圆圈称为“结点”...

2020-02-19 21:48:18 281

原创 队列,计算机中的排队模型

生活中随处可见队列,例如食堂打饭,超市买单的时候,我们都会自然而然地排队。那么,在计算机中如何表示这一现象呢?文章目录1.什么是队列2.入队与出队3.循环队列4.总结1.什么是队列队列,是一种我们再熟悉不过的模型了,现实中到处可见它的场景,比如,饭堂打饭需要排队,购票需要排队。队列是一种最体现公平的数据结构,因为它的特点就是“先进先出(First In First Out,FIFO)”...

2020-02-16 09:55:24 271

原创 栈,实现递归的数据结构

栈在计算机中扮演着重要的角色,它是计算机实现函数调用的基本数据结构。文章目录1.什么是栈2.入栈3.出栈4.栈的实现5.总结1.什么是栈栈是一种较为特殊的数据结构,它的特点是先进后出。什么意思呢?想象你有一个跟书本一样长宽的盒子,当你依次往里面放进书本1,书本2,书本3之后,如果想要把书本1拿出来,你会发现现在你能拿出来的只有书本3。因为其他两本都被压在下面了。只有当书本3,书本2被依...

2020-02-15 10:07:00 233

原创 链表,最省内存的数据结构

链表,是数据结构比较基础的一种数据结构。它具有节省内存,需要多少就创建多少的特性。文章目录1.什么是链表2.创建链表3.查找元素4.删除元素5.总结1.什么是链表链表是一种比较节省内存的数据结构,它的每个元素是一个节点node,每个node包含了存储值value和下个节点指针next,指向下一个node。在数组中,我们需要先为数据分配一定大小的空间,比如int a[10]。但实际上,我...

2020-02-14 10:54:45 164

原创 数组,编程语言的基石

引言在计算机的世界中,数据可以有各种各样的组织形式,比如,模拟现实中排队取钱的队列,代表复杂的社交网络的图结构等,不同的数据结构各自适应不同的情况。学习数据结构,我们能够为我们要解决的问...

2020-02-13 10:40:35 97

原创 排序算法之桶排序

目录本文将介绍排序算法中又快又简单的排序算法——桶排序,包括:桶排序计数排序基数排序1桶排序桶排序是在已经数据的范围的条件下,创建若干个桶,根据相应的比较规则将待排数据落入各个对应的桶...

2020-02-12 08:53:24 73

原创 排序算法之归并排序

引言本文将介绍排序算法中的归并排序,学习归并排序需要很好地理解计算机中的分治思想和递归思想。1分治思想归并排序,利用分而治之的思想,将大的问题,转换成简单的,小的问题来解决。分治,字面...

2020-02-11 09:36:03 68

原创 排序算法之快速排序,它为什么这么快?

目录本文将介绍排序算法中最常用,以及最重要的快速排序。包括:快速排序实例代码解析效率分析1快速排序实例快速排序由C. A. R. Hoare在1960年提出,是冒泡排序的一种改进。快速...

2020-02-10 09:34:29 159 1

原创 排序算法之希尔排序

本文将介绍排序算法中的希尔排序,它是高级版的插入排序,是我们第一个介绍的有点难度的算法。1. 实例讲解希尔排序,是插入排序的一个升级版本。在插入排序中,无论数据是怎么分布的,依然循规蹈矩的一步一步比较,移动,插入。在希尔排序中,采用跳跃式的方式,按照某个增量gap将数组元素分成多组序列,并使用插入排序使得各自组内有序。随后逐步缩小gap,继续按组进行插入排序,直到增量为1。这样...

2020-02-09 10:20:43 236

原创 排序算法之插入排序,玩扑克牌必会

本文将介绍排序算法中的插入排序,包括: 插入排序实例 代码解析 效率分析 1 插入排序实例今天来学习插入排序,在讲插入排序之前,我们先来讲一讲扑克牌。每个人都会打扑克牌,不知道你们有没有注意到,我们在拿牌的时候,会习惯性地把手上的牌按照从小到大排好。这样我们在出牌的时候才不会手忙脚乱。当你的小伙伴正在发牌的时候,如果你习惯发一张拿一张,你可能会无意中用到插...

2020-02-08 13:06:08 136

原创 排序算法之冒泡排序,入门必学

本文将对排序算法中的冒泡排序进行讲解。1 冒泡排序今天介绍另外一种排序算法,冒泡排序。它的基本思想是,对相邻的元素进行两两比较,顺序相反则交换,这样,每趟会将最小(或最大)的元素浮到数组最后面,最终达到整体有序。冒泡排序也是较为直观的一种排序算法,以整体升序为例,我们先看看每一趟具体发生了什么:我们可以看到,每一趟过程中,从左到右,相邻的位置进行比较,如果不符合升序,就将其位置对调。...

2020-02-07 10:39:25 149

原创 排序算法之选择排序

排序算法是每个程序员必须掌握的基础知识。目前经典的排序算法,有冒泡排序,选择排序,插入排序,希尔排序,快速排序,堆排序,归并排序,桶排序。本文将对选择排序进行讲解。另外,我最近注册了个人公众号【萌凯的程序人生】,分享个人的一些学习总结和经验,欢迎大家关注。文章目录1.选择排序2.代码解析3.效率分析1.选择排序我们会经常遇到对数据进行排序的问题,比如,一组学生成绩按照从大到小的顺序排名...

2020-02-06 13:47:53 191

原创 二分查找,教你如何提高搜索效率

二分查找,是程序员入门必会的一个高效搜索算法。本文将对二分查找,以及时间复杂度等概念进行讲解。1 什么是算法和时间复杂度在计算机科学中,算法是指在有限时间内解决一个问题的一系列确定的指令。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度...

2020-02-05 09:23:53 369

原创 要理解递归,你先要理解递归

本文将介绍递归的概念和简单的例子,希望能够帮助读者理解计算机中难以理解的递归。1 什么是递归通常我们写出很多函数之后,这些函数是用来提供给其他地方调用完成一些事情的。比如我们有函数gcd用来计算两个数的最小公约数。如果我们要计算三个数的最小公约数呢?我们可以写一个新的函数gcd2,假设三个数为a,b,c,可以调用gcd(a,b)得到a和b的最小公约数ab,再调用gcd(ab,c...

2020-02-04 11:53:51 246

原创 C语言:基本语法汇总

本文将对计算机编程的入门语言——C语言中的基本语法,包括判断,循环,函数,结构体,数组等概念进行介绍讲解。1判断语句在生活中我们经常要做出选择,程序也是如此。购物时的标准,优惠券的折扣条件等,在代码中都需要if语句来进行判断。假如我们要判断一个正整数是偶数还是奇数,可以这样子写:其中if后面括号中的 x%2 == 0 是一个判断语句,当x%2的值等于0的时候,x%2==...

2020-02-03 14:57:20 694

原创 c语言:从零开始的编程之旅

本文将对计算机编程的入门语言——C语言做简单讲解,包括: 编程工具devcpp的安装 C语言中的变量 C语言的运算 1 devcpp的安装C语言是计算机领域的入门编程语言。它跟我们平时所学的英语之类的语言有什么不同呢?由于计算机是一个没有感情的机器,它不能够理解我们说的话,活在自己的世界中。而计算机的世界,就是二进制的世界,所有的指令,都会转换成二...

2020-02-02 11:51:46 160

原创 听说今天发一篇原创博客就可以领个勋章

1024,节日快乐

2019-10-24 13:48:56 110

原创 【推荐系统】MF-OPC与MF-MPC

文章目录1.MF-OPC算法2.MF-MPC(附代码)1.MF-OPC算法  在矩阵分解MF算法中,我们使用了SVD的思想,将user-item评分矩阵分解为user的潜在兴趣矩阵U和item的潜在特征矩阵V,但对于每个评分ruir_{ui}rui​的预测,我们只根据用户U和物品I的潜在特征进行计算。r^ui=Uu.Vi.T+bu+bi+μ\hat r_{ui}=U_{u.}V_{i.}^...

2019-03-20 10:52:15 248

原创 【推荐系统】SVD++

用户对物品的评分等操作实际上很少,但是用户的点击,关注,收藏,浏览时长等隐性行为却很多,能否将这些考虑进来作为我们的预测准则之一呢?  SVD++在RSVD的基础上,考虑了用户对物品的隐式行为。因为有时候一个用户的点击,收藏,浏览时长等隐式行为,我们是可以将其考虑进来的,它作为一种交互,也反应了用户的一种隐式意愿。为了将隐式兴趣加入到模型中,在预测规则中加入r^ui=Uu.Vi.T+(1∣...

2019-03-19 15:31:13 1897 1

原创 【推荐系统】交替最小二乘法ALS和RSVD

文章目录1.ALS算法2.RSVD算法1.ALS算法  ALS(Alternating Least Square,交替最小二乘法)指使用最小二乘法的一种协同推荐算法。在UserCF和ItemCF中,我们需要计算用户-用户相似性矩阵/商品-商品相似性矩阵,对于大数据量的情况下很难处理好。那我们能否像PCA,word embedding那样,用低维度的向量来表示用户和商品呢?  ALS算法将us...

2019-03-18 16:36:05 867 2

原创 【推荐系统】UserCF与ItemCF

电影-用户评分表nun_unu​=no.usersnmn_mnm​=no.moviesr(i,j)=1r(i,j)=1r(i,j)=1 if user j has rated movie iy(i,j)=y^{(i,j)}=y(i,j)=rating given by user j to movie i (defined only if r(i,j)=1r(i,j)=1r(i,j)=1)...

2019-03-17 19:09:56 503

原创 【深度学习】深度残差网络ResNet

文章目录1 残差网络ResNet1.1要解决的问题1.2 残差网络结构1.3 捷径连接1.4 总结1 残差网络ResNet1.1要解决的问题  在传统CNN架构中,如果我们简单堆叠CNN的层数,深层CNN在训练集上面的表现反而要比浅层CNN在训练集上面的表现差的多。这明显是不合理的,因为浅层CNN很明显只是深层CNN的一个子集。  那也就是说,深层网络并没有能够很好地学习到训练集,它甚至连...

2019-03-16 10:28:00 1038

原创 【自然语言处理】word2vec模型

N-gramP(w1,w2,w3,..,wn)=P(w1∣start)P(w2∣w1)...P(wn∣wn−1)P(w_1,w_2,w_3,..,w_n)=P(w_1|start)P(w_2|w_1)...P(w_n|w_{n-1})P(w1​,w2​,w3​,..,wn​)=P(w1​∣start)P(w2​∣w1​)...P(wn​∣wn−1​)其中每个条件概率可以统计的方式进行估算...

2019-03-15 23:06:39 243

原创 【深度学习】RNN与LSTM

文章目录循环神经网络RNN双向RNN循环神经网络RNN  Recurrent Neural Network是一种有记忆力的神经网络。为什么说有记忆力呢?因为它的隐藏层输出会被保存起来,在下一次计算隐藏层输出的时候,会考虑到先前保存的值。  对于普通的BP神经网络,第k层的隐藏层的输出是ak(x)=wkxa_k(x)=w_kxak​(x)=wk​x  对于RNN循环神经网络来说,第k层...

2019-03-13 23:00:25 160

原创 【机器学习降维】Fisher判别分析LDA

思想是,类内小,类间大。方法是,降维的角度出发,把p维的样本数据都投影到一个1维的方向,使得不同的样本在降维后的一维空间内具有“类内小,类间大”的结果,从而很好地将两类数据分开。  假设我们找到了最好的投影方向www,如果不对其做限定的话,这样的w可以有无数条,所以我们限定∣∣w∣∣=1||w||=1∣∣w∣∣=1。将样本点xix_ixi​投影到向量w上,得到新的点ziz_izi​,有zi=...

2019-03-03 10:52:28 579

原创 【机器学习算法】高斯判别分析GDA

高斯判别分析  高斯判别分析(Gaussian discriminative analysis )是一个较为直观的模型,属于生成模型的一种,采用一种软分类的思路,所谓软分类就是我们对一个样本决定它的类别时使用概率模型来决定,而不是直接由函数映射到某一类上。生成模型通过求解联合概率来求解P(y∣x)P(y|x)P(y∣x)。它假设y∼Bernoulli(ϕ)x∣y=1∼N(μ1,Σ)x∣y=0∼...

2019-03-03 10:29:15 268

原创 【机器学习算法】牛顿法和拟牛顿法

文章目录1.牛顿法1.1 算法推导1.牛顿法  统计学习方法有了具体形式后就转换为最优化问题。有时最优化问题存在解析解,可以由公式计算,多数情况下没有解析解,需要用数值计算的方法求解,牛顿法和拟牛顿法是求解无约束最优化问题的常用方法,收敛速度快。  牛顿法是迭代算法,每一步需要求解目标函数的海塞矩阵的逆矩阵。1.1 算法推导  无约束最优化问题如下:min⁡x∈Rnf(x).........

2019-02-27 15:35:51 114

原创 【机器学习总结】向量、矩阵求导公式

关于向量求导用到的公式实在是太多了…经常公式推着推着就被卡住,这里一次性做个总结吧。文章目录0.引言1.向量对元素求导2.向量对向量求导3.矩阵对向量求导4.矩阵复合向量的求导0.引言  正文中,元素使用字母a,b,c等表示,向量使用小写的x,y,zx,y,zx,y,z等表示,并且默认是列向量,矩阵使用大写的A,B,C进行表示。1.向量对元素求导行向量对元素求导∂xT∂a=[∂x...

2019-02-27 13:23:10 610 5

原创 【机器学习算法】集成学习之Stacking,Bagging,AdaBoost

模型融合(aggregation models)假设有n个模型,采用适当的模型融合方法,可以产生更好的结果。选取可信度最大的模型(validation error最小)让每个模型投票让每个模型投票,但是给可信度大的模型更多的票数加入预测的条件uniform blending核心思想:少数服从多数,民主投票知道n个模型的输出,每个模型有一票,则最终的输出:H(x)=sign...

2019-02-26 09:18:55 367

原创 【机器学习算法】最大熵模型

文章目录1.最大熵原理2.最大熵模型3.训练过程4.极大似然估计5.改进的尺度迭代法IIS1.最大熵原理  在概率统计中,最大熵原理认为在所有可能的概率模型中,熵最大的模型是最好的模型。可以理解成在所有满足约束条件的模型集合中,选取熵最大的模型。由于熵满足不等式0≤H(P)≤log⁡∣X∣0 \le H(P) \le \log |X|0≤H(P)≤log∣X∣  当且仅当X服从均匀分布...

2019-02-23 20:42:11 212

原创 【机器学习算法】决策树模型ID3、C4.5、CART

  决策树是一种符合人类直观感觉的模型,比如有一棵决策树如下:  上图是某女青年在决定相亲对象是时会进行的一系列决策过程。首先看对方的年龄,如果大于30岁,直接pass,如果小于等于30岁,就再看对方长得如何,长得丑,就不见,长的好看的,再继续看它的收入……以此类推,最终可以得到一颗决策树。而任何一个样本(男性)在这棵树上走一遍之后,都能够输出“见”或者“不见”的结果。那其实这就是一个分类的过...

2019-02-22 21:23:05 478

原创 【机器学习算法】感知机模型

1.感知机模型  感知机模型是一个二分类的模型,它通过形如y=wx+by=wx+by=wx+b的式子将实例x转换为类别,取+1和-1表示,从而将实例进行划分。它是简单并且容易实现的一个模型。  感知机模型主要用来将平面上线性可分的数据集进行划分,对于线性不可分的数据集,感知机无法收敛。  感知机模型的输入输出由以下函数进行映射,其中w是n维空间的一个向量,b是偏置,sign是符号函数。f(...

2019-02-17 19:34:02 224

原创 【机器学习降维】拉普拉斯矩阵与谱聚类

文章目录1.拉普拉斯矩阵1.1 简介1.2 性质2.谱聚类3. 拉普拉斯特征映射Laplacian Eigenmaps1.拉普拉斯矩阵1.1 简介  拉普拉斯矩阵(Laplacian matrix),也称为基尔霍夫矩阵, 是表示图的一种矩阵。给定一个有n个顶点的图G=(V,E),其拉普拉斯矩阵定义为:L=D−WL=D-WL=D−W  其中W为图G的邻接矩阵,一个N×NN \time...

2019-01-31 16:56:28 802 1

原创 【机器学习算法推导】隐狄利克雷模型LDA

文章目录1.概率论基础1.1 二项分布1.2 多项式分布1.3 Gamma分布1.4 共轭分布1.5 Beta分布1.概率论基础1.1 二项分布  二项分布是n重伯努利分布,可以看做是将硬币抛n次,出现k次正面向上的概率,每次出现正面向上的概率为p,其概率密度公式为P(X=k)=Cnkpk(1−p)n−kP(X=k)=C_n^kp^k(1-p)^{n-k}P(X=k)=Cnk​pk(1...

2019-01-28 21:37:55 403 1

原创 【机器学习算法推导】隐马尔科夫模型HMM及相关算法

文章目录1.隐马尔可夫模型HMM1.1 简介1.2 定义1.3 实例1.4 生成观测序列1.5 HMM的三个基本问题2.评估观察序列概率2.1 暴力求法2.2 前向算法2.3 后向算法1.隐马尔可夫模型HMM1.1 简介  隐马尔科夫模型是与概率论密切相关的一个模型,隐马尔科夫模型(Hidden Markov Model,以下简称HMM)在语音识别,自然语言处理等方面都有所应用。它被用来解决...

2019-01-19 15:28:09 323 1

原创 【机器学习算法推导】高斯混合模型GMM与EM算法

高斯混合模型(GMM)  极大似然估计是一种应用很广泛的参数估计方法。在已有某个地区身高数据以及知道身高服从高斯分布的情况下,利用极大似然估计的方法可以估计出高斯分布μ,σ\mu,\sigmaμ,σ两个参数。  如果是多组数据,多个模型呢?获取现在我们有全国多个省份的身高数据,但并不知道它们具体属于哪个省份,只知道每个省之间服从不同的高斯分布,此时的模型称为高斯混合模型(GMM),其公式为P...

2019-01-16 17:15:57 522 1

原创 【机器学习】潜在语义分析LSA和PLSA

666

2019-01-15 15:31:54 510 1

原创 【基于SSH框架的个人博客系统06】头像文件上传与前后端分页机制

注意:本项目为博主初学Web开发时所写,所使用的方法都比较笨,不符合主流开发方法。例如,包管理应该使用Maven进行管理而不是手动导入,对前端后端代码的架构也并不是很清晰。大家学习思想即可,可以不用浪费时间在将这个项目跑起来。目前主流的技术应当是Spring+SpringMVC+Mybatis的SSM框架,配合Shiro做权限控制,Redis做缓存,也可以学习SpringBoot开发微服务。由于...

2019-01-10 22:06:27 1677 2

原创 【基于SSH框架的个人博客系统05】ajax异步通讯技术与json交互

注意:本项目为博主初学Web开发时所写,所使用的方法都比较笨,不符合主流开发方法。例如,包管理应该使用Maven进行管理而不是手动导入,对前端后端代码的架构也并不是很清晰。大家学习思想即可,可以不用浪费时间在将这个项目跑起来。目前主流的技术应当是Spring+SpringMVC+Mybatis的SSM框架,配合Shiro做权限控制,Redis做缓存,也可以学习SpringBoot开发微服务。由于...

2019-01-10 22:06:06 1235 1

原创 【基于SSH框架的个人博客系统04】DAO层,Service层与Action层

注意:本项目为博主初学Web开发时所写,所使用的方法都比较笨,不符合主流开发方法。例如,包管理应该使用Maven进行管理而不是手动导入,对前端后端代码的架构也并不是很清晰。大家学习思想即可,可以不用浪费时间在将这个项目跑起来。目前主流的技术应当是Spring+SpringMVC+Mybatis的SSM框架,配合Shiro做权限控制,Redis做缓存,也可以学习SpringBoot开发微服务。由于...

2019-01-10 22:05:49 3331

使用scrapy框架爬取拉勾网数据

使用scrapy框架爬取拉勾网数据,相关博客链接http://blog.csdn.net/hemk340200600/article/details/77803297

2017-09-02

基于SSH框架的简易博客系统

在eclipse上开发的基于SSH框架的简易博客系统,前端使用Bootstrap和JQuery,配合个人博客http://blog.csdn.net/Hemk340200600/article食用更佳

2017-05-08

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除