机器学习算法入门索引

索引

简介

最近邻居法

原理

设有M个样本,每个样本都是一个N维向量。
对于一个待分类的向量X,与M个样本进行比较,选取最接近的k个样本,向量X被归类于其中出现最频繁的类别。

实现

对于每个待分类的X,都要与M个样本进行比较,因此计算量大。

决策树学习

原理

这里的决策树指的是分类树。
决策树中的每一个节点代表了一个维度,输入的向量X根据当前节点代表的维度的值的不同划分到了不同的子树,当到达叶子节点时就得到了X的类别。

实现

决策树划分方式通常有两种,信息增益和基尼不纯度。
构建过程一般从根节点开始,每次根据划分方式选择最佳的维度来分裂出子节点。

朴素贝叶斯分类器

原理

实现

逻辑回归

原理

Sigmoid函数: σ(z)=11+ez
Logistic回归分类器在输入向量的每个特征维度上乘以一个回归系数,将结果相加代入Sigmoid函数,大于0.5的数据被归入1类,小于0.5归入0类。

实现

通常用梯度上升方法计算回归系数 w

自适应增强

原理

使用多个弱分类器串行训练成一个强训练器。
首先使用一个原始的学习算法,对训练样本{(xi,yi)|xiR,yi{+1,1}}ni=1进行普通分类器的学习,然后对不能正确分类的样本加大其权重,最正确分类的样本降低权重。边学习边更新样本的权重,并把学习过程中得到的所有分类器放在一起,对其可信度进行平均后训练得到最终的强分类器。

实现

把训练样本 {(xi,yi)}ni=1 对应的各个权重 {wi}ni=1 设置为均等,即 1n ,并把强分类器 f 的初始值设为0。
定义加权误分类率R(φ)=ni=1wi2(1φ(xi)yi)
选择加权误分类率最小的弱分类器 φj 进行学习, φj=argminφ R(φ)
定义弱分类器 φj 的话语权为 θj=12log1R(φj)R(φj)
将弱分类器添加到强分类器 f 中,使得f(x)sign(f(x)+θjφj)
定义规范化因子为 Z=ni=1wi exp(θjfj(xi)yi)
更新样本的权重 {wi}ni=1

wiwi exp(θjfj(xi)yi)Z

也可以通过
wiexp(f(xi)yi)nk=1exp(f(xk)yk)

更新权重。
若b为强分类器中的弱分类器个数,则最终得强分类器为
f=sign(i=1bθifi(x))

随机森林

原理

随机森林包含多个决策树,随机森林的输出由全体决策树输出的众数决定。

实现

从全体样本M中有放回的选取M次组成新的训练集,从训练集的N个特征维度中随机选取n个特征维度,其中n远小于N。用所得的含有m个特征维度的训练集训练决策树。
重复若干次,形成多个决策树,组成随机森林。

支持向量机

原理

寻找超平面对样本空间进行分割,使得两种类别的数据分布在超平面两侧。
支持向量是离超平面最近的那些点,通过最大化支持向量到超平面的距离找到最优的超平面。
定义数据点到超平面的距离为几何距离 |wTA+b|w
由于数据未必线性可分,引入松弛变量。

实现

线性回归

原理

回归,是指把实函数在样本点附近加以近似的有监督的函数近似问题,是对一个或多个自变量和因变量之间的关系进行建模、求解的一种统计方法。
函数 y=f(x) d 维实数向量x⃗ 为输入,实数值 y 做输出。
这里的真实函数关系f是未知的,作为训练集的输入输出样本 {(x⃗ i,yi)}ni=1 是已知的。用 f^ 表示通过学习而获得的函数。

最小二乘法是回归中最基础的方法。
最小二乘学习法是对模型的输出 fθ(xi) 和训练集输出 {yi}ni=1 的平方误差 JLS(θ)=12ni=1(fθ(xi)yi)2 为最小时的参数 θ 进行学习。 θ^LS=argminθJLS(θ)
平方误差 (fθ(xi)yi)2 是残差 fθ(xi)yi 的二阶范数。因此最小二乘法有时也成为 l2 损失最小化学习法。

实现

如果使用线性模型 fθ(x)=bj=1θiϕ(x)=θTϕ(x) 的话,训练样本的平方差 JLS 就能表示为 JLS(θ)=12Φθy2 ,这里 y=(y1,,yn)T 是训练样本的输出, Φ n×b 阶矩阵,也称为设计矩阵。

Φ=ϕ1(x1)ϕ1(xn)ϕb(x1)ϕb(xn)

训练样本的平方差 JLS 的对参数向量 θ 求偏导得 ΔθJLS=(JLSJθ1,,JLSJθb)T=ΦTΦθΦTy 。令偏导为0,得 ΦTΦθ=ΦTy 因此 θ^LS=(ΦTΦ)1ΦTy

局部加权线性回归

原理

对第 i 个训练样本的平方差通过权重wi0进行加权,然后再通过最小二乘法进行加权,称为加权最小二乘学习法。
argminθ12ni=1wi(fθ(xi)yi)2

实现

用与最小二乘法同样的方法进行求解得 θ^=(ΦTWΦ)1ΦTWy
这里的 W 是以wi为对角元素的对角矩阵。
为了对附近点赋予更高的权重,可以使用高斯核 w(i,i)=exp(|xix|2k2)

岭回归

原理

岭回归又称为 l2 约束的最小二乘学习法。
在一般最小二乘法中,参数 {θj}bj=1 可以自由设置,使用全体参数空间,通过把参数空间限制在一定范围内来防止过拟合。
argminθJLS(θ) 约束条件 θ2R

实现

利用拉格朗日对偶问题求解.
maxλminθ[JLS(θ)+λ2(θ2R)]
拉格朗日因子 λ 由半径 R 决定,如果直接指定λ
θ^=argminθ[JLS(θ)+λ2θ2]
对参数 θ 求偏导,另偏导为0,得 θ^=(ΦTΦ+λI)1ΦTy

Lasso回归

原理

当参数特别多时,学习与求解会消耗大量时间。Lasso回归把大部分参数都置为0,可以快速的求解与学习。
Lasso回归又称为 l1 约束的最小二乘学习法。
argminθJLS(θ) 约束条件 θ1R
由于 JLS 是下凸函数,因此在参数空间内具有等高线,其底部是最小二乘解 θ^LS 。另一方面, l1 约束的最小二乘解 θ^l1CLS 的范围在参数 θ 的各个轴上都有角。等高线与 θ^l1CLS 的范围的相交点就是 θ^l1CLS 的解,因此通常解都位于参数的轴上,这样参数中会有若干个0,称为稀疏学习。

实现

弹性网回归

原理

弹性网回归又称为 l1+l2 约束的最小二乘学习法,利用 l1+l2 范数的凸结合来进行约束。
(1τ)θ1+τθ2R
τ 是满足 0τ1 的标量。
τ=0 时, l1+l2 约束变为 l1 约束,当 τ=1 时, l1+l2 约束变为 l2 约束。

实现

由于内存数据库具有比基于磁盘的数据库更高的查询响应速度和并发度,其被广泛应用于银行、证券交易所和在线购物等数据量庞大并且实时性要求高的商业领域。索引能够有效降低数据的搜索空间、提高内存数据库的查询效率,然而当前它却受到性能和效率的挑战。 基于图形处理器的通用计算(GPGPU)在多个领域具有重要的研究价值和应用前景,也是当前研究的热点。目前图形处理器(GPU)上索引技术的研究已有一定的相关成果,然而这些研究成果存在着诸如:并行算法未充分利用硬件的资源、并行度不高,算法缺乏可扩展性且不能解决索引数据的更新等问题。因此,本文以如何充分利用 GPU 的硬件资源、最大限度地提高内存数据库索引的操作性能为主要研究内容,在相关研究的基础上,本文主要做了以下工作: 1. 对目前内存数据库索引技术的研究成果进行总结归纳,并且对 GPU 的硬件特点和编程技术做了相关综述。 2. 提出一种基于 GPU T-树索引的并行计算方案,该方案通过分析 T-树的节点间的父子关系,在 GPU 上实现对 T-树的最大并行度构建。设计在 GPU 上 T-树索引数据可任意伸缩的动态数组,解决 GPU 上尚无动态分配显存空间的问题;通过对各种构建 T-树方案的理论和实验分析,提出的并行建树方案较传统的建树方案,在操作效率和空间利用率上均有明显的性能优势。为解决 CUDA 程序数据传输的瓶颈问题,通过页锁定内存的方式提高 CPU 和 GPU 间的数据传输速率;为适应未来硬件发展的需求,对算法的可扩展性进行相关研究;为验证方案的正确性,提出基于 GPU T-树的遍历算法; 为验证提出的并行方案的有效性,进行相关的实验论证。 3. 为加速多维数据的操作性能,提出一种基于 GPU 多维线性哈希索引的并行处理方案。该方案通过对传统哈希索引数据结构的扩展,利用 2 层的数据结构可实现哈希表在 GPU 上的任意收缩,从而解决多维数据在 GPU 上无法有效更新的问题。在哈希表的记录并行批量插入算法中,采用并行分裂哈希桶的方式可加速哈希表分裂的处理 速度,从而提高了插入的效率;设计一个灵活的溢出桶管理机制,可提高多维哈希索引在 GPU 上的存储空间利用率;对提出的记录并行批量插入方案进行算法时间和空间复杂度的分析,并与传统的 CPU 算法进行相关对比;在各种硬件平台上对多维线性哈希索引记录的并行批量插入、批量删除和查询的操作性能进行相关的实验论证。 4. 提出一种基于 GPU 缓存敏感 CSB+-树索引的无锁并行处理方案,该方案通过对传统的 CSB+-树的结构改进,可实现 CSB+-树的索引数据在 GPU 上动态更新。在 GPU上提出基于树层和基于节点索引键 CSB+-树两种并行构建算法,其中后者可实现对CSB+-树的最大并行度构建;通过在 CSB+-树的内部节点添加填充位的方式,可减少GPU 线程块里的线程分支数,从而提高 CSB+-树的查询性能;通过对 CSB+-树的查询算法使用共享存储器的可行性分析,指出传统的缓存敏感技术的思想在复杂的 GPU 内存框架中并不适合使用。为验证提出的并行方案的有效性,在多个硬件平台上进行相关的实验论证。 5.在 GPU 平台上提出一种 BD-树索引的并行计算方案,该方案通过修改传统 BD-树的哈希函数,可实现对 BD-树索引的并行处理。通过对传统 BD-树的数据结构改进,可实现 BD-树索引数据在 GPU 上的更新操作;通过分析 BD-树的树形结构,可实现基于内部节点键的并行度方式构建 BD-树;通过增加额外的空间开销,减少 GPU 原子函数的调用次数,可显著提高 BD-树哈希表的数据插入效率;对 BD-树并行构建算法进行空间复杂度的分析,与传统的构建算法相比,提出算法的空间利用率明显得到提高。同样,为验证提出方案的有效性,进行相关的实验论证。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值