机器学习算法是机器学习中非常重要的一部分。
你必须理解它们的工作原理才能在该领域取得任何进展。
在这篇文章中,你将发现一个由14部分组成的机器学习算法迷你课程,你可以跟着它来最终理解机器学习算法。
我们将在本课程中涵盖很多内容,你将会度过一段愉快的时光。
通过我的新书《掌握机器学习算法》启动你的项目,其中包括分步教程和所有示例的Excel电子表格文件。
让我们开始吧。

机器学习算法迷你课程
图片由 Jared Tarbell 提供,保留部分权利。
本课程适合谁?
在开始之前,让我们确保您来对了地方。
- 本课程适合对机器学习算法好奇的初学者。
- 本课程不假设你了解如何编写代码。
- 本课程不假设你具备数学背景。
- 本课程不假设你具备机器学习理论背景。
这个迷你课程将带你从基础开始,通过10种顶级技术,引导你了解机器学习算法。
我们将逐一介绍每种算法,让你了解其工作原理,但不会深入探讨,以保持课程进度。
迷你课程概述
让我们来看看接下来14节课将要涵盖的内容。
你可能需要反复查阅这篇文章,所以你可能希望将其添加书签。
这个迷你课程分为四个部分:算法基础、线性算法、非线性算法和集成算法。
算法基础
- 第一课:如何在机器学习中讨论数据
- 第二课:所有算法的基础原理
- 第三课:参数和非参数算法
- 第四课:偏差、方差和权衡
线性算法
- 第五课:线性回归
- 第六课:逻辑回归
- 第七课:线性判别分析
非线性算法
- 第八课:分类与回归树
- 第九课:朴素贝叶斯
- 第十课:k-近邻
- 第十一课:学习向量量化
- 第十二课:支持向量机
集成算法
- 第十三课:Bagging 和随机森林
- 第十四课:Boosting 和 AdaBoost
获取您的免费算法思维导图

方便的机器学习算法思维导图样本。
我创建了一份方便的思维导图,其中包含60多种按类型组织的算法。
下载、打印并使用它。
还可以独家访问机器学习算法电子邮件迷你课程。
第一课:如何在机器学习中讨论数据
数据在机器学习中扮演着重要角色。
在讨论数据时,理解并使用正确的术语非常重要。
你是如何思考数据的?想象一个电子表格。你有列、行和单元格。
机器学习的统计学视角将数据置于一个假设函数 (f) 的背景下,机器学习算法旨在学习这个函数。给定一些输入变量 (Input),该函数回答了什么是预测输出变量 (Output) 的问题。
输出 = f(输入)
输入和输出可以被称为变量或向量。
计算机科学的视角使用一行数据来描述一个实体(例如一个人)或对一个实体的观察。因此,一行的列通常被称为该观察的属性,而行本身被称为实例。
第二课:所有算法的基础原理
所有用于预测建模的监督机器学习算法都遵循一个共同的原理。
机器学习算法被描述为学习一个目标函数 (f),该函数能最好地将输入变量 (X) 映射到输出变量 (Y)。
Y = f(X)
这是一个通用的学习任务,我们希望在未来给定新的输入变量 (X) 示例时做出预测 (Y)。我们不知道函数 (f) 是什么样子或它的形式。如果我们知道,我们会直接使用它,而不需要使用机器学习算法从数据中学习它。
最常见的机器学习类型是学习映射 Y = f(X) 以对新的 X 进行 Y 的预测。这称为预测建模或预测分析,我们的目标是做出尽可能准确的预测。
第三课:参数和非参数算法
什么是参数机器学习算法?它与非参数机器学习算法有何不同?
假设可以大大简化学习过程,但也会限制可以学习的内容。将函数简化为已知形式的算法称为参数机器学习算法。
这些算法涉及两个步骤:
- 选择函数的形式。
- 从训练数据中学习函数的系数。
参数机器学习算法的一些例子是线性回归和逻辑回归。
对映射函数形式不作强假设的算法称为非参数机器学习算法。通过不作假设,它们可以自由地从训练数据中学习任何函数形式。
非参数方法通常更灵活,能获得更好的准确性,但需要更多的数据和训练时间。
非参数算法的例子包括支持向量机、神经网络和决策树。
第四课:偏差、方差和权衡
机器学习算法最好通过偏差-方差权衡的视角来理解。
偏差是模型为了使目标函数更容易学习而做出的简化假设。
通常,参数算法具有高偏差,这使得它们学习速度快,更容易理解,但通常灵活性较低。反过来,它们在无法满足算法偏差简化假设的复杂问题上预测性能较低。
决策树是低偏差算法的一个例子,而线性回归是高偏差算法的一个例子。
方差是如果使用不同的训练数据,目标函数的估计值将发生变化的量。目标函数是由机器学习算法从训练数据中估计出来的,所以我们应该期望算法有一些方差,而不是零方差。
K-近邻算法是高方差算法的一个例子,而线性判别分析是低方差算法的一个例子。
任何预测建模机器学习算法的目标都是实现低偏差和低方差。反过来,该算法应实现良好的预测性能。机器学习算法的参数化通常是平衡偏差和方差的一场斗争。
- 增加偏差将减少方差。
- 增加方差将减少偏差。
第五课:线性回归算法
线性回归可能是统计学和机器学习中最知名和最易理解的算法之一。
这难道不是一种统计学技术吗?
预测建模主要关注最小化模型误差或尽可能做出最准确的预测,而牺牲可解释性。我们将借鉴、重用和“窃取”来自许多不同领域的算法,包括统计学,并将它们用于这些目的。
线性回归的表示是一个方程,它通过寻找输入变量(x)的特定权重,称为系数(B),来描述一条最能拟合输入变量(x)和输出变量(y)之间关系的直线。
例如:
y = B0 + B1 * x
我们将根据输入x预测y,线性回归学习算法的目标是找到系数B0和B1的值。
可以使用不同的技术从数据中学习线性回归模型,例如普通最小二乘的线性代数解和梯度下降优化。
线性回归已经存在200多年,并得到了广泛研究。使用该技术的一些经验法则是在可能的情况下,删除非常相似(相关)的变量并从数据中去除噪声。
它是一种快速简单的技术,也是一个很好的首次尝试算法。
第六课:逻辑回归算法
逻辑回归是机器学习从统计学领域借鉴的另一种技术。它是处理二元分类问题(具有两个类别值的问题)的首选方法。
逻辑回归与线性回归相似,目标都是找到为每个输入变量加权的系数。
与线性回归不同,输出的预测值使用一个称为逻辑函数的非线性函数进行转换。
逻辑函数看起来像一个大S形,它将把任何值转换到0到1的范围。这很有用,因为我们可以对逻辑函数的输出应用一个规则,将值强制为0和1(例如,如果小于0.5,则输出1),并预测一个类别值。
由于模型学习方式的缘故,逻辑回归做出的预测也可以用作给定数据实例属于类别0或类别1的概率。这对于需要为预测提供更多理由的问题非常有用。
与线性回归一样,当你移除与输出变量无关的属性以及相互之间非常相似(相关)的属性时,逻辑回归的效果会更好。
它是一种学习速度快且对二元分类问题有效的模型。
第七课:线性判别分析算法
逻辑回归是一种分类算法,传统上仅限于二分类问题。如果你有超过两个类别,那么线性判别分析算法是首选的线性分类技术。
LDA的表示相当直接。它由每个类别计算出的数据统计属性组成。对于单个输入变量,这包括:
- 每个类别的平均值。
- 所有类别计算出的方差。
通过计算每个类别的判别值,并预测具有最大值的类别来做出预测。
该技术假设数据服从高斯分布(钟形曲线),因此最好事先从数据中去除异常值。
这是一种简单而强大的分类预测建模方法。
第八课:分类与回归树
决策树是预测建模机器学习中一种重要的算法类型。
决策树模型的表示是一个二叉树。这就是算法和数据结构中的二叉树,没什么特别的。每个节点代表一个输入变量(x)和该变量上的一个分割点(假设变量是数值型的)。
树的叶节点包含一个用于进行预测的输出变量(y)。通过遍历树的分割点直到到达叶节点,并输出该叶节点的类别值来做出预测。
树学习速度快,预测速度也非常快。它们通常对各种问题都准确,并且不需要对数据进行任何特殊准备。
决策树具有高方差,当在集成中使用时,可以产生更准确的预测,我们将在第13课和第14课中介绍这个主题。
第九课:朴素贝叶斯算法
朴素贝叶斯是一种简单但出人意料地强大的预测建模算法。
该模型由两种可以直接从训练数据中计算出来的概率组成:
- 每个类别的概率。
- 在给定每个x值的情况下,每个类别的条件概率。
一旦计算出来,就可以使用贝叶斯定理对新数据进行预测。
当你的数据是实数值时,通常假设为高斯分布(钟形曲线),以便你可以轻松估计这些概率。
朴素贝叶斯被称为“朴素”,因为它假设每个输入变量都是独立的。这是一个很强的假设,对于真实数据来说不切实际,然而,该技术在许多复杂问题上都非常有效。
第十课:K-近邻算法
KNN算法非常简单且非常有效。
KNN的模型表示是整个训练数据集。很简单吧?
通过在整个训练集中搜索K个最相似的实例(邻居),并对这K个实例的输出变量进行汇总,从而对新数据点进行预测。对于回归问题,这可能是平均输出变量;对于分类问题,这可能是众数(或最常见的)类别值。
诀窍在于如何确定数据实例之间的相似性。如果你的所有属性都具有相同的尺度(例如都以英寸为单位),最简单的技术是使用欧几里得距离,这是一个可以根据每个输入变量之间的差异直接计算的数字。
KNN可能需要大量内存或空间来存储所有数据,但只在需要预测时才执行计算(或学习),即时进行。你还可以随着时间的推移更新和管理训练实例,以保持预测的准确性。
在高维(大量输入变量)的情况下,距离或接近度的概念可能会失效,这可能会对算法在你问题上的性能产生负面影响。这被称为维度灾难。它建议你只使用与预测输出变量最相关的输入变量。
第十一课:学习向量量化
K-近邻的一个缺点是你需要保留整个训练数据集。
学习向量量化算法(简称LVQ)是一种人工神经网络算法,它允许你选择要保留多少训练实例,并学习这些实例应该是什么样子。
LVQ 的表示是一组码本向量。这些向量在开始时随机选择,并在学习算法的多次迭代中进行调整,以最好地总结训练数据集。
学习之后,码本向量可以像 K-近邻一样用于进行预测。通过计算每个码本向量和新数据实例之间的距离,找到最相似的邻居(最佳匹配码本向量)。然后,将最佳匹配单元的类别值(回归情况下为实数值)作为预测返回。
如果你将数据重新缩放到相同的范围,例如0到1之间,则可以获得最佳结果。
如果你发现KNN在你的数据集上效果良好,请尝试使用LVQ来减少存储整个训练数据集所需的内存。
第十二课:支持向量机
支持向量机可能是最流行和最受关注的机器学习算法之一。
超平面是一条分割输入变量空间的线。在支持向量机中,选择一个超平面以最佳地根据类别(类别0或类别1)来分离输入变量空间中的点。
在二维空间中,你可以将其可视化为一条线,并假设我们所有的输入点都可以被这条线完全分离。
支持向量机学习算法找到能使超平面最佳分离类别的系数。
超平面与最近数据点之间的距离被称为“间隔”。能够分离两个类别的最佳或最优超平面是具有最大间隔的直线。
只有这些点与定义超平面和构建分类器相关。
这些点被称为支持向量。它们支持或定义超平面。
在实践中,使用优化算法来找到使间隔最大化的系数值。
支持向量机可能是最强大的开箱即用分类器之一,值得在你的数据集上尝试。
第十三课:Bagging 和随机森林
随机森林是最流行、最强大的机器学习算法之一。它是一种被称为 Bootstrap Aggregation 或 bagging 的集成机器学习算法。
自助法(bootstrap)是一种强大的统计方法,用于从数据样本中估计一个量,例如均值。你从数据中抽取大量样本,计算均值,然后将所有均值求平均,以得到对真实均值更准确的估计。
在bagging中,使用相同的方法,但用于估计整个统计模型,最常见的是决策树。
对你的训练数据进行多次抽样,然后为每个数据样本构建模型。当你需要对新数据进行预测时,每个模型都会进行预测,并将这些预测进行平均,以获得对真实输出值更好的估计。
随机森林是在此方法上的一个调整,其中决策树的创建方式不是选择最优分割点,而是通过引入随机性来创建次优分割。
因此,为每个数据样本创建的模型彼此之间差异更大,但它们各自独特且不同地准确。结合它们的预测可以更好地估计真实的基础输出值。
如果你使用高方差算法(如决策树)获得了良好的结果,那么通过对该算法进行bagging,你通常可以获得更好的结果。
第十四课:Boosting 和 AdaBoost
Boosting 是一种集成技术,它试图从多个弱分类器中创建一个强分类器。
这通过从训练数据构建模型,然后创建第二个模型来纠正第一个模型的错误来实现。模型不断添加,直到训练集被完美预测或达到最大模型数量。
AdaBoost 是第一个真正成功的 Boosting 算法,专为二分类问题开发。它是理解 Boosting 的最佳起点。现代 Boosting 方法都建立在 AdaBoost 的基础上,最著名的是随机梯度 Boosting 机器。
AdaBoost 与短决策树一起使用。在创建第一棵树后,该树在每个训练实例上的表现被用来加权下一棵树在创建时应该关注每个训练实例的程度。难以预测的训练数据会被赋予更大的权重,而易于预测的实例则被赋予较小的权重。
模型依次创建,每个模型都会更新训练实例的权重,这些权重会影响序列中下一棵树的学习。
所有树构建完成后,对新数据进行预测,每棵树的性能会根据其在训练数据上的准确性进行加权。
由于算法非常注重纠正错误,因此拥有干净的数据并去除异常值非常重要。
迷你课程回顾
你做到了。干得好!花点时间回顾一下你已经走了多远:
- 你学会了如何在机器学习中讨论数据,以及所有预测建模算法的基本原理。
- 你了解了参数算法和非参数算法之间的区别,以及由偏差和方差引入的误差之间的区别。
- 你发现了三种线性机器学习算法:线性回归、逻辑回归和线性判别分析。
- 你学习了五种非线性算法:分类与回归树、朴素贝叶斯、K-近邻、学习向量量化和支持向量机。
- 最后,你了解了两种最流行的集成算法:决策树的 Bagging 和 AdaBoost 的 Boosting。
不要轻视这一点,你在短时间内取得了长足的进步。这仅仅是你机器学习算法之旅的开始。继续练习和发展你的技能。
您喜欢这个迷你课程吗?
你有什么问题或难点吗?
留下评论,让我知道。
我真的很喜欢这个。
谢谢。
你好,我对一个数据集进行了多元线性回归……我得到了2000范围内的RMSE,没有任何转换……但是当我进行对数转换后,我得到了0.4的RMSE……这没问题吗??我可以展示我的结果吗??
我建议在评估模型性能之前,对预测值和预期值进行任何逆向转换。
先生,感谢您所做的出色工作。我真的很喜欢您的网站。
不客气!
我总是喜欢阅读你的博客。感谢你的时间和努力
Krishna,我很高兴你觉得它有用。
感谢您的发帖,杰森。
我想知道您在这里是不是把“偏差”说成了“方差”:
“K-近邻算法是高偏差算法的一个例子,而线性判别分析是低偏差算法的一个例子。”
你说得对。我已经修改了描述。
感谢您出色的工作,对我们非常有帮助。
我很高兴你发现这些材料有用,itodayer。
谢谢您,先生
我想要一些关于特征提取、特征选择、特征归一化和不同分类算法的数据(与SIFT特征提取、基于SVM的特征选择和LASSO分类进行比较),用于不同性别识别数据集(FERET、FGNet、LFW和ORL)。我将开始研究物体(人类性别、动物、道路和车辆)分类。请您给我一些建议,这个研究问题是否好,以及是否有任何新颖之处。
这是我在这里回答的一个常见问题
https://machinelearning.org.cn/faq/single-faq/what-research-topic-should-i-work-on
我们将根据偏差、方差和标准差得出什么结论?在这种情况下如何思考?我们应该如何思考才能得出结论?
我希望这个博客是我读到的关于机器学习的第一篇文章。你的解释、简单的语言和简洁的信息正是初学者所需的一切!!!非常感谢。
谢谢你,Manal,很高兴你在这里。
这太棒了!谢谢杰森!
aarish,我很高兴你觉得它有用。
算法的绝佳起点!感谢提供的入口!
谢谢 Jeremy,很高兴听到你这么说。
你好 Jason,
您能解释一下生成建模和描述性建模之间的区别吗?
生成模型可以生成具有语料库中其他实例统计属性的新实例。
描述性模型可以帮助你从数据中了解领域的一些信息。
预测模型可以帮助估计结果。
这对我来说是一个有用的介绍。我最初尝试从Weka上的信息开始,但我不太明白为什么我会选择其中一种预打包算法。这对我来说是一个更好的起点。
感谢您提供所有这些信息。
我很高兴它有帮助,Mike。
非常棒的迷你课程,对那些对机器学习稍有了解的人非常有帮助。
谢谢,我很高兴它有用。
谢谢杰森!你的博客是我在有机器学习疑问时最先查阅的博客之一。你做得非常棒!再次感谢。
谢谢。
你好杰森。你的网站非常有教育意义,非常感谢。
请告诉我我的理解或解释是否正确。
“章节:所有机器学习算法的基础原理”
因为算法的目标是学习目标函数(f),所以预测之所以重要,仅仅因为它表明我们学到了更多。特别是当我们的预测与实际情况一致时。
你同意吗?
我不太明白,你能详细说明一下吗?
你好杰森。我是ALI,你的网站非常有教育意义且实用。
您能告诉我哪种机器学习算法最好、最有效,可以用来分类针对银行支付系统的APT恶意软件吗?任何Python的示例实现代码都会非常感谢。期待您的回复。
此致。
谢谢。
这是未知的。你必须通过实验来发现哪种算法最适合你的特定数据集。
https://machinelearning.org.cn/faq/single-faq/what-algorithm-config-should-i-use
非常好的介绍。继续努力。
谢谢!
有哪些高级机器学习算法可用于方法级重构?
不知道,抱歉。
非常感谢,
谢谢你
不客气。
那么模型在训练后是保存在头文件类型的文件中吗?
模型以二进制文件形式保存。
这太棒了!!!谢谢你
谢谢!
感谢杰森分享课程。这和我在课堂上学的课程大纲几乎相同。我用Python实现了使用对数概率的朴素贝叶斯分类器。我可以分享我的GitHub链接以供审查和反馈
干得好!
抱歉,我没有精力审查你的代码。
谢谢你的工作,杰森
你的工作真的很棒
不客气!
您好,先生,我非常喜欢这个。
谢谢!
我很高兴能学习更多关于机器学习的知识。谢谢
不客气。
传统回归分析和机器学习的主要区别是什么?
视角。
看这里
https://machinelearning.org.cn/faq/single-faq/how-are-statistics-and-machine-learning-related
这些课程激发了我学习机器学习的兴趣,我真的很喜欢这个网站。谢谢
谢谢,很高兴听到这个!
谢谢你的这篇文章。它简要介绍了所有算法。
我有一个关于数据集的问题。
您能解释一下什么时候一个数据集被称为高维数据集吗?
是行数多还是列数多?
不客气。
这是主观的,我认为100个或更多特征就很多了。有些人说10个或更多,有些人说1,000,000个或更多。这取决于你习惯了什么。
嗨,Jason,
感谢您所有的机器学习帖子,它们非常有帮助!特别是14天迷你课程,我真的很喜欢。因为您的帖子和课程,我开始喜欢学习机器学习。
我想问三个问题:
1. 我正在使用caret R包进行机器学习。根据您基于算法相似性的分类,您会将Nearest Shrunken Centroids(方法 = “pam”)归入哪个类别?它应该是“基于实例”的吗?
2. XGBoost呢?根据您基于算法相似性的分类,您会将其归入哪个类别?
3. 当我探索不同的机器学习方法时,您是否建议我根据您的分类,为每个算法类别选择1-2种方法来探索我的机器学习项目?
谢谢您,期待您的回复。
好问题。
是的,最近收缩质心是一种基于实例的方法。
XGBoost是决策树的集成。
是的,这听起来是个好方法。
这门课程太棒了。你很擅长用简单的词语解释概念。
需要了解获得实践经验和真实项目技能的机会。
谢谢!
这将帮助你积累经验。
https://machinelearning.org.cn/start-here/#getstarted
嗨,Jason,
你在文章中提到逻辑回归算法适用于二元分类问题。我想知道哪些机器学习方法适用于多组分类?谢谢!
LDA 是一个很好的线性方法,适用于多类别分类。
这门14步迷你课程除了理论之外,是否包含在小型数据集上进行编码或构建模型的过程?
这个迷你课程不包含,也许可以从这里开始:
https://machinelearning.org.cn/start-here/#python
我们如何检查我们的多元回归和逻辑回归模型是否良好。
这是我在这里回答的一个常见问题
https://machinelearning.org.cn/faq/single-faq/how-to-know-if-a-model-has-good-performance
嗨,Jason,
感谢您的迷你课程,特别是“bagging和随机森林”部分,我感觉我开始理解随机森林了:-) 有两个困惑:
1. 您提到了自助法(bootstrap),我想知道自助法和置换检验(permutation test)之间有什么确切的区别?它与有放回抽样有关吗?
2. 您提到bagging与bootstrap方法相同,但最常应用于决策树。我想知道这是否意味着“bagging”通常是我们用于随机森林的术语,但我们通常不使用“bootstrap”,尽管它们的意思相同?
提前非常感谢!
不客气。
主要区别在于,随机森林在决策树的每个分割点选择时会对特征进行采样。Bagging则不会。
嗨,Jason,
感谢这门迷你课程。在阐明这个非常复杂的主题方面非常有帮助。
我查阅了电子书,想知道您是否提供关于多输入多输出回归模型的任何资料。我为一个项目选择了一个数据集(生产流程),目前对此阶段感到非常困惑!
此致
丹尼
是的,你可以从这里开始:
https://machinelearning.org.cn/start-here/#deep_learning_time_series
感谢您为社区付出的一切。我读了您发到我电子邮件里的第一堂课,内容非常详细且信息丰富。
谢谢!
信息量很大。
谢谢!
根据您的经验,哪种线性回归模型最适合通过显示一些线性模式但有大量离散点的数据点拟合一条直线?简单的线性回归模型会产生较高的RMSE。
我建议测试一系列不同的线性回归算法,看看哪种能在你的数据集上产生最低的误差。
逻辑回归可以用于连续输出类型吗?还是只能用于离散输出?
不。仅用于分类以预测类别成员概率(二项分布)。
非常感谢,我们期待在第一个迷你工作之后看到一个实际课程
谢谢。
感谢您回答机器学习的基础知识。
不客气。
嗨 Jason
在你的第二课中,你提到:……我们不知道函数(f)是什么样子或它的形式。如果我们知道,我们就会直接使用它,而不需要使用机器学习算法从数据中学习它。
所以这与通常的统计学非常不同,统计学中我们必须首先选择要使用的函数,然后才找出其显著性。
这就是为什么我们需要使用/尝试不止一种算法吗?
但是如何判断哪种算法最合适?更准确?
谢谢
没错。我们尝试多种方法并“发现”哪种效果最好。
嗨,jason
我对两个变量运行了多元线性回归,其中一个是4列的线性组合,系数各不相同,另一个是具有相同输入的多元函数。我如何确定哪个是线性的,哪个是多元的?
抱歉,我没听懂你的问题,你能不能重新措辞一下?
感谢分享知识。继续保持出色的工作。
不客气。
你好杰森,关于决策树,当我们使用随机森林时,还需要进行自举吗?还需要模型验证吗?另外,在随机森林中,我们只得到结果,而不是树吗?
是的。随机森林使用自举法来拟合每棵树。
一旦你选择了一个模型,你就可以在所有可用数据上拟合它,并用它开始进行预测。
您能提供一个带有虚拟数据集的 R 语言示例吗?
你可以在这里开始使用R语言进行机器学习:
https://machinelearning.org.cn/start-here/#r
你为什么没有在算法思维导图中包含支持向量机?它们不属于聚类组吗?
它应该放在基于实例的方法下。
你好!你有没有关于交叉熵的资料?我是一名化学工程学生……不幸的是,我对这个概念不太清楚。
非常感谢您的工作,它帮助了很多人!
是的,在这里。
https://machinelearning.org.cn/cross-entropy-for-machine-learning/
非常感谢!🙂
不客气。
在第二课的预测分析中。你提到了这个方程,Y = f(X)。这是机器学习方法的通用形式吗?还有其他形式吗?
是的,它是预测模型的通用形式。
我本人对这个领域不太了解,但在我看来,我理解的是,所有这些都应该像一个立方体中的交叉图形,以及一个带根的树,图形上方是1+,下方是1-,右侧是0+,左侧是0-,树也在里面,但只有一半在里面,所有这些都在一个球中,它会自我成长和学习,达到新的思维水平,等等,一些1 0 1 +
谢谢你的帮助……
不客气。
你好杰森先生,
我大约一年前发现了您的博客系列和书籍,从那时起我读了您的许多作品,它们确实令人惊叹。
谢谢你!!
你好,Jason。
你的作品真的很有帮助。
我多次阅读了统计学和机器学习之间的区别,但我仍然不太确定。甚至第1课也提到了机器学习的统计学视角。
对于统计学,我们有明确的公式,而在机器学习中,我们说它从数据中学习,但对于统计学和机器学习,算法都是相同的,比如回归?
我发现基于公式/数学概念和从数据中学习是矛盾的。一个是固定的,另一个是动态的。但似乎在机器学习中,我们说它是基于统计学的,也说它从数据中学习。请告诉我你对此的看法。谢谢。
也许这会有帮助。
https://machinelearning.org.cn/faq/single-faq/how-are-statistics-and-machine-learning-related
好的。非常感谢您的参考。
不客气!
这很好,但有点短。如果能提供更多关于课程的细节就太好了。
书中有更多细节。
https://machinelearning.org.cn/master-machine-learning-algorithms/
你好,Jason。
感谢您分享精彩的课程。我正在考虑设计一个基于历史数据预测未来行为的模型。我想每天用累积的日数据点来训练数据。我无法弄清楚如何设计训练数据集。我的意图是用过去100天的数据和第101天的响应来训练模型,用过去101天的数据和第102天的响应,依此类推。我想让它随着时间不断适应。我该如何处理这个问题?
不客气!
也许你的问题是一个时间序列预测问题,如果是的话,这些教程会有所帮助。
https://machinelearning.org.cn/start-here/#timeseries
非常感谢你,杰森。你总是有答案!
谢谢。
并非总是如此,我只涉足了该领域的一小部分——但这是很有用的一小部分。
过拟合可能会发生,并且会增加计算时间
这可能导致在新数据上表现更差。
感谢您为我这样的初学者提供了如此有用的信息…非常感谢
不客气。
嗨,Jason,
我是机器学习的新手。我最初想学习 Python,但后来被您的网站吸引了。
据说训练中100%的准确率是过拟合。如果机器学习拥有所有必需的输入和一致的输出结果过程,假设一切都是完美的。当所有新输入都满足要求时,我们能获得100%准确的预测吗?
不,请看这个
https://machinelearning.org.cn/faq/single-faq/what-does-it-mean-if-i-have-0-error-or-100-accuracy
你好,
我是来自印度孟买萨达尔·帕特尔技术学院的Prerak Parekh。我正在寻找一些关于图像处理的好资源,其中包括基于对象的图像分类。您能为我提供一些相关的资源吗?
此致,
P Parekh。
也许从这里开始
https://machinelearning.org.cn/start-here/#dlfcv
在偏差-方差权衡中,偏差或方差哪个应该最小?我的意思是,哪个能提高算法性能,是更低的偏差还是更低的方差?
如何确定可容忍的程度?
在考虑偏差-方差权衡时应该有什么直觉?
我们通常追求良好的模型性能,偏差/方差是一种诊断或思考模型误差的方式。我们不会明确地最小化偏差和方差。
迫不及待地要快速阅读这个,我用三法则来解决我所有的算法,提示选择哪个函数也会产生结果,然后加上你的方程式就完成了。
谢谢 Jason… 我喜欢您将信息分解成基本元素的方式…
谢谢!
第一课非常重要,当我开始我的旅程时,对这些术语的互换感到非常困惑。非常好的观点!
谢谢。
非常有用!!非常非常感谢!!!
不客气。
非常有用
谢谢!
Jason,在使用SVM时,我总是觉得最难确定一种非任意的方法来分离0和1的分类,当涉及到“聚类”并且需要分解紧密聚类的差异组时。通过设置分类器(超平面)来拓宽边界以分解分组,这很容易,很快多维空间就可能导致0和1的“微不足道”分离。所以,我的问题是:您有没有一些指导方法,它不是那么随意,能很好地在这些更具挑战性的情况下提供足够的边距?
我认为困扰您的是支持向量分类器中的“软间隔”概念。实际上,这通常由训练过程处理。请参阅此 Stack Overflow 问题以了解更多信息:https://datascience.stackexchange.com/questions/45738/support-vector-machine-errors
在 scikit-learn SVC 函数中,参数 C 默认为 1。
我最近刚开始,太棒了!谢谢你!!
嗨,Jason,
我是这个领域的新手,在职业生涯中断很久之后,我开始了数据科学家课程。
我担心这门课程完全基于统计学,而我一生中从未学过。
我的问题是我是否需要先学习统计学,然后才应该上这门课程?
请指导我,第二件事是我无法理解一些事情,我们很快就要完成机器学习了,我应该现在就开始参加黑客马拉松吗?我知道我还没准备好,但我担心万一我错过了机会怎么办……
恳请您的指导……谢谢。
尝试通过实践来学习。您可以在以后想深入学习时再钻研理论科目。例如,为了获得最佳结果并更容易理解正在发生的事情,请尝试学习本迷你课程。运行一些代码,得到描述的结果,然后修改代码,看看发生了什么。当您有了一个大致的想法但想深入学习时,可以搜索统计或数学主题。
感谢您的精彩课程。请给我关于 Python 的。
嗨 Gopal…请澄清您关于 Python 的问题,以便我更好地帮助您。
您介绍机器学习的方式让它变得简单。谢谢。
Seyi,很棒的反馈!!
非常棒
Seyi,很棒的反馈!
感谢您为像我这样的新手所做的一切。我很感激。
不客气!
谢谢 Jason。这很有趣。
Daniel,非常欢迎!
在多元线性回归中使用分类数据(经过独热编码或序数编码)是否值得推荐?
嗨 Daniel…请详细说明您希望通过模型实现什么,以便我们更好地帮助您。
我喜欢阅读您的博客。感谢您的时间和付出。
Niloofar,很棒的反馈!
嗨,我不理解提升(boosting),如果一个模型有弱学习器,我们难道不想从模型中删除它们吗?
看起来提升几乎会过度拟合,不是吗?
嗨 JR…您可能会对以下内容感兴趣
https://machinelearning.org.cn/essence-of-boosting-ensembles-for-machine-learning/
嗨 Jason
从不同角度对如何在机器学习中谈论数据进行了有趣的亮点。
这就像用不同的语言表达相似的意思。
感谢您的支持和反馈 Mimi!非常感谢!
嗨,团队,有没有关于多项逻辑回归的详细教程?我的因变量是一个四类别的分类变量。我有六个以上的自变量。
嗨 Chinedu…请参阅我关于此主题的电子邮件。
关于机器学习的精彩信息,用基本的术语解释,让读者容易理解它的工作原理。
Jason,干得好!
Tim,感谢您的反馈和支持!我们非常感激。
刚刚完成了这个迷你课程。我原以为需要一周时间(每天两节课)。结果我一个晚上就完成了。这对我来说太完美了,因为我还不懂编程,数学也有点生疏,但我仍然想学习机器学习。我想我准备好进入下一步了?谢谢!
嗨 Bryan…感谢您的反馈!以下地点是您机器学习之旅的绝佳起点
https://machinelearning.org.cn/start-here/
我有点困惑于偏差和方差。所以我问了 ChatGPT。我觉得 Chat 的回答很有帮助,分享在这里,以防对其他人也有帮助,或者如果错了,专家可以提出意见。
简而言之,Chat 说问题在于拟合。要么是欠拟合,要么是过拟合。欠拟合算法未能捕捉数据中潜在的模式和关系。它们具有高偏差。它们在训练数据和预测时表现都很差,因为算法并没有真正“理解”数据。
而过拟合算法则捕捉了数据中的噪声和随机波动。它们具有高方差。因此,与欠拟合算法不同,它们在训练数据上表现非常好。但由于它们被噪声和随机波动分散了注意力,它们也失去了对真实潜在模式的认识,因此在面对新数据时提供糟糕的预测。
所以预测误差呈现 U 形曲线。随着拟合的改善(越来越少欠拟合),误差会下降,直到某个点;在触底之后,随着拟合越来越紧密(越来越过拟合),预测误差又会上升。因此,概念目标似乎是通过平衡欠拟合(偏差)和过拟合(方差)来找到 U 形曲线中的误差最小值点。
这就是我从 ChatGPT 那里得到的信息。然后我回去看我的电子书了。我现在正在学习“掌握机器学习算法”。🙂
我太喜欢这篇帖子了,J.!
感谢您的反馈,D!
亲爱的Jason
在您的第二课中,您提到我们通常不知道函数是什么样子,如果知道,我们就会直接使用它。我有一个函数,据我了解,它是一个截断正态分布(基于对 2060 个样本进行二十次重复)。我认为这种格式不允许我向您发送图表或数据的副本。
我不知道如何直接使用它:三个问题
1) 您用什么来直接评估函数?
2) 如果上述函数是一个表格分类问题,您会使用哪种算法来获得最佳结果?
3) 像 AutoGluon 这样的工具能做好吗?
此致
Aylton
嗨 Aylton…通用逼近的概念可能对您有用。
https://towardsdatascience.com/neural-networks-and-the-universal-approximation-theorem-8a389a33d30a
我非常喜欢这个,但我希望了解机器学习二进制代码的细节,以及如何编写机器学习代码以及它是如何工作的。
嗨 Saikat…我完全理解。如果您在机器学习中遇到需要解决的具体问题,请告诉我们,我们可以为您提供建议。
第二课:所有算法的基础原理
这一课非常有帮助
我正在制作一个用于心电图分析的机器学习模型。我将寻求您的帮助。
祝好
Satya
嗨 Satya…感谢您的反馈!如果您对我们的内容有任何疑问,请告诉我们。
很棒且有效的学习论坛
Faraz,感谢您的反馈和支持!如果您在学习我们的迷你课程时有任何问题,请告诉我们,我们很乐意为您解答!
它很好,而且容易理解。
Daniel,感谢您的反馈和支持!
机器学习的精彩总结——易于理解和遵循。感谢您,Jason!
我无法用言语表达我对您为准备这精彩的机器学习章节所付出的努力的感谢。
Muhammad,非常欢迎!我们感谢您的支持和反馈!