自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 马尔可夫链蒙特卡洛法(MCMC)的原理讲解以及Metropolis-Hasting与Jibbs算法python实现

马尔可夫链考虑一个随机变量的序列X={X0,X1,⋯ ,Xt,⋯ }X=\{X_0, X_1,\cdots,X_t,\cdots\}X={X0​,X1​,⋯,Xt​,⋯},这里XtX_tXt​表示时刻ttt的随机变量,t=0,1,2,⋯t=0,1,2,\cdotst=0,1,2,⋯,每个随机变量XtX_tXt​的取值集合相同,称为状态空间,表示为SSS。随机变量可以是离散的,也可以是连续的,以上...

2020-08-31 21:39:59 3117

原创 多维正态分布的边缘概率与条件概率的公式(只有结论,无推导)

设XXX为服从多维正态分布的随机变量,即X∼N(μ,Σ)X\sim N(\mu,\Sigma)X∼N(μ,Σ)将XXX分成两个部分:Xa,XbX_a,X_bXa​,Xb​,μ\muμ分成两个部分:μa,μb\mu_a, \mu_bμa​,μb​,Σ\SigmaΣ分成四个部分:Σaa,Σab,Σba,Σbb\Sigma_{aa},\Sigma_{ab},\Sigma_{ba},\Sigma_{bb...

2020-03-04 17:14:20 2201 1

原创 蒙特卡洛法(Monte Carlo method)进行抽样之接受拒绝抽样法(accept-reject sampling method)

接受拒接抽样法假设有随机变量xxx,其概率密度函数为p(x)p(x)p(x),目标是得到该概率分布的随机样本,以对这个概率分布进行分析。接受拒绝抽样法的思想是,假设p(x)p(x)p(x)不能直接抽样,我们需要找一个可以直接抽样的分布q(x)q(x)q(x),称为建议分布。在这里要求cq(x)⩾p(x)cq(x)\geqslant p(x)cq(x)⩾p(x),其中c>0c>0c&...

2020-02-23 13:00:41 6077

原创 如何能让matplotlib库显示中文而不是乱码?两行代码搞定!很简单!

在将matplotlib.pyplot库导入后添加如下代码:import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']接下来labels就可以显示你所要显示的中文了!看看效果:...

2020-02-23 12:37:13 2439

原创 潜在语义分析(LSA)的原理讲解以及python实现

在传统的文本信息处理中,以单词向量表示文本的语义内容,以单词向量空间的度量来表示文本之间的语义近似度。这种方法不能准确表示语义。潜在语义分析试图从大量的文本数据中发现潜在的话题,以话题向量来表示文本的语义内容,以话题向量的空间度量更准确地表示文本之间的语义相似度。潜在语义分析使用的是非概率的话题分析模型,具体来说,就是将文本集合表示为单词-文本矩阵,对单词-文本矩阵进行奇异值分解,从而得到话题...

2020-02-19 20:11:43 7307 1

原创 强化学习中的multiarmed-Bandit以及经典解法epsilon-greedy算法与UCB算法,附加python实现

最近在看Management Science上的文章《A Dynamic Clustering Approach to Data-Driven Assortment Personalization》,其中提到了一个Multiarmed-Bandit模型,想要深入学习一下,但是查遍各种网站,都没有中文的关于这个问题的介绍,因此去油管上学习,然后翻译成中文在这里跟大家分享。Exploration a...

2020-02-14 17:48:04 8373 2

原创 聚类方法的原理,层次聚类法、K均值聚类法以及python实现

相似度或距离1、闵可夫斯基距离dij=(∑k=1m∣xki−xkj∣p)1pd_{ij}=\Bigg(\sum_{k=1}^m|x_{ki}-x_{kj}|^p\Bigg)^{\frac{1}{p}}dij​=(k=1∑m​∣xki​−xkj​∣p)p1​在这里,p⩾1p\geqslant1p⩾1当p=2p=2p=2时称为欧式距离:dij=(∑k=1m∣xki−xkj∣2)12d_{ij...

2020-02-10 20:02:14 5188

原创 隐马尔可夫模型(HMM)的原理以及三种主要问题的解决

隐马尔可夫模型介绍隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测从而形成观测序列的过程。设QQQ为所有可能的状态的集合,VVV是所有可能的观测集合:Q={q1,q2,⋯ ,qN},    V={v1,v2,⋯ ,vM}Q=\{q_1,q_2,\cdots,q_N\},\,\,\,\,V=\{v_1,v_2,\cdots,...

2020-02-08 16:49:58 8453

原创 EM算法的原理以及推广参考《统计学习方法》

EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计首先引入:三硬币模型假设有三枚硬币,分别记作A,B,CA,B,CA,B,C。这些硬币正面出现的概率分别为π,p,q\pi,p,qπ,p,q。首先抛AAA硬币,根据其结果选择抛B,CB,CB,C硬币。正面选BBB,反面选CCC,然后记录最终硬币出现的结果。观测结果如下:1,1,0,1,0,0,1,0,1,11...

2020-02-06 15:30:16 5039

原创 提升算法AdaBoost原理以及python实现

提升算法的主要思想就是从弱分类器出发,反复学习,得到一系列弱分类器(也称为基本分类器),然后组合这些弱分类器,构成一个强分类器。大多数提升方法都是改变训练数据的概率分布(也就是训练数据的权值分布),之后针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。因此,提升方法需要解决两个问题:1、在每一轮如何改变训练样本数据的权值;2、如何将弱分类器组合成为一个强分类器。AdaBoost的做法是:...

2020-02-04 12:22:45 5571

原创 重磅!最全最有效!SVM凸规划求解采用序列最小最优化算法(SMO)的python实现

SMO是求解软间隔线性SVM(带核函数)的对偶问题的一种启发式算法,运算效率很高,大大推动了SVM算法的实际应用。SMO算法的原理在之前的文章:支持向量机(SVM)凸二次规划的求解——序列最小最优化算法(SMO)原理及python实现有十分详细的介绍,这里直接展示代码from sklearn import datasetsimport matplotlib.pyplot as plt # 画...

2020-02-01 17:44:10 7026

原创 支持向量机(SVM)凸二次规划的求解——序列最小最优化算法(SMO)原理及python实现

原问题:min⁡α12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi\min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_iαmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​K(xi​,xj​)−i=1∑N​αi​s....

2020-01-30 22:50:37 10755 2

原创 非线性支持向量机(SVM)与核函数(kernel),python实现

将线性支持向量机向非线性支持向量机推广需要用到核函数技巧(kernel trick),一般分为两步:1、使用一个变换将原空间的数据映射到新空间;2、在新空间用线性分类器分类学习从训练数据中学习分类模型。核函数运用到支持向量机就是通过一个非线性变换将输入空间对应到一个特征空间,使得在输入空间Rn\textbf R^nRn中的超曲面模型对应于特征空间中的超平面模型。这样,分类问题就可以通过在特征...

2020-01-30 16:21:21 10901

原创 线性支持向量机(SVM)与软间隔最大化

之前的文章:线性可分硬间隔支持向量机链接: 线性可分硬间隔支持向量机中所介绍的方法对于线性不可分的数据集并不适用,因为在求解凸二次规划问题时不能保证所有的约束条件都得到满足。假设样本数据集是线性不可分的,训练数据中存在一些奇异点,将这些奇异点去除之后,剩余的大部分样本是线性可分的。为了解决这个问题,对每一个样本点(xi,yi)(x_i,y_i)(xi​,yi​)引入一个松弛变量ξi⩾0\xi...

2020-01-29 21:34:56 6809 1

原创 支持向量机(SVM)的原理(线性可分硬间隔)

线性可分支持向量机给定线性可分的数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为w∗⋅x+b=0w^*\cdot x+b=0w∗⋅x+b=0以及相应的分类决策函数f(x)=sign(w∗⋅x+b)f(x)=sign(w^*\cdot x+b)f(x)=sign(w∗⋅x+b)称为线性可分支持向量机。一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度...

2020-01-29 15:51:09 7061

原创 逻辑回归(logistic regression)的原理以及python实现

逻辑斯蒂分布设XXX是连续随机变量,XXX拥有下列分布函数和概率密度F(X)=P(X⩽x)=11+e−(x−μ)/γF(X)=P(X\leqslant x)=\frac{1}{1+e^{-(x-μ)/γ}}F(X)=P(X⩽x)=1+e−(x−μ)/γ1​f(x)=F′(x)=e−(x−μ)/γγ(1+e−(x−μ)/γ)2f(x)=F^{'}(x)=\frac{e^{-(x-μ)/γ}}{...

2020-01-28 17:02:45 7259

原创 决策树(decision tree)的原理以及python实现——ID3、C4.5、CART

分类决策树决策树由结点和有向边组成,其中结点有两种类型:内部节点和叶节点。内部节点表示一个特征和一个属性,叶节点表示一个类。决策树与if-then规则转化可以将决策树看作一个if-then规则的集合,由决策树的根结点到叶结点的每一条路径构建一条规则;路径上内部节点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的学习假设给定训练数据集D={(x1,y1),(x2,y2),....

2020-01-27 14:44:19 9796

原创 朴素贝叶斯(naive Bayes)的python实现——基于《统计学习方法》例题的编程求解

朴素贝叶斯方法是基于贝叶斯定理与特征条件独立假设的分类方法。认为样本的特征X与标签y服从联合概率分布P(X, y),所有的样本都是基于这个概率分布产生的。由于条件概率P(X=x|Y=y)的参数具有指数数量级,因此进行估算切实际。贝叶斯法对条件概率分布做了条件独立性假设,从而减少了模型的复杂性,增加了模型的泛化能力,减少了过拟合的风险。#后验概率最大化可以证明,期望风险最小化准则可以得到后验概率...

2020-01-26 19:30:19 7371

原创 k近邻(k-NN)算法的python实现

k-NN算法是实现分类的一种简单有效的算法,并且可以实现多类别分类。k-NN算法的三个要素为:距离度量、k值的选择以及分类决策规则。本文采用欧式距离作为距离度量,近邻数量选取为7,采用多数票方式决定样本的类型。def distance(): distances = [] for i in range(X.shape[0]): t = 0 for ...

2020-01-26 18:05:08 7271

原创 感知机(perceptron)的python实现

感知机的python实现感知机是对线性可分的数据进行分类的一种模型,属于判别模型。通过所给出的数据集,求解出一个超平面,将两种不同类别的数据分离开来。其损失函数是误分点到超平面的距离,优化过程是将该距离变为0,从而实现消灭误分点,实现数据的成功划分的目的。本文参考《统计学习方法(第二版)》李航著,第二章内容,将感知机的求解分为原始形式和对偶形式,分别通过python求解。首先是原始形式:i...

2020-01-26 17:15:40 7301 2

空空如也

空空如也

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

TA关注的人

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