
【算法】 统计学习方法
文章平均质量分 96
关于李航《统计学习方法》一个系统学习笔记,涉及到书中内容的提炼以及个人的一些理解
爱科研的徐博士
中科院博士,助理研究员,专注于多模态+NLP,热爱科研,想成为你的科研小助手~
我相信:所谓的不平凡就是平凡的幂次方
展开
-
【很详细】高斯分布之间的KL散度讲解+Python代码实现
非常详细的高斯分布、高斯分布的KL散度的讲解,附带Python代码,加深理解,全过程,很详细原创 2023-06-10 23:44:53 · 4756 阅读 · 1 评论 -
Boost算法拓展---几种Boost方法
前言oost算法是基于PAC学习理论(probably approximately correct)而建立的一套集成学习算法(ensemble learning)。其根本思想在于通过多个简单的弱分类器,构建出准确率很高的强分类器,PAC学习理论证实了这一方法的可行性。下面关于几种Boost算法的比较。discrete AdaBoost参考链接原创 2017-07-06 22:51:22 · 2726 阅读 · 0 评论 -
AdaBoost算法的实现一
前言依旧按照之前的博客路线来:介绍算法的基本原理和概念——>算法的拓展知识——->代码实现。本节主要是介绍sklearn包中有关AdaBoost方法的使用。包:sklearn.ensemble组合技术通过聚集多个分类器的预测来提高分类准确率。 常用的组合分类器方法:(1)通过处理训练数据集。 即通过处理某种抽样分布,对原始数据进行再抽样,得到多个训练集。 常用的方法有装袋(Bagging原创 2017-07-07 09:27:20 · 2217 阅读 · 0 评论 -
统计学习笔记九----EM算法
前言 EM算法是一种迭代算法,1977年由Dempster等人总结提出,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望(expection);M步,求极大值(maximization),所以这一算法称为期望极大算法(exception maximization algorithm),简称EM算法。极大似然原创 2017-07-14 15:33:15 · 5974 阅读 · 6 评论 -
AdaBoost------Python实现二
我极度槽糕的心情!!!今天早上我突然发现了一件让我很伤心的事情,前天写的一篇技术博文《统计学习方法笔记八—-提升方法》竟然没有发表成功!!!而且又被后来的草稿给覆盖了!!!What?!前言上一节我们已经讲过一次代码实现了,主要是调用sklearn中的接口,让大家有个整体上的认识。本节主要是利用Python一步一步的来实现。注意,这只是一个简单的实现,步骤还是相对清晰,有助于对算法的加深理解,但是本算原创 2017-07-10 11:28:18 · 634 阅读 · 0 评论 -
隐马尔模型----四
前言 到目前为止,马尔科夫模型的三个基本问题中只剩下最后一个问题:预测问题,还没有解决。本节我们将介绍马尔科夫模型预测的两种算法:近似算法与维特比算法(Viterbi Algorithm)近似算法 近似算法的思想是,在每个时刻t选择在该时刻最有可能出现的状态,从而得到一个状态序列,将它作为预测的结果。 给定隐马尔科夫模型和观测序列O,在时刻t处于状态的概率为 在每一个时刻t最有可原创 2017-07-25 10:37:51 · 732 阅读 · 0 评论 -
隐马尔模型----五:python实现
实现一本节主要介绍隐马尔的实现,在以下部分我们实现四部分内容并利用课本上的例子进行了验证:1、前向计算法;2、后巷计算法3、在给定模型且观测为self.o的前提下,t时刻,处于状态p的概率4、维特比预测算法# -*- encoding:utf-8 -*-import numpy as npclass HMM: def __init__(self): self.A=np原创 2017-07-25 15:50:09 · 1703 阅读 · 0 评论 -
统计学习方法笔记十一----终结篇
前言 历经整整50天完成了这一轮对李航博士的《统计学习方法》的学习。在此,要说一声抱歉,第十一章《条件随机场》没有给出介绍,第八章《提升方法》被覆盖之后,我也没有后续添加,如果后面有充足的时间,我会继续添加的。 其实,这主要是在自己平时的时间里面来整理的,本应该早就可以整理出来,一方面,是由于个人的拖延症以及贪玩之心;另一方面是,公司业务比较多,没有整时间来梳理这些知识。对于我个人还是有很大原创 2017-07-25 22:29:25 · 584 阅读 · 0 评论 -
马尔科夫模型----三
前言上一节我们已经介绍了马尔可夫模型三个基本问题中的第一个问题:概率计算问题,介绍了三种解决方法:直接计算(暴力法)法、前向计算法、后向计算法,忘记的同学可以点击这里回顾一下。z这一节我们将介绍三个基本问题中的第二个问题:学习问题。 首先我们再把问题陈述一下:已知观测序列,估计模型参数,使得在该模型下观测序列概率最大,即用极大似然估计的方法估计参数。 例如:知道骰子有几种(隐含状态数量),原创 2017-07-24 23:23:57 · 979 阅读 · 0 评论 -
隐马尔科夫模型-----二
概率计算方法 在上节中的最后,我们提出了隐马尔可夫模型的三个基本问题,本节我们就来介绍解决第一个问题(概率计算问题)的方法。在本节中,我们将介绍三种方法:直接计算法、前向算法以及后向算法。直接计算方法 直接计算法方法在概念上或者说理论上是可行的但是在计算上是不可行的,因为它的计算复杂度太高,计算代价太大。 给定模型和观测序列,计算观测序列O出现的概率。最直接的方法就是按照概率公式直接计算。原创 2017-07-22 14:25:24 · 997 阅读 · 0 评论 -
统计学习方法笔记之十----隐马尔科夫模型(一)
## 基本概念隐马尔可夫模型(hidden Markov model。HMM)是指用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,**属于生成模型。**### 隐马尔可夫模型的定义**隐马尔可夫模型** 隐马尔可夫模型是关于时序的概率统计模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。原创 2017-07-16 21:39:36 · 1113 阅读 · 0 评论 -
条件随机场
前言前几天读到了一篇比较好的有关条件随机场的文章,该文只介绍了最最简单的情况,我们在此复述一下,也可以认为是转载一下。英文原文:点击这里 博客原文:点击这里引入例子假设你有许多小明同学一天内不同时段的照片,从小明提裤子起床到脱裤子睡觉各个时间段都有(小明是照片控!)。现在的任务是对这些照片进行分类。比如有的照片是吃饭,那就给它打上吃饭的标签;有的照片是跑步时拍的,那就打上跑步的标签;有的照片是开会转载 2017-08-15 16:27:16 · 707 阅读 · 0 评论 -
Collapsed Gibbs Sampling
(The contents of this post are largely due to a conversation with Percy Liang at ACL.)I’m a big fan of Gibbs sampling for Bayesian problems, just because it’s so darn easy. The standard setup for Gibbs转载 2017-12-20 21:09:35 · 2289 阅读 · 0 评论 -
逻辑斯蒂拓展以及Python实现
为什么使用sigmoid函数在上两节中已经说到,逻辑斯蒂回归只是在线性回归的基础上套用了一个逻辑函数,并且也解释了,线性的原因。忘记的可以回顾一下。下面我们再具体解释一下,为什么逻辑斯蒂选择使用sigmoid函数。为什么是sigmoid函数假设数据集有n个独立的 特征,x1到xn为样本的n个特征。常规的回归算法的目标是拟合出一个多项式函数(线性函数),使得预测值与真实值的误差最小: 但是线性回原创 2017-06-14 14:06:56 · 1488 阅读 · 0 评论 -
统计学习方法学习笔记一
第一章 统计学习方法概论统计学习的主要特点是统计学习的对象统计学习方法的分类统计学方法的三个要素统计学方法的步骤统计学习的研究监督学习supervised leaning三要素模型策略算法训练误差与测试误差过拟合训练误差和测试误差与模型复杂度之间的关系模型的选择方法正则化和交叉验证生成模型和判别模型几种模型评估标准第一章 统计学习方法概论统计学习的主要特点是原创 2017-03-16 09:23:04 · 10141 阅读 · 0 评论 -
统计学习方法笔记三----逻辑斯蒂
0、说明虽然在《统计学习方法》中logistic方法在第五章,但是上一节主要是总结了感知机算法,为了更好的衔接,我打算先把logistic提前总结,因为两种方法都属于线性模型。同样,下一次笔记,我们将介绍SVM算法。1、逻辑斯蒂回归模型逻辑斯蒂回归不是回归,是分类!1.1 逻辑斯蒂分布设X是连续随机变量,X服从逻辑斯蒂分布是指X具有下列分布函数和密度函数:式中,为位置参数,决定了密度函数对称轴的位置原创 2017-06-12 11:29:12 · 2446 阅读 · 0 评论 -
KNN算法拓展及实现
前言K近邻算法是一种思想极其简单,而分类效果比较优秀的分类算法,最重要的是该算法是很多高级机器学习算分基础,并且在后面我们将要学习的集成算法中,k近邻也经常被用来做基础分类器。它的基本思想我们已经在上节介绍过了,在此我们不在赘述,本节主要讲一下有关它的拓展知识以及实现。模型:所有的空间划分,判别模型策略:距离最近的k个邻居方法:多数表决(注意,这里没有可计算的优化方法,可能我也没有说清原创 2017-06-25 13:13:30 · 1459 阅读 · 2 评论 -
感知机学习算法的拓展---非线性可分数据问题
感知机算法中的优化方法的几何解释针对非线性可分数据问题的解决Pocket Algorithm算法原创 2017-06-08 11:33:38 · 3793 阅读 · 0 评论 -
统计学习方法笔记二---感知机(Perceptron Learning Algorithm,PLA)
简介感知机(perceptron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型,解决的问题是分类问题。目标/目的:求出将训练数据进行线性划分的分类超平面,为此导入误分类的损失函数,利用梯度下降法对损失函数进行最小化,求的感知机模型。感知机学习算法具有简单而易于实现的优点,分为原始形原创 2017-06-05 18:02:10 · 3809 阅读 · 1 评论 -
统计学习方法笔记二-----感知机算法(PLA)代码实现
我们利用Python,按照上一节介绍的感知机算法基本思想,实现感知算法的原始形式和对偶形式。原创 2017-06-07 09:12:23 · 5253 阅读 · 5 评论 -
感知机算法拓展---神经网络
神经元神经元是神经网络的基本单元,接受多个神经元传递过来的输入信号,然后通过激活函数计算输出信号。从图里可以看到每个输入信号都有一个权重w,这个权重是动态改变的。我们平时所说的训练神经网络主要是训练(修正)这个权重w。同时每个神经元有一个参数theta,这个theta是阈值,生物意义上,如果输入信号的加权和比阈值高,意味着这个神经元被激活(处于兴奋状态)。信号向下一个神经元传递,但是在这里的感知机模转载 2017-06-08 21:22:25 · 920 阅读 · 0 评论 -
什么是高/低方差、高/低偏差、(推荐阅读)
概念偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据集。 (Ps:假设靶心是最适合给定数据的模型,离靶心越远,我们的预测就越糟糕)方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,预测结果数据的分布越散。 基于偏差的误差:所谓基于偏差的误差是我们模型预期的预测与我们将要预测的真实值之间的差值。偏差是用来衡量我们的模型的预测同真实值的差原创 2017-07-05 14:26:12 · 18059 阅读 · 13 评论 -
朴素贝叶斯的实现
前言我觉得朴素贝叶斯算法是分类算法最被熟知一种算法了,因为它还是比较容易理解的,原理基础就是一个条件概率,只不过又加了一个条件独立性假设。又因为这个假设,可能会存在后验概率为0的可能性错误,所以用平滑来避免这种错误,比如(拉普拉斯平滑处理)。#算法一,调用sklearn中的算法# _*_ encoding:utf-8 _*_from matplotlib import pyplot原创 2017-06-27 17:46:19 · 820 阅读 · 0 评论 -
统计学习方法笔记五---KNN(K近邻)
前言k邻近算法(k-nearest)是一种判别模型,解决分类问题和回归问题,以分类问题为主,在此我们也主要介绍分类问题中的k近邻算法。k近邻算法的输入为实例的特征向量,对应予特征空间中的点;输出为实例的类别,可以取多类,(前面我们介绍的三种方法主要是解决二分类问题)。k近邻算法假设给定一个训练数据集,其中的实例类别已定。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等决策方法进行原创 2017-06-24 15:52:58 · 906 阅读 · 0 评论 -
统计学习方法笔记七----决策树
前言 决策树是通过一系列规则对数据进行分类的过程。它提供一种在什么条件下会得到什么值的类似规则(if-then)的方法。决策树分为分类树和回归树两种,分类数对离散变量做决策树,回归树对连续变量做决策树。本节主要讨论用于分类的决策树。 在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。学习时,利用训练数据原创 2017-07-03 15:17:17 · 2199 阅读 · 1 评论 -
统计学习笔记六----朴素贝叶斯
前言 朴素贝叶斯(naive Bayes)算法是基于贝叶斯定理和特征条件独立假设的分类方法,它是一种生成模型! 对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。 朴素贝叶斯算法实现简单,学习与预测的效率都很高,是一种常用的方法。条件独立性的假设朴素贝叶斯法对条件概率分布作了条件独立性的假原创 2017-06-26 17:20:54 · 1284 阅读 · 0 评论 -
SVM 的实现之SMO算法
引言SVM的学习SMO算法: 需要满足的KKT条件为: (PS:实际上以上的三个公式是我们根据KKT条件得到的 )也就是说找到一组αi可以满足上面的这些条件的就是该目标的一个最优解。所以我们的优化目标是找到一组最优的αi*。一旦求出这些αi*,就很容易计算出权重向量w*和b,并得到分隔超平面了。这是个凸二次规划问题,它具有全局最优解,一般可以通过现有的工具来优化。但当训练样原创 2017-06-22 23:45:15 · 3968 阅读 · 1 评论 -
统计学习方法笔记四---支持向量机
支持向量机(support vector machines, SVM)支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的**<font color=red>间隔最大</font>**的线性分类器,间隔使它有别于感知机;支持向量机还包括和技巧,这使它成为实质上的非线性分类器。原创 2017-06-17 11:14:24 · 1020 阅读 · 0 评论 -
决策树Python实现
Python实现一在这里我们先调用sklearn算法包中的接口,看一下算法的效果。实验数据(可能你并不陌生~~~):Python实现了决策树算法原创 2017-07-04 10:22:20 · 1491 阅读 · 0 评论 -
《统计学习方法》笔记三---逻辑斯蒂(续)
续 最大熵模型 最大熵模型的学习 求解最大熵模型的过程原创 2017-06-12 17:54:23 · 963 阅读 · 1 评论 -
支持向量机拓展 SVM
回顾与总结我们回顾一下我们之前讲过的东西,实际上我们可以发现:1、SVM中需要计算的地方,数据向量总是以内积的形式出现的。2、对于非线性可分的数据,存在一个简化映射空间中的内积运算的核函数。3、对于大部分的数据来说,都是位于分隔超平面两侧的(或者说大部分数据还是分类正确的),所以大部分的样本对决策边界的贡献为0,而只有少数的,重要的支持向量起作用。对于线性可分的数据,我们的优化问题为: 对于原创 2017-06-19 14:24:30 · 889 阅读 · 0 评论