机器学习正在改变世界。谷歌使用机器学习向用户推荐搜索结果.NETflix 使用它来推荐电影供您观看。Facebook 使用机器学习来推荐您可能认识的人。
机器学习从未如此重要。同时,理解机器学习也很困难。该领域充满了行话。并且不同的机器学习算法的数量每年都在增长。
本文将向您介绍机器学习领域的基本概念。更具体地说,我们将讨论今天最重要的 9 种机器学习算法背后的基本概念。
推荐系统
什么是推荐系统?
推荐系统用于在数据集中找到相似的条目。
也许最常见的真实世界推荐示例存在于 Netflix 内部。更具体地说,其视频流服务将根据您已经观看的内容推荐推荐的电影和电视节目。
另一个推荐系统是 Facebook 的“您可能认识的人”功能,它根据您现有的朋友列表为您推荐可能的朋友。完全开发和部署的推荐系统非常复杂。它们也非常耗费资源。
推荐系统和线性代数
成熟的推荐系统需要深厚的线性代数背景才能从头开始构建。
因此,如果您以前从未学习过线性代数,则本节中可能会有一些您不理解的概念。
不过不用担心—scikit-learn Python/ target=_blank class=infotextkey>Python 库让构建推荐系统变得非常容易。S0 你不需要太多的线性代数背景来构建现实世界的推荐系统。
推荐系统如何工作?
推荐系统主要有两种类型:
基于内容的推荐系统
协同过滤推荐系统
基于内容的推荐系统根据项目与您已经使用过的项目的相似性为您提供建议。它们的行为与您期望推荐系统的行为完全相同。
协同过滤推荐系统基于用户与项目交互的知识产生推荐。换句话说,他们利用群众的智慧。(因此在其名称中使用了“群体协作”一词。)
在现实世界中,协同过滤推荐系统比基于内容的系统更常见。这主要是因为它们通常会提供更好的结果。一些从业者还发现协同过滤推荐系统更容易理解。
协同过滤推荐系统还具有基于内容的系统所缺少的独特功能。也就是说,他们有能力自己学习特征。
这意味着他们甚至可以根据您甚至没有告诉他们考虑的属性开始识别项目之间的相似性。
协同过滤中有两个子类别:
基于记忆的协同过滤
基于模型的协同过滤
您无需了解这两种类型的协同过滤推荐系统之间的区别即可在机器学习中取得成功。认识到存在多种类型就足够了。
部分总结
以下是我们在本教程中讨论的关于推荐系统的内容的简要总结:
现实世界中的推荐系统示例
不同类型的推荐系统,以及协同过滤系统如何比基于内容的推荐系统更常用
推荐系统与线性代数的关系
线性回归
线性回归y用于根据另一组值的值来预测某些x值。
线性回归的历史
线性回归由Francis Galton在 1800 年代创建。
高尔顿是一位研究父母与孩子之间关系的科学家。更具体地说,高尔顿正在调查父亲的身高和儿子的身高之间的关系。
高尔顿的第一个发现是儿子的身高往往与父亲大致相同。这并不奇怪。
后来,高尔顿发现了更有趣的事情。儿子的身高往往比他自己的父亲更接近所有人的平均身高 。
高尔顿给这种现象起了一个名字:回归。具体来说,他说“父亲的儿子的身高趋向于回归(或趋向)平均(平均)身高”。这导致了统计和机器学习的整个领域,称为回归。
线性回归的数学
在创建回归模型时,我们要做的就是绘制一条尽可能接近数据集中每个点的线。
这方面的典型例子是线性回归的“最小二乘法”,它只计算一条直线在上下方向的接近度。
这是一个示例来帮助说明这一点:
最小二乘回归背后的数学示例
当您创建回归模型时,您的最终产品是一个方程,您可以使用它来预测 x 值的 y 值,而无需事先实际知道 y 值。
逻辑回归
逻辑回归类似于线性回归,只是它不是计算数值y,而是估计数据点属于哪个类别。
什么是逻辑回归?
逻辑回归是一种用于解决分类问题的机器学习模型。
以下是机器学习分类问题的一些示例:
垃圾邮件(垃圾邮件还是非垃圾邮件?)
汽车保险索赔(注销或维修?)
疾病诊断
每个分类问题都有两个类别,这使它们成为二元分类问题的示例。
逻辑回归非常适合解决二元分类问题—我们只需为不同的类别分别分配0和的值1。
为什么我们需要逻辑回归?
因为您不能使用线性回归模型进行二元分类预测。它不会导致很好的拟合,因为您试图通过只有两个可能值的数据集拟合一条直线。
这张图片可以帮助你理解为什么线性回归模型不适合二元分类问题:
线性回归分类
在该图像中,y-axis表示肿瘤为恶性的概率。相反,该值1-y表示肿瘤不是恶性的概率。如您所见,线性回归模型在预测数据集中大多数观察的概率方面做得很差。
这就是逻辑回归模型有用的原因。它们对最佳拟合线有一个弯曲,这使它们更适合预测分类数据。
这是一个使用相同训练数据将线性回归模型与逻辑回归模型进行比较的示例:
逻辑回归模型的曲线有弯曲的原因是因为它不是使用线性方程计算的。相反,逻辑回归模型是使用 Sigmoid 函数(也称为逻辑函数,因为它用于逻辑回归)构建的。
您无需记住Sigmoid 函数即可在机器学习中取得成功。话虽如此,对它的外观有所了解是很有用的。
Sigmoid 函数值得理解的主要特点是:无论你传入什么值,它总是会产生一个介于 0 和 1 之间的输出。
使用逻辑回归模型进行预测
要使用线性回归模型进行预测,通常需要指定一个截止点。这个截止点通常是0.5。
让我们使用我们早期图像中的癌症诊断示例来查看实践中的这一原理。如果逻辑回归模型输出的值低于 0.5,则数据点被归类为非恶性肿瘤。同样,如果 Sigmoid 函数输出的值高于 0.5,则肿瘤将被归类为恶性。
混淆矩阵可用作比较机器学习中的真阳性、真阴性、假阳性和假阴性的工具。
混淆矩阵在用于衡量逻辑回归模型的性能时特别有用。以下是我们如何使用混淆矩阵的示例:
在此图中,TN 代表“真阴性”,FN 代表“假阴性”。
混淆矩阵可用于评估您的模型在混淆矩阵的特定象限中是否特别弱。例如,它可能有异常多的误报。
它在某些应用程序中也很有帮助,以确保您的模型在混淆矩阵的特别危险区域中表现良好。例如,在这个癌症示例中,您需要非常确定您的模型没有很高的假阴性率,因为这表明某人患有您错误地归类为非恶性的恶性肿瘤。
部分总结
-
-
逻辑函数(也称为 Sigmoid 函数)始终输出介于 0 和 1 之间的值
-
-
K-最近邻
K-最近邻算法可以帮助您解决两个以上类别的分类问题。
K近邻算法是一种基于简单原理的分类算法。其实原理很简单,最好通过例子来理解。
想象一下,您有足球运动员和篮球运动员的身高和体重数据。K-最近邻算法可用于预测新运动员是足球运动员还是篮球运动员。
为此,K-最近邻算法识别K最接近新观测值的数据点。
在此图像中,足球运动员被标记为蓝色数据点,篮球运动员被标记为橙色点。我们试图分类的数据点被标记为绿色。
由于新数据点的大多数(3 个中的 2 个)数据点是蓝色足球运动员,因此 K-最近邻算法将预测新数据点也是一名足球运动员。
构建 K-最近邻算法的步骤
K 在 K-最近邻算法中的重要性
虽然从一开始可能并不明显,但K在 K 近邻算法中更改 的值将改变新点分配到的类别。
更具体地说,具有非常低的K值将导致您的模型完美地预测您的训练数据并且很差地预测您的测试数据。同样,值太高K会使您的模型变得不必要地复杂。
为了结束对 K 近邻算法的介绍,我想简要讨论使用该模型的一些优缺点。
该模型只接受两个参数:K以及您想使用的距离度量(通常是欧几里得距离)
进行预测的计算成本很高,因为您需要对整个数据集进行排序
-
K-最近邻算法可以解决的分类问题(足球运动员与篮球运动员)示例
-
K-最近邻如何使用相邻数据点的欧几里得距离来预测新数据点属于哪个类别
-
-
决策树和随机森林
更具体地说,决策树是机器学习模型,用于通过逐个循环遍历数据集中的每个特征来进行预测。随机森林是决策树的集合,它使用数据集中特征的随机顺序。
在我们深入研究机器学习中树方法的理论基础之前,从一个例子开始会很有帮助。
想象一下,你每周一都打篮球。而且,你总是邀请同一个朋友来和你一起玩。
是否来的决定取决于许多因素,如天气、温度、风和疲劳。您开始注意到这些功能,并开始跟踪它们以及您朋友是否玩的决定。
您可以使用这些数据来预测您的朋友是否会来打篮球。您可以使用的一种技术是决策树。下面是这个决策树的样子:
您可以在上图中看到 和的outlook节点。这些属性中的每一个的每个潜在价值都有一个优势。humiditywindy
您现在对什么是决策树有了基本的了解。我们将在下一节学习如何从头开始构建决策树。
构建决策树比您想象的要难。这是因为决定将数据拆分到哪些特征(这是属于熵和信息增益领域的主题)是一个数学上复杂的问题。
为了解决这个问题,机器学习从业者通常使用许多决策树,使用随机选择的特征样本作为分割。换句话说,在每次拆分时为每棵树选择一个新的随机特征样本。这种技术称为随机森林。
通常,从业者通常选择特征随机样本的大小(表示为m)作为数据集中总特征数的平方根(表示为p)。简而言之,m是 的平方根p,然后从 中随机选择一个特定的特征m。
如果现在这不完全有意义,请不要担心。当你最终建立你的第一个随机森林模型时会更清楚。
使用随机森林的好处
想象一下,您正在使用具有一个非常强大功能的数据集。换句话说,数据集有一个特征比数据集中的其他特征更能预测最终结果。
如果您手动构建决策树,那么使用此功能作为决策树的顶部拆分是有意义的。这意味着您将拥有多个预测高度相关的树。
我们希望避免这种情况,因为取高度相关变量的平均值不会显着减少方差。通过为随机森林中的每棵树随机选择特征,这些树变得去相关并且结果模型的方差减少了。这种去相关是使用随机森林而不是手工决策树的主要优势
部分总结
以下是您在本文中学到的有关决策树和随机森林的简要总结:
决策树的元素:nodes、edges、roots和leaves
为什么使用随机森林去相关变量有助于减少最终模型的方差
支持向量机
支持向量机是分类算法(尽管从技术上讲,它们也可用于解决回归问题),通过切分类别之间的最大差距将数据集划分为类别。稍后将通过可视化使这个概念更加清晰。
支持向量机(或简称 SVM)是有监督的机器学习模型,具有分析数据和识别模式的相关学习算法。
支持向量机可用于分类问题和回归问题。在本文中,我们将专门研究使用支持向量机解决分类问题。
给定一组训练示例——每个训练示例都被标记为属于两个类别之一——支持向量机训练算法构建一个模型。该模型将新示例分配到两个类别之一。这使得支持向量机成为非概率二元线性分类器。
更具体地说,SVM 模型将数据点映射为空间中的点并划分单独的类别,以便将它们划分为尽可能宽的开放间隙。新数据点被预测属于基于它们属于差距的哪一侧的类别。这是一个可视化示例,可以帮助您理解支持向量机背后的直觉:
如您所见,如果一个新的数据点落在绿线的左侧,它将被标记为红色类别。同样,如果一个新数据点落在绿线的右侧,它将被标记为属于蓝色类别。
这条绿线称为超平面,它是支持向量机算法的重要词汇。
在该图中,超平面被标记为最优超平面。支持向量机理论将最优超平面定义为使每个类别中最接近的数据点之间的边距最大化的超平面。
如您所见,边缘线实际上触及三个数据点——两个来自红色类别,一个来自蓝色类别。这些接触边缘线的数据点称为支持向量,并且是支持向量机得名的地方。
部分总结
支持向量机如何使用超平面对数据点进行分类,从而最大化数据集中类别之间的边距
在支持向量机中接触边缘线的数据点称为支持向量。这些数据点是支持向量机名称的来源。
K-Means 聚类
K-means 聚类是一种机器学习算法,可让您识别数据集中的相似数据段。
这意味着它会接收未标记的数据,并将尝试在您的数据中将类似的观察聚类分组在一起。
K-means 聚类算法对于解决实际问题非常有用。以下是此机器学习模型的一些用例:
亚马逊、UPS 或 FedEx 等公司的配送路线优化
K 均值聚类算法的主要目标是将数据集划分为不同的组,以使每组内的观察结果彼此相似。
我们将在本教程的下一部分探讨 K-means 聚类背后的数学。
K-Means 聚类算法如何工作?
运行 K-means 聚类算法的第一步是选择您希望将数据划分到的聚类数量。该聚类数是K算法名称中引用的值。
在 K-means 聚类算法中选择K值是一个重要的选择。K我们将在本文后面更多地讨论如何选择合适的值。
接下来,您必须将数据集中的每个点随机分配给一个随机集群。这给出了我们的初始分配,然后您运行以下迭代,直到集群停止更改:
这是一个动画,它在实践中如何用于K值为 的K-means 聚类算法3。您可以看到由黑色+字符表示的每个簇的质心。K 均值聚类算法的可视化
如您所见,此迭代一直持续到集群停止更改——这意味着不再将数据点分配给新集群。
为 K-means 聚类算法选择一个合适的K值实际上是相当困难的。K选择“最佳”值没有“正确”答案。
要使用肘部方法,您需要做的第一件事是为一组值的 K 均值聚类算法计算平方误差之和 (SSE) K。K 均值聚类算法中的 SSE 定义为聚类中每个数据点与该聚类质心之间的平方距离之和。
接下来,您将要针对这些不同的K值生成 SSE 图。您将看到误差随着K值的增加而减小。
这是有道理的——您在数据集中创建的类别越多,每个数据点就越有可能靠近其特定集群的中心。
话虽如此,肘法背后的想法是选择一个值,K在该值上 SSE 会突然减缓其下跌速度。elbow这种突然的下降在图中产生了一个。
例如,这里是 SSE 对K. 在这种情况下,肘部方法建议使用K大约 的值6。
K 均值聚类算法的可视化
重要的6是,这只是对使用价值的估计K。K-means 聚类算法中从来没有“最佳”K值。与机器学习领域的许多事情一样,这是一个高度依赖于情况的决定。
部分总结
K-means 聚类算法能够解决的无监督机器学习问题示例
如何使用肘法K在 K-means 聚类模型中选择合适的值
主成分分析
主成分分析用于将多特征数据集转换为具有较少特征的转换数据集,其中每个新特征都是预先存在的特征的线性组合。这个转换后的数据集旨在更简单地解释原始数据集的大部分方差。
什么是主成分分析?
主成分分析是一种机器学习技术,用于检查变量集之间的相互关系。
换句话说,主成分分析研究变量集以识别这些变量的基本结构。
基于此描述,您可能会认为主成分分析与线性回归非常相似。
事实并非如此。事实上,这两种技术有一些重要的区别。
线性回归与主成分分析的区别
线性回归通过数据集确定最佳拟合线。主成分分析确定了几条最适合数据集的正交线。
如果您不熟悉术语正交,它仅表示这些线彼此成直角(90 度) - 就像地图上的北、东、南和西一样。
在此图像中,x 轴主成分示例了数据集中 73% 的方差。y 轴主成分解释了数据集中约 23% 的方差。
这意味着数据集中仍有 4% 的方差无法解释。您可以通过在分析中添加更多主成分来进一步减少此数字。