👨💻 作者简介:程序员半夏 , 一名全栈程序员,擅长使用各种编程语言和框架,如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个平台找到我!
🏆 本文收录于专栏: 零基础学机器学习
🔥 专栏介绍:🥇 本专栏将帮助您了解机器学习、其工作原理以及如何使用它。本教程包含以下内容:监督和无监督学习、线性回归、随机森林算法、朴素贝叶斯分类器、K-means聚类算法等基础学习基础知识,以及各种实战案例。
文章目录
机器学习的社会应用
1. 金融风控
机器学习在金融风控方面的应用非常广泛,可以用于预测借款人的信用风险、欺诈行为等。通过收集大量的历史数据,构建机器学习模型,可以对借款人的信用风险进行预测,从而帮助金融机构降低风险。
2. 医疗诊断
机器学习在医疗诊断方面的应用也非常广泛。例如,通过对大量的医学图像进行训练,可以构建出能够诊断疾病的机器学习模型,帮助医生进行更加准确的诊断。
3. 智能客服
机器学习在智能客服方面的应用也非常广泛。通过对大量的客户数据进行训练,可以构建出能够自动回答客户问题的机器学习模型,从而提高客户满意度,降低客服成本。
4. 智能推荐
机器学习在智能推荐方面的应用也非常广泛。例如,通过对用户的历史行为数据进行分析,可以构建出能够预测用户喜好的机器学习模型,从而向用户推荐更加符合其兴趣的商品或服务。
5. 交通管理
机器学习在交通管理方面的应用也非常广泛。例如,通过对交通流量、车辆速度等数据进行分析,可以构建出能够预测交通拥堵情况的机器学习模型,从而帮助交通管理部门及时采取措施,减少交通拥堵。
什么是机器学习
机器学习是人工智能的一种应用,它使系统能够自主学习并从经验中提高,而不需要外部编程。如果你的电脑具有机器学习功能,它可能能够为你玩游戏中的困难部分或解决复杂的数学方程。
机器学习的工作原理
考虑一个包含各种水果照片的输入数据系统。你想让系统根据不同类型的水果对数据进行分组。
首先,系统会分析输入数据。接下来,它会尝试找到模式,比如形状、大小和颜色。基于这些模式,系统将尝试预测不同类型的水果并将它们分开。最后,它会跟踪整个过程中做出的所有决策,以确保它正在学习。下一次你要求同一系统预测和分离不同类型的水果时,它就不必再次经历整个过程。这就是机器学习的工作原理。
学习机器学习 (ML) 的先决条件
- 基本的编程语言知识,如Python、R、Java、JavaScript等
- 中级的统计学和概率知识
- 基本的线性代数知识。在线性回归模型中,通过所有数据点绘制一条线,并使用该线计算新值。
- 理解微积分
- 知道如何清洗和结构化原始数据以达到所需的格式,以减少决策所需的时间。
机器学习分类
- 监督学习:在训练机器独立工作时,人监督机器的学习过程。此过程需要标记的训练数据。
- 无监督学习:有训练数据,但不会被标记。
- 强化学习:系统自主学习。
监督学习
监督学习是一种机器学习方法,其目的是通过已知的输入和输出数据来训练模型,以便能够预测新的未知数据的输出。在监督学习中,算法会从给定的训练数据中学习规律和模式,并将这些规律应用于新的数据。监督学习的常见应用包括分类、回归和预测。在分类问题中,算法会将输入数据分为不同的类别,而在回归问题中,算法会预测一个连续的输出值。
举一个具体的例子:
比如你想让计算机学习区分猫和狗的图片。你可以提供一个数据集,其中包含若干张猫的图片和若干张狗的图片。然后,你需要为每张图片打上标签,让计算机知道哪些是猫的图片,哪些是狗的图片。计算机会根据这些标签来学习如何区分猫和狗的图片。最后,你可以提供一组新的图片,让计算机自己判断哪些是猫的图片,哪些是狗的图片。这就是监督学习的过程。
这就是监督学习的工作原理。
无监督学习
无监督学习是一种机器学习方法,其中模型使用未标记的数据进行训练,没有给出任何预测变量或标签。在无监督学习中,算法被赋予任务来发现数据中的模式和结构,以便对新数据进行分类、聚类或降维等操作。这种方法通常用于探索性数据分析和数据预处理,以及在没有足够标记数据的情况下进行模型训练。无监督学习的例子包括聚类、异常检测、关联规则挖掘和主成分分析等。
假设我们有一个包含客户购买历史记录的数据集。我们不知道这些客户属于哪个人群,也不知道他们的购买偏好。我们可以使用无监督学习算法,如K均值聚类,将客户分为不同的群体,每个群体代表一组具有相似购买行为的客户。
强化学习
强化学习是一种机器学习的方法,通过试错来学习如何在一个环境中采取行动,以最大化某种奖励信号的累积。强化学习的目标是通过最大化累积的奖励信号来学习如何在一个环境中采取行动。
一个简单的例子是训练一个机器人走迷宫。机器人需要在迷宫中寻找出口,并且需要尽可能快地到达出口。在这个例子中,机器人的行动是通过试错来学习的。当机器人采取一个行动时,它会收到一个奖励信号,如果它走向了出口,那么它会获得一个正的奖励信号,否则它会获得一个负的奖励信号。机器人会根据这些奖励信号来调整它的行动,以便在下一次尝试时做出更好的决策。通过不断的试错,机器人最终会学会如何快速而准确地走出迷宫。
再例如;你提供了一个数据集给机器,要求它识别特定类型的水果(苹果)。机器错误地告诉你它是芒果。你向机器提供了反馈,告诉它它的答案是错误的,它应该是苹果。机器从反馈中学习并记住了正确的答案。下一次你问同样的问题时,机器能够正确地回答,告诉你它是苹果。这是一种加强学习的反应。
监督学习和无监督学习之间的比较
监督学习和无监督学习在几个方面有所不同:
-
监督学习中使用的数据是标记的。在上面展示的例子中,你提供苹果的照片并让系统知道这是一个苹果。这被称为标记数据。系统从标记数据中学习并进行未来的预测。另一方面,无监督学习不需要任何标记的数据,因为它的工作是在输入数据中寻找模式并组织它。
-
在监督学习的情况下,你会得到反馈。也就是说,一旦你接收到输出,系统会记住它并用于下一次操作。无监督学习不会发生这种情况。
-
监督学习主要用于预测数据,而无监督学习用于查找数据中的隐藏结构。
机器学习的常用算法
分类
第一种方法是分类,它属于监督学习。当你要寻找的输出是“是”或“否”,或者是“a”或“b”或“true”或“false”形式时,就可以使用分类。
例如,如果一个店主想要预测一个特定的顾客是否会回到他的店里,他将使用分类算法。分类算法的例子包括:
- 决策树
- 朴素贝叶斯
- 随机森林
- 逻辑回归
- K近邻(KNN)
回归
回归方法用于预测数值型数据。如果商家想要根据需求预测产品的价格,他会选择回归。
聚类
聚类是一种无监督学习方法,用于组织数据。Flipkart、Amazon和其他在线零售商使用聚类来进行推荐系统。搜索引擎也使用聚类来分析你的搜索历史,以确定你的偏好并为你提供最佳搜索结果。其中一个聚类算法是K-means。
4 种最常见的机器学习算法
K-最近邻算法
K-最近邻算法是一种分类算法,其中相似的数据点形成聚类,这些聚类用于识别新的、未知的对象。在下面的图像中,有三个不同的聚类:蓝色A、红色C和绿色B。
假设有一个新的、未知的数据点P,它将根据最接近它或最相似的聚类进行分类。KNN中的K是我们希望将未知数据与其进行比较的最近邻数据点的数量。考虑下面的例子:
实例
下图中有三个聚类:足球、网球和篮球。从图中我们可以推断出:
-
足球的成本很高,耐用性很低;
-
网球的耐用性很高,但成本很低;
-
篮球的成本和耐用性都很高。
考虑一个未知的数据点:一个黑点,它可以是球的一种分类。
我们尝试使用KNN对其进行分类。如果取k=5,画一个圆圈,把未知数据点放在中心,确保圆圈内有五个球。
在画圆圈后,圆圈内有一个足球、一个篮球和三个网球。由于圆圈内网球的数量最多,该球将被分类为网球。这就是K-最近邻分类的方法。
线性回归
线性回归是一种监督学习算法,用于建立变量之间的线性关系,其中一个变量是依赖变量,另一个是独立变量。例如,如果要根据一个人的身高预测他的体重,体重将是依赖变量,身高将是独立变量。
下面是一个示例:
考虑一个显示人的身高和体重之间关系的图表。y轴表示身高,x轴表示体重。绿色点是各种数据点,“d”是均方误差,它是从线到数据点的垂直距离,或误差值。这个误差描述了预测值与原始值的差异有多大。
现在先忽略蓝线,画一条新的回归线。可以看到所有数据点到新线的距离。如果把新线作为回归线,预测误差将会很高。在这种情况下,模型将无法给出准确的预测。
让我们用另一条回归线来演示同样的情况,如下所示。即使在这种情况下,数据点到线的垂直距离也非常高,这意味着误差值仍然很高。这个模型也无法给出准确的预测。
最后,你画了一条映射数据点到线距离的线(蓝线),相对于你画的其他两条线,这个距离要小得多。蓝色回归线的“d”值将会更小,因此更准确。如果你给x轴分配任何值,相应的y轴值将是你的预测。鉴于“d”非常低,你的预测应该是准确的。
这就是回归的工作原理;你画出一条回归线,使“d”值最小,最终给出准确的预测。
决策树
决策树是一种人们可以理解的算法,因为这通常是我们自己做决策的方式。它使用分支方法来理解问题,并根据条件做出决策。
想象一下坐在家里,想去游泳。你检查外面是否晴朗:这是你的第一个条件。如果这个条件的答案是“是”,你就去游泳。如果不晴朗,下一个问题你会问,“下雨了吗?”这是第二个条件。如果下雨了,你就取消计划呆在室内。否则,你会出去散步。这是最终节点。
这就是决策树算法的工作方式。你可能每天都使用这种方法根据多个条件做出决策。
朴素贝叶斯
朴素贝叶斯算法是一种基于贝叶斯定理和特征条件独立假设的分类算法。在朴素贝叶斯算法中,将待分类的数据看作一个向量,对每个特征进行概率估计,然后利用贝叶斯定理计算出该向量属于每个类别的概率,最终将该向量归为概率最大的那个类别。朴素贝叶斯算法具有简单、高效、易于实现等优点。
朴素贝叶斯主要用于基于大型数据集进行预测的情况。它使用条件概率——已经发生了另一个事件“B”,事件“A”发生的概率。
过滤垃圾邮件
这个算法最常用于在你的电子邮件帐户中过滤垃圾邮件。
当你收到一封电子邮件时,模型会通过你的旧垃圾邮件记录。然后,它使用贝叶斯定理来预测即将到来的电子邮件是否是垃圾邮件。
P(C / A)是事件“C”发生时“A”已经发生的概率。
P(A / C)是事件“C”已经发生时“A”发生的概率。
P(C)是事件“C”发生的概率。
P(A)是事件“A”发生的概率。