自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 ElasticSearch的查询query DSL和过滤filter DSL

博客不敢常写,主要怕付出不够误导别人。。但是又想写下来记录一下,所以特此声明:以下总结可能是错误的,请读者自行分辨,我尽量写的准确些。首先吐槽下,ES的官方文档写的真是烂,然后网上的信息又极其的混乱,逼我硬是得自己写博客。正文开始*************************************queryDSL用来做搜索的,搜索就是尽可能把所有相关的内容都查出来;...

2019-04-19 22:43:36 1545

原创 HMM的Baum-Welch算法和Viterbi算法公式推导细节

前言在上一篇博文中,我简单地介绍了隐马尔科夫模型HMM,并且重点介绍了HMM的三个问题中的第一个,即概率计算问题。首先回顾一下这三个问题都是什么以及解决每个问题的主流算法:概率计算问题即模型评价问题——前向算法和后向算法学习问题即参数估计问题——Baum-Welch算法预测问题即解码问题——Viterbi算法在上一篇概率计算问题的最后,我列出了几个用前向概率和后向概率表示的一些有意义的概率值

2016-03-23 21:34:38 27389 4

原创 隐马尔科夫模型HMM的前向算法和后向算法

最近重新看了一遍《统计学习方法》中第十章《隐马尔可夫模型》,更加觉得这本书有浅有深,简洁深刻。HMM模型有三个基本问题:概率计算问题,学习问题和预测问题。今天我就来将其中的概率计算问题的一些细节思考总结一下,就当是笔记吧!主要就是概率计算的前向算法和后向算法。HMM简介隐马尔可夫模型的参数一般称为其三要素,包括初始状态概率,转移概率和观测概率。其模型的定义建立在两个基本假设的前提上。分别是齐次马尔科

2016-03-22 16:43:33 21475 2

原创 浅谈EM算法的两个理解角度

最近在写毕业论文,由于EM算法在我的研究方向中经常用到,所以把相关的资料又拿出来看了一下,有了一些新的理解与感悟。在此总结一下。EM算法即“期望极大算法”。学过机器学习的朋友都知道EM算法分两步:E步求期望,M步求极大。但是期望是求谁的期望,极大是求谁的极大呢?这里面其实有两种解读角度。“通俗”角度通俗角度的话,求极大肯定是求似然函数的极大了,而且一般都是对数似然。我们一般解决模型参数求解问题,都是

2016-03-20 16:31:50 8986 4

原创 高斯混合模型的终极理解

高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬。本文尝试用通俗的语言全面介绍一下GMM,不足之处还望各位指正。首先给出GMM的定义这里引用李航老师《统计学习方法》上的定义,如下图:定义很好理解,高斯混合模型是一种混合模型,混合的基本分布是高斯分布而已。第一个细节:为什么系数之和为0?PR

2016-03-18 17:10:01 101903 34

原创 IT菜鸟的未来规划

找工作告一段落了。虽然自己本科专业就是计算机科学与技术,研究生专业是计算机技术,但是,最终顺理成章地进入一家互联网公司上班,开始所谓的“专业对口”地进入职场,还是让我若有所思。趁休假在家,没心情写那些专业领域的博客,那就写写自己的感悟和对未来的规划吧!先说说我的专业。严格来说,其实IT行业和其他的行业微微有些不同——从业者未必非得是计算机专业出身。目前来看,很多IT工作岗位更多地把编程作为一种

2015-09-25 23:26:14 3779 3

原创 机器学习中分类器的性能评价指标

我们针对一个具体地问题建立了一个机器学习模型以后,怎么去评价这个模型的好坏呢?这就需要用到分类器的几个性能评价指标。下面简单谈一下。准确率(accuracy)准确率是最常用的分类性能指标。拿最常见的二分类问题来说,我们的模型无非是想要把正类和负类预测识别出来。在测试集中识别对的数量(不论是把正样本识别为正样本还是把负样本识别为负样本)除以测试集的数据总量就是准确率。在用scikit-learn调用分

2015-09-07 19:21:58 10765

原创 Hadoop运行wordcount出现“JobTracker is not yet RUNNING”

安装配置完hadoop1.2.1之后,我们就需要跑个例子,首先启动hadoop,在hadoop的home路径中键入:bin/start-all.sh然后在hdfs上创建input文件夹,键入命令:hadoop dfs -mkdir /input然后在input文件夹中放入一些文本文件,键入命令:hadoop dfs -put ./*.txt /input/接下来就要执行程序了,键入命令:hadoop

2015-09-01 18:19:50 2306

原创 UserCF和ItemCF终极对比

说是终极对比,明确告诉你,就是在炒作!本文内容主要是我看了项亮的《推荐系统实践》一书,之前对于UserCF和ItemCF也是用的模模糊糊,这次好好整理了一下,加上自己一些总结和心得。UserCF推荐和当前用户相似度高的N个用户产生过行为的物品给当前用户;这些物品是当前用户没有行为过而其他N个用户行为过的物品的前M个;余弦相似度改进:在分子中除了考虑两个用户共同行为的物品,还考虑到这个物品被多少个用户

2015-08-27 16:24:23 9654

原创 我对说话人识别/声纹识别的研究综述

GMM-UBM系统框架GMM-UBM的核心思想是用混合高斯函数去拟合特征在高维空间的概率密度分布,在训练说话人模型的时候,由于注册时说话人的数据稀疏,通常利用一个通用背景模型(Universal Background Model,UBM)和少量的说话人数据,通过自适应算法(如最大后验概率MAP,最大似然线性回归MLLR等)得到目标说话人模型;在测试时,用测试语音相对于目标说话人模型和UBM模型

2015-08-25 10:50:55 30402 9

原创 机器学习算法需要注意的一些问题(二)

训练样本大小选取的问题模型学习的准确度与数据样本大小有关,那么如何展示更多的样本与更好的准确度之间的关系呢?我们可以通过不断增加训练数据,直到模型准确度趋于稳定。这个过程能够很好让你了解,你的系统对样本大小及相应调整有多敏感。所以,训练样本首先不能太少,太少的数据不能代表数据的整体分布情况,而且容易过拟合。数据当然也不是越多越好,数据多到一定程度效果就不明显了。不过,这里假设数据是均匀分布增加的。然

2015-08-12 14:23:25 4674

原创 机器学习中梯度下降法和牛顿法的比较

在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解。在逻辑斯蒂回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法。由于两种方法有些相似,我特地拿来简单地对比一下。下面的内容需要读者之前熟悉两种算法。梯度下降法梯度下降法用来求解目标函数的极值。这个极值是给定模型给定数据之后在参数空间中搜索找到的。迭代过程为:可以看出,梯度下降法更新参数

2015-08-10 19:25:05 20801 1

原创 机器学习中关于判断函数凸或凹以及最优化的问题

在很多机器学习算法中,都会遇到最优化问题。因为我们机器学习算法,就是要在模型空间中找到这样一个模型,使得这个模型在一定范围内具有最优的性能表现。因此,机器学习离不开最优化。然而,对于很多问题,我们并不总能够找到这个最优,很多时候我们都是尽力去找到近似最优,这就是解析解和近似解的范畴。很多最优化问题都是在目标函数是凸函数或者凹函数的基础上进行的。原因很简单,凸函数的局部极小值就是其全局最小值,凹函数的

2015-08-10 16:26:50 31008 3

原创 从集成学习到模型的偏差和方差的理解

模型的偏差和方差的权衡和讨论其实是贯穿在整个机器学习理论当中的。机器学习的每一个算法或者模型都有对这两方面的判断和取舍。今天在看scikit-learn文档关于集成学习的论述中又提到偏差和方差,所以我想谈一谈我对这两个概念的理解。集成学习集成学习是一种组合类型的学习方法。它采用多个基分类器组合成一个总分类器,能够达到单个基分类器所达不到的效果。根据将多个基分类器集成在一起的方式,集成学习主要分为两类

2015-08-06 15:01:53 8311 1

原创 声纹识别之PLDA算法描述

之前我写过《我对说话人识别/声纹识别的研究综述》,本篇基本上可以是这个综述的续写。其实,写的也没有什么深度,想获得深度信息的朋友们可以不用往下看了,还不如下载几篇领域内的国内博士论文看看。为什么是国内呢?因为国内博士论文前面的综述写的还不错,嘿嘿~我写这个主要是给不熟悉这个领域内的朋友看的,用通熟的话描述这个领域内重要的一些算法,等于是入个门吧。PLDA算法前面博客已经提到过声纹识别的信道补偿算法,

2015-08-05 09:59:41 29821

原创 机器学习算法需要注意的一些问题

对于机器学习的实际运用,光停留在知道了解的层面还不够,我们需要对实际中容易遇到的一些问题进行深入的挖掘理解。我打算将一些琐碎的知识点做一个整理。1 数据不平衡问题这个问题是经常遇到的。就拿有监督的学习的二分类问题来说吧,我们需要正例和负例样本的标注。如果我们拿到的训练数据正例很少负例很多,那么直接拿来做分类肯定是不行的。通常需要做以下方案处理:1.1 数据集角度通过调整数据集中正负样本的比例来解决数

2015-07-28 19:22:58 4768 2

转载 逻辑回归与决策树在分类上的一些区别

转自:http://www.itongji.cn/article/121930092013.html营销预测模型的目标变量很多为一种状态或类型,如客户“买”还是“不买”、客户选择上网方式为 “宽带”还是“拨号”、营销战通道是邮件、电话、还是网络。我们把这类问题统称为 “分类”。决策树和逻辑回归都是解决“分类”问题的高手。用不同的算法解答同样的问题,自然引出了两者孰优孰劣的讨论,但迄今为止,仍然没有一

2015-07-23 15:14:30 11502

原创 Python字典key值查询效率低的问题

最近用Python脚本处理数据。需要建立了一个字典,大概有200w个键值对,然后将这个字典用pickle存起来。在建立这个字典的时候,发现特别的慢。于是乎,尽量减少输出语句。发现还是很慢。估计了一下居然要超过一天!然后,我耐心地一行代码一行代码地分析运行效率的问题。最后发现,瓶颈竟然是在这一句: if mykey not in myDict.keys(): 其实我建立字典并没有必要做这个判断,于

2015-07-18 12:53:03 9393 9

原创 总结PageRank

PageRank 当我们根据关键词搜索互联网上的内容时,对于不止一个的搜索结果,谁先谁后呢?PageRank就是为了解决这个问题而生的。 PageRank,一个对网页进行排序的算法,由佩奇和布林为Google设计。该算法将整个互联网中的网页看做是一个整体,不考虑具体每一个网页的内容属性,而只关注网页之间的关联。 我们知道,网页之间的关系无非就是链接的指入和指出。PageRank认为,如

2015-07-17 17:14:25 914

原创 Apriori算法简单总结

关联分析是一种在大规模数据集中寻找有趣关系的任务。Apriori是解决这一问题的基本算法。这个算法也是数据挖掘的入门算法。 首先明确两个个概念:频繁项集和关联规则。 - 频繁项集:经常出现在一块儿的物品的集合。 - 关联规则:暗示两种物品之间可能存在很强的关系。 那么,如何定量地定义这种很强的“关系”?“频繁”又是什么?这里又必须明确两个概念:支持度和可信度。 -

2015-07-16 16:42:39 4524

原创 经典算法总结之AdaBoost与随机森林

Boost方法以及随机森林是最近比较火的算法,具有很多优点能够解决很多问题。现在先把重要概念总结一下,有新的想法随时补充~

2015-07-13 16:01:17 9881 5

原创 UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinal not in range(128)

用Python调用画图模块matplotlib的时候,运行老是报错:“UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xd3 in position 1: ordinal not in range(128)”。网上都是说字符编码问题,最常见的解决方法是,在脚本开头加上这样的代码:import sysreload(sys)sys.setde

2015-07-10 14:36:10 2362

原创 Python使用libsvm的“ImportError: No module named svmutil”问题

这几天快被Python的一些细节问题整死了,浪费了不少时间。现在把这些记录下来,让遇到同样问题的朋友少走弯路。

2015-07-10 14:20:40 13525 1

原创 SVM学习记录1:线性可分硬间隔最大化

SVM是机器学习中非常流行的一个分类算法,尤其是处理二分类问题。但是相对于其他算法SVM可能难度稍大——至少我是这么觉得。但是,这又是一个必须攻克的课题。我在学习SVM的时候痛下决心,将自己的学习历程记录在笔记本上。现在将其整理成博客,与诸君共勉。

2015-07-06 17:00:46 3679

原创 对逻辑斯蒂回归的一些细节剖析

首先声明:本博客的写作思路是对机器学习的一些基本算法做一些通俗性的灵活理解,以及对一些细节的进行简单剖析,还有记录本人在使用算法时的一些小经验小感想。本人一般不会对基本公式做大量推导,也不会写的太正式,这些可以在很多其他博客中找到。由于本人还是学生一枚,经验知识粗浅,还望能和朋友们参与讨论。之前本博客简单谈过线性回归相关知识点,这次来谈一下逻辑斯蒂回归。虽然也叫回归,但是逻辑斯蒂回归是一种分类算法。

2015-07-04 15:48:37 9796 3

原创 C++ STL内部简单细节整理

对于使用C++语言进行项目开发的同学,STL必然是必须掌握并且熟练的技术。除了能够熟练使用,我们当然也有必要知道其内部实现原理。当然,对于新手或者并属于一线开发者的同学,一下子看懂STL源码是不现实的,但是我们可以从简单的地方入手,慢慢去了解掌握它。下面我就总结一些最基本的细节。

2015-06-28 21:04:46 3136 2

原创 C++并发编程概述——关于并行编程分布式编程

对于并发编程的诸多方法本人一直感觉到混乱,刚好最近看了一些资料,觉得是时候系统的梳理一下了。以下资料大部分来自《C++并行与分布式编程》,英文版叫《Parallel and Distributed Programming Using C++》。有兴趣的同学可以找来看一下。

2015-06-26 10:06:23 7255

原创 从线性回归谈到岭回归lasso回归再到结构风险最小化和参数缩减

回归和分类是机器学习算法所要解决的两个主要问题。分类大家都知道,模型的输出值是离散值,对应着相应的类别,通常的简单分类问题模型输出值是二值的,也就是二分类问题。但是回归就稍微复杂一些,回归模型的输出值是连续的,也就是说,回归模型更像是一个函数,该函数通过不同的输入,得到不同的输出。       那么,什么是线性回归,什么是非线性回归呢?线性回归与非线性回归       前面说了,我们的回归模型是一个

2015-06-22 16:54:21 6078 4

原创 到底什么是云计算?

现如今,在计算机科学与工程领域,“云计算”可谓是个最火的词。可是,就像之前的“深度学习”,“大数据”一样,这些被炒的很火的词除了确实人更多的人知道了当今发展热点之外,却也为广大学习者和爱好者带来了困惑。仿佛觉得这就是传说中的“计算机科学的技术日新月异,更新很快”的合理解释,从而拼命去学习一个又一个技术,却不得要领,越学越累,没了当初的强烈兴趣。本人就是深受其害,也深知了解其本质和发展脉络的重要性。下

2015-06-21 12:01:27 983

原创 无公式无代码白话机器学习算法之决策树

今天开始读刘未鹏的《暗时间》一书。在序言中,有一句话引起了我的兴趣,“波普尔曾经说过:人生不过是解决问题。而判断和决策又是其中最常见的一类问题解决。” 哈哈,我们的机器学习各种算法不就是解决问题的嘛,决策树不就是最常见的一种解决分类或者回归问题的机器学习算法嘛!刚好凑到一起去了。的确,个人感觉决策树是所有常见机器学习算法中最容易直观理解其原理的,也符合我们大部分人在面对问题时做出决策的思路。今天我们就来侃一侃这个“平易近人”的决策树。

2015-06-14 15:09:52 2264

原创 无公式无代码白话机器学习入门算法KNN(K近邻算法)

学习机器学习的基本算法的时候

2015-06-13 16:00:30 1727

原创 奇异值分解SVD在简单推荐系统中的应用

说到奇异值分解SVD,对机器学习有所了解的朋友都或多或少了解一些,无非就是将原始数据按照一定规则分解为三个矩阵,其中中间的矩阵的对角元素就是“奇异值”,是按照小大到小的顺序排列的。我们可以按照一定的方法选择最重要的前几个奇异值,同时相应地删减第一个和第二个矩阵的某些行和列。这样,删减后的三个矩阵相乘后,可以重构出一个数据矩阵,而这个矩阵和原始数据矩阵在一定程度上相差无几,从而达到了降维和简化运算的

2015-06-12 19:33:32 8175 2

原创 手写简单的string类

在C++面试中关于的面向对象知识点的考察中,面试官很可能会直接让你实现一个简单的类。而是实现一个系统中已经存在的类比如String更是可能性很高,笔者就遇到了这种情况。一个简单的类包含了面向对象中的诸多细节,不失为一种很好的考察形式。除了基本的构造函数,析构函数,访问级别控制外,复制构造函数,赋值操作符,友元,异常安全性的了解与使用也是非常重要的方面。下面是我自己实现的一个简单的String类,以后有空再持续完善。

2015-05-20 21:28:50 3325 2

原创 特定条件下结构风险最小化等价于最大后验概率估计得证明

机器学习的三要素为模型、策略和算法。其中策略的两种是经验风险最小化和结构风险最小化。李航老师的《统计学习方法》第9页指出“当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。”下面给出证明,不足不对的地方请指正。首先给出最大后验概率的定义,引用维基百科对其的定义,有:****************************

2015-04-11 16:16:37 7889 4

原创 特定条件下经验风险最小化等价于极大似然估计的证明

看过李航老师的《统计学习方法》的同学都知道,机器学习(统计学习)的三要素为:模型、策略、和算法。其中,模型就是所要学习的条件概率分布或者决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。统计学习的目标在于从假设空间中选取最优模型。其中的两种选择最优模型的策略就是经验风险最小化和结构风险最小化。而算法负责根据策略求解出最优模型。今天我尝试着给出《统计学习方法》第9页的“当模型是条件概

2015-04-09 20:56:35 14228 2

原创 两个链表的第一个公共结点(两种解法)

题目:输入两个链表,找出它们的第一个公共结点。解法一:不采用任何辅助数据结构,剑指offer标准代码ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2){ // 得到两个链表的长度 unsigned int nLength1 = GetListLength(pHead1); unsig

2015-03-08 21:54:04 779

转载 C#的值类型和引用类型

转自Autumoon:http://www.cnblogs.com/Autumoon/archive/2008/08/18/1270685.html似乎“值类型和引用类型的区别”是今年面试的流行趋势,我已然是连续三次(目前总共也就三次)面试第一个问题就遇到这个了,这是多大的概率啊,100%,哈哈,我该买彩票去!言归正传,咱还是先来探讨探讨这二者之间有什么区别吧。记得有一次电话面试中

2015-01-15 15:57:20 697

转载 C++类对象成员变量和成员函数内存分配的问题

(转载自:http://blog.sina.com.cn/s/blog_4feac7b90101keet.html)很多人都知道C++类是由结构体发展得来的,所以他们的成员变量(C语言的结构体只有成员变量)的内存分配机制是一样的。下面我们以类来说明问题,如果类的问题通了,结构体也也就没问题啦。 类分为成员变量和成员函数,我们先来讨论成员变量。 一个类对象的地址就是类所包含的这一片内存空间的

2015-01-12 20:26:45 9116 5

原创 C++与类型转换相关的4个关键字

什么是类型转换?表达式是否合法取决于操作数的类型,而且合法的表达式其含义也由操作数类型决定。但是在C++中,某些类型之间存在相关的依赖关系。若两种类型相关,则可在需要某种类型的操作数位置上,使用该类型的相关类型对象或值。如果两个类型之间可以相互转换,则称这两个类型相关。

2015-01-06 11:28:50 2289

原创 C++实现二叉树前序中序后续遍历的非递归方法总结

前序中序相对简单,不废话,直接代码:

2014-10-13 15:16:07 4670

空空如也

空空如也

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

TA关注的人

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