机器学习算法入门索引

初学者入门机器学习 (ML)的推荐教程 了解基本的机器学习概念并不难。有大量免费的在线博客文章、视频和编码教程可以引导您了解基础知识——从介绍性内容到常见应用程序,再到算法和应用技能。这篇文章总结了一些用于介绍 ML 的最佳免费选项。它按逻辑顺序排列,每个概念都建立在上一个概念的基础上。 阅读详情

索引

简介

最近邻居法

原理

设有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 约束。

实现

人工智能AI 与 机器学习ML 的关键区别 人工智能(AI)是指计算机系统能够执行通常需要人类智能才能完成的任务。包括理解自然语言、识别图像、解决复杂问题和做出决策。AI的目标是创建能够模仿或超越人类智能的系统。弱人工智能(弱AI):也称为窄AI,专注于特定任务。例如,语音助手(如Siri和Alexa)和推荐系统(如Netflix和Amazon的推荐算法)。强人工智能(强AI):也称为通用AI,具有执行任何人类智能任务的能力。目前,强AI仍处于理论阶段,尚未实现。机器学习(ML)是人工智能的一个子领域。 阅读详情

相关推荐

Spark 2.0 机器学习 ML 库:常见的机器学习模型(Scala 版)

一、前言 机器学习中,人为地设计算法,需要一定的知识积淀。 而使用别人设计好的机器学习库如 Spark 2.0 ML,那是基本不需要什么基础的,开箱即用。 首先,看一个简单、完整、规范的案例,无疑是最好的方式。 之前的文章(内含短小精悍的案例): Spark 2.0 机器学习 ML 库:特征提取、转化、选取(Scala 版) Spark 2.0 机器学习 ML 库:机器学...

IT小村 1万+

基于GPU的内存数据库索引技术研究

由于内存数据库具有比基于磁盘的数据库更高的查询响应速度和并发度,其被广泛应用于银行、证券交易所和在线购物等数据量庞大并且实时性要求高的商业领域。索引能够有效降低数据的搜索空间、提高内存数据库的查询效率,然而当前它却受到性能和效率的挑战。 基于图形处理器的通用计算(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-树并行构建算法进行空间复杂度的分析,与传统的构建算法相比,提出算法的空间利用率明显得到提高。同样,为验证提出方案的有效性,进行相关的实验论证。

简单粗暴地入门机器学习

有很多小伙伴问过我零基础要怎么入门机器学习或者人工智能,今天来提炼一下,方便志同道合的朋友们参考。记得我刚入此山洞准备修炼的时候,就 Google 了好多这类的问题,那时候觉得大家的建议好多呀,这条路看起来真长,那么多东西要学,那么多书要看,那么多有用的课程要学。现在我可以就自己走过的坑坑包包来推荐一条简单粗暴的路径。[step 1: 方向]在行动之前,先想好这几个最基本的问题,如果自己想不全都可以

aliceyangxi1987的博客 3万+

R-Tree原理及实现代码

R-Tree是一种强大的多维空间数据索引结构,它通过最小边界矩形(MBR)高效地组织和查询空间数据。随着技术的发展,传统的R-Tree已经融入了机器学习等先进技术,以提高查询性能和适应动态数据环境。C语言实现的示例代码展示了R-Tree的基本操作,包括创建、插入、查询和删除。通过实际案例分析,我们可以看到R-Tree在快速定位和检索空间数据方面的实用性和效率。R-Tree不仅在理论上具有重要意义,而且在实际应用中也显示出其不可替代的价值。

JAZJD的博客 1361

机器学习笔记——kd树及python实现

kd树实现k近邻时当训练数据量较大时,采用线性扫描法(将数据集中的数据与查询点逐个计算距离比对)会导致计算量大效率低下.这时可以利用数据本身蕴含的结构信息,构造数据索引进行快速匹配.索引树便是其中常用的一种方法.kd树是其中一种索引树,是对k维空间中包含所有实例点进行划分以便进行快速匹配的一种数据结构.给定一个二维数据集:[(2, 3), (5, 4), (9, 6), (4, 7), (8, 1)

akadiao的博客 4320

机器学习 (七) 决策树算法研究与实现

前言        从决策树这三个字中我们既可以看出来它的主要用途帮助决策某一类问题,树是辅助我们来决策用的,如下图一个简单的判断不同阶段人年龄的图:        看到上图是有几个问题的,我们的目的是将左边人分类,首先根据什么属性分类最佳?如何量化角度来识别?从图中也可...

李龙生 1016

机器学习中的海量数据查找—倒排索引查找

此外,在某些检索系统中,可能会有不存储词语在文件中位置的情况,但是目前大多数检索系统都会存储,主要基于两个原因:一是在海量数据的检索情况下,全文检索过程中如果没有记录位置,在获取文件动态摘要时,会通过遍历文件的方式查找关键词出现的位置,存在性能损耗,而这对于数据量级较小的系统则影响较小;倒排索引(InvertedIndex)主要用于信息检索领域,它是其中最常用的数据索引存储结构,被用来存储文档集合中某个单词对应的文档集合及单词在文件中存在的位置,因此也称为反向索引,与其相对应的是正向索引

城南蝈蝈 240

机器学习与数据库索引

关系数据库帝国已经独孤求败几十年了! 自从1970年E.F.Codd 的《大型共享数据库的关系模型》论文横空出世,为关系型数据库奠定了坚实的理论基础,一众关系数据库System R,DB2 ,Oracle,MySQL,Postgres相继诞生,一举推翻了层次和网状数据库的统治。 在过去的几十年中, 对象数据库, NoSQL等相继挑战,但是依然无法撼动它的地位。 当然关系数据库也不是停滞不前,它也在进化,统一的SQL标准,强大的事务支持,更加聪明的查询优化器… 但是帝国也有一个巨大的硬伤,数据都保存在硬盘上,

Old_D7的博客 1024

一文讲透Python序列中的索引是什么概念,怎么应用?

索引就是序列中的每个元素所在的位置,可以通过从左往右的正数索引,也可以通过从右往左的负数索引。 从左往右的正数索引:在python序列中,第一个元素的索引值为0,第二个元素的索引值为1,以此类推,假设序列中共有n个元素,那么最后一个元素的索引值为n-1。 从右往左的负数索引:在python序列中,最后一个元素的索引值为-1,倒数第二个元素的索引值为-2,以此类推,假设序列中共有n个元素,那么第一个元素的索引值为-n。

m0_72274883的博客 2626

Python基础知识:Python序列以及序列的索引、切片、相乘和相加

Python基础知识:Python序列以及序列的索引、切片、相乘和相加。索引就是序列中的每个元素所在的位置,可以通过从左往右的正数索引,也可以通过从右往左的负数索引。从左往右的正数索引:在python序列中,第一个元素的索引值为0,第二个元素的索引值为1,以此类推,假设序列中共有n个元素,那么最后一个元素的索引值为n-1。 从右往左的负数索引:在python序列中,最后一个元素的索引值为-1,倒数第二个元素的索引值为-2,以此类推,假设序列中共有n个元素,那么第一个元素的索引值为-n。

m0_72274883的博客 1027

开发者如何无数学入门机器学习:5步渐进框架

机器学习作为从数据中提取模式的核心技术,其关键在于理解算法作为工具的应用逻辑而非数学推导。通过建立算法索引库、多维度研究策略和标准化算法卡片等方法,开发者可以快速掌握模型调参、特征工程等实用技能。特别对于编程基础扎实但数学背景有限的工程师,这种注重工程实践的学习路径能快速构建可落地的预测模型。在实际业务场景如推荐系统、金融风控中,掌握随机森林、XGBoost等算法的黑箱使用能力往往比数学证明更为重要。本文提供的五步学习框架包含从算法速查到诊断实验的完整方法论,帮助开发者在Kaggle竞赛和工业级应用中快速提

weixin_42128315的博客 276

【赠书第19期】跨平台机器学习:ML.NET架构及应用编程

在微软最有价值专家(16届)的指导下,运用跨平台机器学习框架ML.NET来创建机器学习解决方案,将人工智能技术应用于实际任务场景中。

无人机开发(开源Ardupilot) 2万+

机器学习系列(7)_机器学习路线图(附资料)

1. 引言 也许你和这个叫『机器学习』的家伙一点也不熟,但是你举起iphone手机拍照的时候,早已习惯它帮你框出人脸;也自然而言点开今日头条推给你的新闻;也习惯逛淘宝点了找相似之后货比三家;亦或喜闻乐见微软的年龄识别网站结果刷爆朋友圈。恩,这些功能的核心算法就是机器学习领域的内容。 机器学习研究的是计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善自身。而

龙心尘 4万+

ML-kNN 多标签k近邻算法 MLL Week 1

ML-kNN 多标签k近邻算法 MLL Week 1ML-kNN 多标签k近邻算法 MLL Week 1 传统kNN 多标签kNN  学习张敏灵老师的《ML-kNN: a lazy learning approach to multi-label learning》的学习笔记。传统kNN  k近邻算法(k-Nearest Neighbour, KNN)是机器学习中最基础,最简单的常用算法之一。其思想

Kodoo的专栏 1万+

机器学习基础【ML】

机器学习基础【ML】

sikh_0529的博客 2万+

Spark入门( 九)——机器学习 Spark MLlib

Spark MLlib机器学习是什么?机器学习Spark MLlibSpark MLlib案例快速入门基本统计Correlation(相关性)Hypothesis testing(假设检验)Summarizer(总结器)未完待续。。。 机器学习是什么? 机器学习 数据挖掘有着50多年的发展历史。机器学习就是其子领域之一,特点是利用大型计算机集群来从海量数据中分析和提取知识 机器学习与计算统计学密切相关。它与数学优化紧密关联,为其提供方法、理论和应用领域。机器学习在各种传统设计和编程不能胜任的计算机任务中有广

17611119847 2万+

ML.NET 示例:搜索引擎结果排名

ML.NET 示例中文版:https://github.com/feiyun0112/machinelearning-samples.zh-cn/edit/master/...

dotNET跨平台 609

ML.NET 快速入门与实践教程:机器学习框架

ML.NET是微软为.NET开发者打造的跨平台机器学习框架,让开发者无需Python基础就能在C#环境中构建智能应用。本文通过学生成绩预测案例,详细讲解ML.NET的核心概念与使用流程:从数据加载、模型训练到评估预测,并演示了房价预测的类似实现。关键步骤包括定义数据类、构建处理管道、选择训练算法以及创建预测引擎。文章还介绍了MLContext、IDataView等核心组件,帮助.NET开发者快速上手机器学习开发。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 721
上一篇: GCC编译选项
下一篇: 《SICP》中的一些练习题
cyendra
博客等级 码龄14年 191粉丝 462原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值