放牧代码和思想
专注自然语言处理、机器学习算法

标签:《统计学习方法》

CRF++代码分析
机器学习

CRF++代码分析

hankcs阅读(1512)评论(8)

本文按照调用顺序抽丝剥茧地分析了CRF++的代码,详细注释了主要函数,并指出了代码与理论公式的对应关系。内容包括拟牛顿法的目标函数、梯度、L2正则化、L-BFGS优化、概率图构建、前向后向算法、维特比算法等。 背景知识请参考《条件随机场》。...

条件随机场
机器学习

条件随机场

hankcs阅读(1506)评论(1)

本文是《统计学习方法》第11章的笔记,在课本的基础上加入了自己的注释和理解。作为CRF的入门读物,著名的几篇英文教程难度稍高,还是李航博士的《方法》比较适合初学者。其拟牛顿法讲解可以直接与CRF++的代码对应,实为难得。我还单独写了篇《CR...

隐马尔可夫模型
机器学习

隐马尔可夫模型

hankcs阅读(1077)评论(1)

本文是《统计学习方法》第10章的笔记,用一段167行的Python代码实现了隐马模型观测序列的生成、前向后向算法、Baum-Welch无监督训练、维特比算法。公式与代码相互对照,循序渐进。 HMM算是个特别常见的模型,早在我没有挖ML这个坑...

EM算法及其推广
机器学习

EM算法及其推广

hankcs阅读(1162)评论(6)

本文是《统计学习方法》第九章的笔记,注解了原著的部分公式推导,补充了另一个经典的双硬币模型,并且注释了一份数十行的EM算法Python简明实现。 如果概率模型的变量都是观测变量(数据中可见的变量),则可以直接用极大似然估计,或者用贝叶斯估计...

提升方法
机器学习

提升方法

hankcs阅读(697)评论(1)

本文是《统计学习方法》第8章提升方法的笔记,整合了《机器学习实战》中的提升树Python代码,并添加了注解和PR值计算代码。《方法》重理论,但不易理解,《实战》重实践,但缺乏理论基础,特别是AdaBoost算法的解释、提升树与加法模型的关系...

支持向量机
机器学习

支持向量机

hankcs阅读(1449)评论(4)

本文是《统计学习方法》第七章《支持向量机》的笔记,附带了少量注解和背景知识的补充;后半部分将《机器学习实战》支持向量机的Python代码加以整理注释,与公式放到一起形成对照,辅助理解。私以为,没有泛函分析基础的人是无法深刻理解支持向量机的,...

拉格朗日对偶性
机器学习

拉格朗日对偶性

hankcs阅读(1303)评论(4)

在看《统计学习方法》支持向量机一章的时候,看到“应用拉格朗日对偶性(参阅附录C),通过求解对偶问题得到原始问题的最优解”一句,于是往下递归学习了一下附录C的拉格朗日对偶性。名曰学习,实则是摘抄,加入了少量个人理解与背景补充。毕竟定理和推论看...

逻辑斯谛回归与最大熵模型
机器学习

逻辑斯谛回归与最大熵模型

hankcs阅读(1663)评论(3)

本文希望通过《统计学习方法》 第六章的学习,由表及里地系统学习最大熵模型。文中使用Python实现了逻辑斯谛回归模型的3种梯度下降最优化算法,并制作了可视化动画。针对最大熵,提供一份简明的GIS最优化算法实现,并注解了一个IIS最...

决策树
机器学习

决策树

hankcs阅读(4226)评论(3)

   “何以别离久,何以少团栾。” 本文对应《统计学习方法》 第5章,用Python实现了决策树的ID3生成算法和C4.5生成算法,并用matplotlib可视化出来。 决策树模型与学习 决策树模型 分类决策树模型是一种...

朴素贝叶斯法
机器学习

朴素贝叶斯法

hankcs阅读(3221)评论(8)

本文是《统计学习方法》第4章的笔记,用图形补充说明了条件概率分布计算时可能引发的维数灾难,在文末用Python实现了一个基于贝叶斯文本分类器的简单情感极性分析器,可以分析中文句子的情感极性。 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的...

我的开源项目

HanLP自然语言处理包基于DoubleArrayTrie的Aho Corasick自动机