
统计学习方法
Akari0216
大数据机器学习爱好者
展开
-
统计学习方法 第十五章 奇异值分解
奇异值分解(SVD,singular value decomposition)是一种矩阵因子分解方法。任意一个m x n 矩阵都可以表现为三个矩阵的乘机形式,分别是m阶正交矩阵、降序排列非负对角线m x n矩阵和n阶正交矩阵。可以看做是矩阵数据压缩的一种方法,近似地表示原始矩阵,且在平方损失意义下的最优近似。 SVD分解:A = UΣVT 存在性证明过程略。 SVD分解还有紧奇异值分解和截断奇异值分解。几何解释为,m x n矩阵A表示从n维空间Rn到m维空间Rm的一个线性变换,分解为:一个坐标系的旋转或反射原创 2020-07-07 16:24:09 · 901 阅读 · 0 评论 -
统计学习方法 第十四章 聚类方法
聚类方法属于挖掘数据纵向结构的方法(假设为m*n矩阵,m为数据维度或者属性,n为数据个数),依据其特征的相似度或者距离进行归并到若干个“类”或者“簇”的过程。聚类属于无监督学习。常用的两种聚类算法:层次聚类(分聚合以及分裂两种算法)、k均值聚类算法。 聚类的相似度或距离,有4种方法:闵可夫斯基距离,马哈拉诺比斯距离,相关系数,夹角余弦。通过定义距离之后就可以定义族或者簇,并定义类与类之间的距离。 层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中,这里不细讨论,主要描述k均值聚类算法。 k均值聚类算法原创 2020-05-10 01:55:11 · 658 阅读 · 0 评论 -
统计学习方法 第十一章 条件随机场
条件随机场(CRF,conditional random field)是给定一组输入随机变量下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔科夫随机场。通过概率无向图可以描述条件随机场。通常考虑线性链的情况。 条件随机场有3种形式进行描述,分别是参数化形式、简化形式以及矩阵形式。参数化形式中,转移特征及对应权值、状态特征及对应权值均在表达式中给出;简化形式及把两个特征合并到...原创 2020-04-19 23:54:51 · 336 阅读 · 0 评论 -
统计学习方法 第十章 隐马尔可夫模型
隐马尔可夫模型(hidden Markov model,HMM)是可用于标注问题的统计学习模型,描述隐藏的马尔科夫链随机生成观测序列的过程,属于生成模型。由初始状态概率向量π、状态转移概率矩阵A和观测概率矩阵B决定的隐马尔可夫模型λ=(A,B,π)的3个基本问题,分别为: 1.概率计算问题,在给定模型和观测序列,求该模型下序列出现的概率; 2.学习问题,给定观测序列去求模型λ=(A,B,π)的参数...原创 2020-04-11 18:31:16 · 359 阅读 · 0 评论 -
统计学习方法 第九章 EM算法
EM算法是用于解决含有隐变量的概率模型参数的极大似然估计,每次迭代由两步组成,E步求期望,M步求极大。而对于高斯混合模型(GMM)上EM算法也是一个有效的解决方法。 现以习题9.1为例,简单实现一下EM算法 import numpy as np #计算E步 def expectationCal(pi,p,q,y): u = pi * (p ** y) * ((1 - p) ** (1 -...原创 2020-04-02 15:48:27 · 530 阅读 · 0 评论 -
统计学习方法 第八章 AdaBoost
adaboost的原理是,由于在PAC学习的框架下,一个概念的强可学习的充要条件是这个概念是弱可学习的,所以就引出一个思路,对于二分类的数据,通过串行学习弱分类器,并使用加权多数表决方法对弱分类器组合成一个强分类器。而再引申后,adaboost也是损失函数为指数函数的加法模型,使用前向分步学习算法获得。 现在直接通过代码展示其中的逻辑,该部分代码源于《机器学习实战》 import numpy as...原创 2020-03-22 18:12:57 · 550 阅读 · 0 评论 -
统计学习方法 第三章 K近邻法
k近邻的实现过程: 1.计算已知类别数据集中的每个点与当前点之间的距离 2.按照距离递增次序排序 3.选取与当前距离最小的k个点 4.确定前k个点所在的类别的出现频率 5.返回前k个点出现频率最高的类别作为当前点的预测分类 参考《机器学习实战》里的第二章,先做出原始形式的knn代码: import numpy as np import operator #欧氏距离计算 def dist_eucl...原创 2020-02-01 17:48:16 · 255 阅读 · 0 评论 -
统计学习方法 第二章 感知机
原理不多描述,直接上代码 原始形式 import numpy as np def perceptron(x_arr,y_arr,eta = 1): data_mat = np.mat(x_arr) label_mat = np.mat(y_arr).T m,n = np.shape(data_mat) w = np.zeros((n,1)) b = 0 ...原创 2020-01-31 04:05:11 · 207 阅读 · 0 评论