机器学习新手必看十大算法
本文介绍了机器学习新手需要了解的 10 大算法,包括线性回归、Logistic 回归、朴素贝叶斯、K 近邻算法等。
在机器学习中,有一种叫做「没有免费的午餐」的定理。简而言之,它指出没有任何一种算法对所有问题都有效,在监督学习(即预测建模)中尤其如此。
例如,你不能说神经网络总是比决策树好,反之亦然。有很多因素在起作用,例如数据集的大小和结构。
因此,你应该针对具体问题尝试多种不同算法,并留出一个数据「测试集」来评估性能、选出优胜者。
当然,你尝试的算法必须适合你的问题,也就是选择正确的机器学习任务。打个比方,如果你需要打扫房子,你可能会用吸尘器、扫帚或拖把,但是你不会拿出铲子开始挖土。
大原则
不过也有一个普遍原则,即所有监督机器学习算法预测建模的基础。
机器学习算法被描述为学习一个目标函数 f,该函数将输入变量 X 最好地映射到输出变量 Y:Y = f(X)
这是一个普遍的学习任务,我们可以根据输入变量 X 的新样本对 Y 进行预测。我们不知道函数 f 的样子或形式。如果我们知道的话,我们将会直接使用它,不需要用机器学习算法从数据中学习。
最常见的机器学习算法是学习映射 Y = f(X) 来预测新 X 的 Y。这叫做预测建模或预测分析,我们的目标是尽可能作出最准确的预测。
对于想了解机器学习基础知识的新手,本文将概述数据科学家使用的 top 10 机器学习算法。
1. 线性回归
线性回归可能是统计学和机器学习中最知名和最易理解的算法之一。
预测建模主要关注最小化模型误差或者尽可能作出最准确的预测,以可解释性为代价。我们将借用、重用包括统计学在内的很多不同领域的算法,并将其用于这些目的。
线性回归的表示是一个方程,它通过找到输入变量的特定权重(称为系数 B),来描述一条最适合表示输入变量 x 与输出变量 y 关系的直线。
线性回归
例如:y = B0 + B1 * x
我们将根据输入 x 预测 y,线性回归学习算法的目标是找到系数 B0 和 B1 的值。
可以使用不同的技术从数据中学习线性回归模型,例如用于普通最小二乘法和梯度下降优化的线性代数解。
线性回归已经存在了 200 多年,并得到了广泛研究。使用这种技术的一些经验是尽可能去除非常相似(相关)的变量,并去除噪音。这是一种快速、简单的技术,可以首先尝试一下。
2. Logistic 回归
Logistic 回归是机器学习从统计学中借鉴的另一种技术。它是解决二分类问题的首选方法。
Logistic 回归与线性回归相似,目标都是找到每个输入变量的权重,即系数值。与线性回归不同的是,Logistic 回归对输出的预测使用被称为 logistic 函数的非线性函数进行变换。
logistic 函数看起来像一个大的 S,并且可以将任何值转换到 0 到 1 的区间内。这非常实用,因为我们可以规定 logistic 函数的输出值是 0 和 1(例如,输入小于 0.5 则输出为 1)并预测类别值。
Logistic 回归
由于模型的学习方式,Logistic 回归的预测也可以作为给定数据实例(属于类别 0 或 1)的概率。这对于需要为预测提供更多依据的问题很有用。
像线性回归一样,Logistic 回归在删除与输出变量无关的属性以及非常相似(相关)的属性时效果更好。它是一个快速的学习模型,并且对于二分类问题非常有效。
3. 线性判别分析(LDA)
Logistic 回归是一种分类算法,传统上,它仅限于只有两类的分类问题。如果你有两个以上的类别,那么线性判别分析是首选的线性分类技术。
LDA 的表示非常简单直接。它由数据的统计属性构成,对每个类别进行计算。单个输入变量的 LDA 包括:
每个类别的平均值;
所有类别的方差。
线性判别分析
进行预测的方法是计算每个类别的判别值并对具备最大值的类别进行预测。该技术假设数据呈高斯分布(钟形曲线),因此最好预先从数据中删除异常值。这是处理分类预测建模问题的一种简单而强大的方法。
4. 分类与回归树
决策树是预测建模机器学习的一种重要算法。
决策树模型的表示是一个二叉树。这是算法和数据结构中的二叉树,没什么特别的。每个节点代表一个单独的输入变量 x 和该变量上的一个分割点(假设变量是数字)。
决策树
决策树的叶节点包含一个用于预测的输出变量 y。通过遍历该树的分割点,直到到达一个叶节点并输出该节点的类别值就可以作出预测。
决策树学习速度和预测速度都很快。它们还可以解决大量问题,并且不需要对数据做特别准备。
5. 朴素贝叶斯
朴素贝叶斯是一个简单但是很强大的预测建模算法。
该模型由两种概率组成,这两种概率都可以直接从训练数据中计算出来:1)每个类别的概率;2)给定每个 x 的值,每个类别的条件概率。一旦计算出来,概率模型可用于使用贝叶斯定理对新数据进行预测。当你的数据是实值时,通常假设一个高斯分布(钟形曲线),这样你可以简单的估计这些概率。
贝叶斯定理
朴素贝叶斯之所以是朴素的,是因为它假设每个输入变量是独立的。这是一个强大的假设,真实的数据并非如此,但是,该技术在大量复杂问题上非常有用。
6. K 近邻算法
KNN 算法非常简单且有效。KNN 的模型表示是整个训练数据集。是不是很简单?
KNN 算法在整个训练集中搜索 K 个最相似实例(近邻)并汇总这 K 个实例的输出变量,以预测新数据点。对于回归问题,这可能是平均输出变量,对于分类问题,这可能是众数(或最常见的)类别值。
诀窍在于如何确定数据实例间的相似性。如果属性的度量单位相同(例如都是用英寸表示),那么最简单的技术是使用欧几里得距离,你可以根据每个输入变量之间的差值直接计算出来其数值。
K 近邻算法
KNN 需要大量内存或空间来存储所有数据,但是只有在需要预测时才执行计算(或学习)。你还可以随时更新和管理训练实例,以保持预测的准确性。
距离或紧密性的概念可能在非常高的维度(很多输入变量)中会瓦解,这对算法在你的问题上的性能产生负面影响。这被称为维数灾难。因此你最好只使用那些与预测输出变量最相关的输入变量。
7. 学习向量量化
K 近邻算法的一个缺点是你需要遍历整个训练数据集。学习向量量化算法(简称 LVQ)是一种人工神经网络算法,它允许你选择训练实例的数量,并精确地学习这些实例应该是什么样的。
学习向量量化
LVQ 的表示是码本向量的集合。这些是在开始时随机选择的,并逐渐调整以在学习算法的多次迭代中最好地总结训练数据集。在学习之后,码本向量可用于预测(类似 K 近邻算法)。最相似的近邻(最佳匹配的码本向量)通过计算每个码本向量和新数据实例之间的距离找到。然后返回最佳匹配单元的类别值或(回归中的实际值)作为预测。如果你重新调整数据,使其具有相同的范围(比如 0 到 1 之间),就可以获得最佳结果。
如果你发现 KNN 在你的数据集上达到很好的结果,请尝试用 LVQ 减少存储整个训练数据集的内存要求。
8. 支持向量机(SVM)
支持向量机可能是最受欢迎和最广泛讨论的机器学习算法之一。
超平面是分割输入变量空间的一条线。在 SVM 中,选择一条可以最好地根据输入变量类别(类别 0 或类别 1)对输入变量空间进行分割的超平面。在二维中,你可以将其视为一条线,我们假设所有的输入点都可以被这条线完全的分开。SVM 学习算法找到了可以让超平面对类别进行最佳分割的系数。
支持向量机
超平面和最近的数据点之间的距离被称为间隔。分开两个类别的最好的或最理想的超平面具备最大间隔。只有这些点与定义超平面和构建分类器有关。这些点被称为支持向量,它们支持或定义了超平面。实际上,优化算法用于寻找最大化间隔的系数的值。
SVM 可能是最强大的立即可用的分类器之一,值得一试。
9. Bagging 和随机森林
随机森林是最流行和最强大的机器学习算法之一。它是 Bootstrap Aggregation(又称 bagging)集成机器学习算法的一种。
bootstrap 是从数据样本中估算数量的一种强大的统计方法。例如平均数。你从数据中抽取大量样本,计算平均值,然后平均所有的平均值以便更好的估计真实的平均值。
bagging 使用相同的方法,但是它估计整个统计模型,最常见的是决策树。在训练数据中抽取多个样本,然后对每个数据样本建模。当你需要对新数据进行预测时,每个模型都进行预测,并将所有的预测值平均以便更好的估计真实的输出值。
随机森林
随机森林是对这种方法的一种调整,在随机森林的方法中决策树被创建以便于通过引入随机性来进行次优分割,而不是选择最佳分割点。
因此,针对每个数据样本创建的模型将会与其他方式得到的有所不同,不过虽然方法独特且不同,它们仍然是准确的。结合它们的预测可以更好的估计真实的输出值。
如果你用方差较高的算法(如决策树)得到了很好的结果,那么通常可以通过 bagging 该算法来获得更好的结果。
10. Boosting 和 AdaBoost
Boosting 是一种集成技术,它试图集成一些弱分类器来创建一个强分类器。这通过从训练数据中构建一个模型,然后创建第二个模型来尝试纠正第一个模型的错误来完成。一直添加模型直到能够完美预测训练集,或添加的模型数量已经达到最大数量。
AdaBoost 是第一个为二分类开发的真正成功的 boosting 算法。这是理解 boosting 的最佳起点。现代 boosting 方法建立在 AdaBoost 之上,最显著的是随机梯度提升。
AdaBoost
AdaBoost与短决策树一起使用。在第一个决策树创建之后,利用每个训练实例上树的性能来衡量下一个决策树应该对每个训练实例付出多少注意力。难以预测的训练数据被分配更多权重,而容易预测的数据分配的权重较少。依次创建模型,每个模型在训练实例上更新权重,影响序列中下一个决策树的学习。在所有决策树建立之后,对新数据进行预测,并且通过每个决策树在训练数据上的精确度评估其性能。
因为在纠正算法错误上投入了太多注意力,所以具备已删除异常值的干净数据非常重要。
总结
初学者在面对各种机器学习算法时经常问:「我应该用哪个算法?」这个问题的答案取决于很多因素,包括:(1)数据的大小、质量和特性;(2)可用的计算时间;(3)任务的紧迫性;(4)你想用这些数据做什么。
即使是经验丰富的数据科学家在尝试不同的算法之前,也无法分辨哪种算法会表现最好。虽然还有很多其他的机器学习算法,但本篇文章中讨论的是最受欢迎的算法。如果你是机器学习的新手,这将是一个很好的学习起点。
DIY装机硬件选购 新手必看的硬件知识
针对小白级DIY学生朋友,以下小编就与大家介绍下DIY硬件选购扫盲,包含了CPU、显卡、内存、硬盘、主板、机箱、硬盘等硬件选购技巧,还不了解的童鞋们快来学习充电一下吧。近期发现不少学生朋友也在网上求助装机建议,但网上解答七嘴八舌,很多朋友一时间也拿不定主意,其实与其没有把握的采纳他人观点,不然...
新手司机必看的入门小常识
新手司机必看的入门小常识刚拿到证的新手司机,对于汽车常识并不是特别的了解。在此整理了一下几个汽车小常识,希望能帮助到大家。汽车启动预热10分钟?不用那么久!汽车启动前预热,能使机械部件得到较好润滑,减少摩擦,延长使用寿命。但预热时间不宜过长,能使用润滑油到达所需润滑部位即可,一般建议5至...
新手必看零基础入门3dmax操作技巧
通过不断调整相机和灯光,以达到光照平衡。材质编辑器的运用是关键,确保灯光与材质协调,如衣柜和灯具颜色的匹配。最终,通过一系列步骤,你可以轻松掌握渲染日景灯光的基本技巧,如图所示。总的来说,学习3Dmax并不需要过多畏惧,只要逐步实践和调整,你也能快速上手,为你的设计项目增添专业质感。
绑钩器的使用方法 新手必看!
1、准备好工具,有一个橘黄色的活动的可以上下的塑料支撑,这里面有一个小的凹槽,凹槽设计就是插钩柄的。2、向下推动绑钩器鱼钩固定器,鱼钩将上一步凸出的橘黄色塑料支撑按下去,钩柄要插入凹槽里面。注意鱼钩方向,因为这样以后我们就不需要调整子线和鱼钩的位置,可以直接到位。多方几张图片从不同...
2024年最新C++新手进阶指南!入门必看
对新开发人员来说,学习 C++ 有助于培养对计算机思维方式的理解,避免了从面向对象语言转向 C++ 时可能的重头学习。C++ 的灵活性也允许尝试不同的编程技术,成为真正解决问题的专业人员。然而,C++ 的复杂性可能让新手感到困惑,如优化代码速度、内存管理及错误调试。通过学习如何解决这些问题,如清晰编码、...
新手必看!逃离塔科夫新手须知的十大技巧介绍_新手必看!逃离塔科夫新手...
对于新接触逃离塔科夫的玩家,这里提供一些新手必备的技巧,帮助你更快地融入游戏世界:首先,改掉频繁换弹的习惯,因为在换弹瞬间,你可能会面临不可预测的危险。保持冷静,尽量减少暴露在敌人的攻击下。受伤时,优先处理头部和胸部的伤口,因为它们直接影响你的生命值和技能效果。腹部受伤后,饥饿和脱水会...
2024年最新C++新手进阶指南!入门必看
尽管科技行业广泛应用了C++,新手们可能会问,学习C++真的容易吗?答案是肯定的。C++让你接近底层,理解计算机和编译器的工作原理,这对于初学者来说是宝贵的基石。它的低级特性让初学者能从头开始,深入理解编程结构,同时,掌握C++将有助于快速学习其他语言,如Java,因为它提供通用的编程逻辑结构。C++的...
经典的Excel数据分析实战案例,新手必看
在本篇文章中,我们将深入了解经典的泰坦尼克号生存率数据分析案例,对于数据分析新手来说,这是一个极具学习价值的实战练习。我们将使用Excel这个简单易用的工具,通过实际操作,探索哪些乘客在灾难中生存的可能性更大。首先,我们设定目标是找出影响生存的关键因素,如乘客的舱位、性别、船票价格和登船港口...
大学生必看Python神级学习网站
1.udemy 它提供从初学者到专家级别的 Python 课程。你可以使用 Udemy 学习 Python 2和 Python 3这两个版本。它还包括有关 Python 的高级功能,包括集合模块、装饰器和时间戳等了解概念后,可以通过编码练习来测试自学效果,教你学习如何使用 Python 创建游戏,例如纸牌游戏。开始学习前,需要在udemy.com...
新手必看!逃离塔科夫新手须知的十大技巧
新手必看!逃离塔科夫新手须知的十大技巧!这是老玩家总结的一些心得体会,游戏中可以帮助你哦!1、改掉换弹癌的坏习惯,换弹夹的时候你不知道会发生什么,说不定很多人就等着你换弹夹呢。2、当你受伤时,记住永远优先治疗头部和胸部。其次是腹部,因为腹部受伤会让你饥饿脱水降低其他技能的效果。3、怎么...
僪何苯溴: 决策树 随机森林算法 逻辑回归 SVM 朴素贝叶斯 K最近邻算法 K均值算法 Adaboost 算法 神经网络 马尔可夫
获嘉县17572633337: 学会机器学习十大算法 什么水平 - ?
僪何苯溴: 学习机器学习十大算法,相当于电脑的中级水平.算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制.也就是说,能够对一定规范的输入,在有限时间内获得...
获嘉县17572633337: 机器学习非监督机器学习算法有哪些 - ?
僪何苯溴: 非监督机器学习可以分为以下几类 (1)聚类:K-均值聚类、谱聚类、DBSCAN聚类、模糊聚类、GMM聚类、层次聚类等 (2)降维:PCA、t-SNE、MDS等 (3)其它:PageRank、SOM等 详细介绍可以参考图书:The Elements of Statistical Learning的第14章
获嘉县17572633337: 机器学习一般常用的算法有哪些?哪个平台学习机器算法比较好 - ?
僪何苯溴: 通常而言,能够深入研究机器学习算法,并按照自己项目需求进行定制开发的人,编程语言真的是一个很次要的问题.自己去google搜索下面的关键词吧,很多机器学习的算法实现.machine learning in Java machine learning in C++ machine learning in Python machine learning in Matlab machine learning in R
获嘉县17572633337: 需要掌握哪些大数据算法 - ?
僪何苯溴: 原发布者:ninahe916 大数据常用的算法(分类、回归分析、聚类、关联规则)
获嘉县17572633337: 初学者如何选择合适的机器学习算法(附算法 - ?
僪何苯溴: 如何为分类问题选择合适的机器学习算法 若要达到一定的准确率,需要尝试各种各样的分类器,并通过交叉验证选择最好的一个.但是,如果你只是为你的问题寻找一个“足够好”的算法或者一个起点,以下准则有利于选择合适的分类器:你的...
获嘉县17572633337: 以下选项中,不是机器学习与数据挖掘之间的关系和区别是(). - 上学吧?
僪何苯溴: 楼主肯定对机器学习了解不多才会提这种问题.这问题专业程度看起来和“机器学习工程师”这词汇一样.机器学习,基础的pca模型理论,贝叶斯,boost,adaboost,模式识别中的各种特征,诸如hog,haar,sift等 深度学习里的dbn,cnn,bp,rbm等...
获嘉县17572633337: 用于数据挖掘的分类算法有哪些,各有何优劣 - ?
僪何苯溴: 常见的机器学习分类算法就有,不常见的更是数不胜数,那么我们针对某个分类问题怎么来选择比较好的分类算法呢?下面介绍一些算法的优缺点:1. 朴素贝叶斯 比较简单的算法,所需估计的参数很少,对缺失数据不太敏感.如果条件独立性...