13、机器学习入门:概念、算法与应用解析

机器学习入门:概念、算法与应用解析

1. 什么是机器学习

机器学习与统计模型各有优劣。统计模型在把握数据集中关系的类型上存在局限,但具有透明性;而机器学习则恰恰相反。以下是统计模型与机器学习模型的对比:
| 对比项目 | 统计模型 | 机器学习 |
| — | — | — |
| 可解释性 | 白盒 | 黑盒 |
| 复杂度 | 较简单 | 更复杂 |
| 需求驱动因素纳入难度 | 困难 | 简单 |
| 数据需求 | 有限 | 广泛 |
| 预期准确性 | 较低 | 较高 |

需要注意的是,人工智能(AI)并没有严格清晰的定义。对于数据科学家来说,机器学习的范畴通常是明确的。有个玩笑说,如果用 Python 编写的就是机器学习,如果用 PowerPoint 展示的就是人工智能。一般而言,对于那些声称在做人工智能的人要保持谨慎,因为这个术语常被用于推销过度承诺的软件或项目。

这里讨论的内容不适用于线性回归(包括 Lasso、Ridge 和 ElasticNet 等高级版本),通常不将其视为机器学习。一些从业者和软件供应商将 ARIMA 或 Prophet 视为机器学习,这种说法并不准确,应将这些模型归类为统计模型。而森林、梯度提升树和各类神经网络等模型则属于机器学习的范畴。

2. 机器如何学习

机器学习算法会遍历按数据特征排序的数据集,并尝试找出这些数据特征与期望输出之间的潜在关系。以预测未来需求为例,模型可能会参考历史销售数据、短缺情况以及未来几天的天气预报。

数据特征是模型用于进行预测的一类信息。例如,若要利用天气预报和近期在线搜索量来预测明天的需求,“明天的天气”和“今天的在线搜索量”就是数据特征。以下是一个机器学习模型典型输入(数据特征)的示例:
| 输入(数据特征) | | | | | | | 输出 |
| — | — | — | — | — | — | — | — |
| 品牌 | 需求(Q - 4) | 需求(Q - 3) | 需求(Q - 2) | 需求(Q - 1) | 平均价格 | 价格(Q + 1) | 促销 | 需求 |
| 低成本 | 1500 | 500 | 400 | 300 | 10 | 10 | 无 | 200 |
| 高端 | 500 | 1000 | 750 | 500 | 35 | 30 | -15% | 700 |
| 常规 | 250 | 350 | 150 | 400 | 20 | 20 | -20% | 300 |
| 低成本 | 100 | 110 | 120 | 150 | 8 | 9 | 无 | 120 |
| 低成本 | 50 | 30 | 80 | 10 | 5 | 5 | 无 | 30 |
| 常规 | 200 | 250 | 220 | 240 | 15 | 14 | -10% | 260 |

在构建机器学习模型时,需要关注两个关键方面:
- 模型用于预测未来需求的数据(特征) :为机器学习模型提供相关数据,能使其更准确地预测未来需求,因为它有更多有价值的信息可供利用。例如,若不知道产品在黑色星期五是否会打折,就无法准确预测其销量。这需要具备业务洞察力,而非单纯的技术技能来集思广益,确定可使用的特征。
- 微调机器学习模型的参数 :这一步骤需要数据科学方面的专业技能,超出了本文的讨论范围。

3. 特征工程

在决定向模型提供哪些数据时,不应仅依赖数据科学家。任何有业务经验的人都应参与进来,共同确定哪些数据特征可以提供给模型,这就是特征工程。

特征工程是指选择(并创建或调整)数据特征以提供给机器学习模型的过程。这通常被视为数据科学家的技术过程,但实际上更应看作是一个业务过程。

为了讨论哪些数据特征可以纳入模型,可以组织团队成员进行头脑风暴。可以以“如果要预测下个月的需求,我会问自己哪些问题?我想查看哪些信息?”这个问题作为讨论的开端。以下是一些常见的答案:
- 产品的当前定价是多少,过去几个月价格是否有变化?
- 产品的月平均需求量是多少?
- 产品近期是否缺货?
- 是否正在进行促销活动?

收集完这些问题后,困难的部分就开始了,即收集所需的数据。可能需要在数据质量和可用性之间进行权衡。例如,可能只能获取部分促销活动的数据,而不是全部。不要为了收集对需求驱动作用不大的数据而让数据科学项目停滞数月。

4. 局部模型与全局模型
  • 局部模型 :传统的统计模型,如之前提到的一些模型,会独立地对数据集中的每个产品进行拟合,我们称之为局部模型。简单来说,如果让统计模型预测产品 A 的未来需求,它只会依据产品 A 的历史数据,而不会参考其他产品的数据。因此,可以通过提供更多历史数据来提高统计模型的准确性,但添加新的产品到数据集中并不会有帮助,因为模型不会将从新产品学到的见解应用到其他产品上。
  • 全局模型 :大多数机器学习算法会学习整个数据集中的模式,它们会一次性使用整个数据集进行训练,我们称之为全局模型。在预测需求的场景中,全局模型会利用所有可用产品的历史数据来学习模式(即使这些模式可能只适用于部分产品)。全局模型能够捕捉数据集中的各种普遍关系,例如“进行促销活动时,需求会增加”或“如果过去几个时期需求呈增长趋势,那么未来也可能保持这种趋势”。

全局模型的一个优点是,在面对新的、未见过的数据时,它具有较好的泛化能力。例如,即使某个特定产品之前从未进行过促销,全局模型也可以将从其他有促销历史的产品中学到的经验应用到该产品上。可以通过提供更多的产品数据来提高全局模型的准确性,因为这能让机器有更多机会学习有意义的关系。但这也意味着不能在小数据集上使用机器学习,因为算法没有足够的机会发现有意义的关系。需要注意的是,使用全局模型并不意味着它一定会学习产品之间的关系,它只是学习全局属性和模式。如果希望全局模型理解产品之间的相互作用,需要明确地告知它。

5. 黑盒与白盒

统计模型具有很强的可解释性,因为它们明确展示了输入变量与预测输出之间的相互作用,这类模型易于理解和解释,被称为白盒模型。通过这些模型,可以了解到水平、趋势、季节性以及特定驱动因素的影响(例如“促销活动会使预测需求量增加 15%”)。借助它们,能够轻松回答诸如“是否存在季节性?”或“是否有趋势?”等问题。如果某个特定时期的预测结果异常,可以通过查看子组件(水平、趋势、季节性)的表现来找出误差的来源。

然而,机器学习模型是黑盒模型。至少以目前的技术和方法,它们不会向你传达产品的水平、趋势或季节性的估计值,甚至你都不知道模型是否检测到了季节性或趋势。不过,有两种方法可以帮助我们了解机器学习算法的工作原理:特征重要性和情景分析。
- 特征重要性 :在使用基于树的机器学习模型时,可以计算数据特征的重要性。但需要注意的是,某个特征(如促销活动)重要并不意味着能知道开展促销活动的具体影响,只能说明模型会关注该特征,但具体方式并不清楚。而且,对于神经网络,很难评估特征的重要性。总体而言,通过查看特征重要性只能获得有限的见解。不过,这可能会让你发现某些需求驱动因素是无用的。例如,如果进行特征重要性分析后发现天气的总体重要性仅为 0.01%,就知道它对业务来说并非关键因素。
- 情景分析 :可以通过运行不同的预测情景来计算需求驱动因素的影响。例如,可以分别运行有折扣和无折扣的两种情景,通过观察对需求预测的影响,推断促销活动的效果(以及预期的提升幅度)。某个项目的模型预测促销活动会使需求总体提升 17%,并且发现促销活动会导致促销前后时期的销量下降,这种现象被称为自我蚕食。

6. 主要的学习算法类型

接下来将介绍两种最常见的学习算法:基于树的模型和神经网络。在此之前,先简要了解一下机器学习的起源。

6.1 机器学习模型的简短历史

数据科学和机器学习模型看似是现代的产物,但实际上最早的模型是在 20 世纪中叶提出的。1957 年,Rosenblatt 构建了第一个神经网络;同年,Holt 发表了关于指数平滑的研究成果,这至今仍是最广泛使用的预测方法。具有讽刺意味的是,将近 30 年后,阻尼趋势才被引入指数平滑方法中,如今所有的预测引擎都普遍使用这种改进后的方法。1963 年,Morgan 和 Sonquist 提出了第一个决策树算法(尽管决策树在大众中不太知名,但它是许多最新模型的主要构建模块)。

既然第一个机器学习模型在 60 多年前就已出现,为什么我们之前没有听说过呢?主要有以下四个原因:
- 计算能力 :计算能力呈指数级增长。2019 年的 iPhone 处理速度比 1969 年的阿波罗 11 号快 10 万倍,内存也多 100 万到 1000 万倍。
- 数据 :如今企业拥有的数据比过去更多,尤其是零售商和电商。
- 强大高效的算法 :随着时间的推移,科学界开发出了更强大的机器学习算法,计算机科学家也完善了软件实现方式,使得模型的运行速度大大提高。例如,2010 年至 2015 年间,神经网络得到了多次重大改进;自 2015 年以来,基于树的方法也取得了许多突破。
- 简单性 :随着机器学习的普及,实现这些模型的工具变得越来越简单,并且有各种资源可供学习,现在学习编码和应用数据科学最佳实践比以往任何时候都更容易。

简单来说,在 2015 年,可能没有足够好的算法来实现足够准确的预测。在 2010 年之前,实现任何机器学习模型都是一项挑战。机器学习的显著特点是其持续的发展,科学界每年都会开发和发布更快、更智能的算法。相比之下,对新的统计模型不应有过高期望。

6.2 基于树的模型

决策树是一类机器学习算法,它会创建一个问题地图(树)来进行预测。这个地图是基于数据集创建的,这就是我们所说的机器学习。

为了进行预测,决策树会提出一系列简单的是/否问题,直到得出最终预测结果。例如,“下个月是否会进行促销活动?”“上个月的销量是否超过 10 件?”“自上个季度以来价格是否上涨?”可以将这些树看作是一个大型的 80 年代经典游戏“猜猜是谁?”。

从技术上讲,每个问题被称为一个节点,每个可能的最终答案(预测)被称为一个叶子。在决策树应用于“猜猜是谁?”游戏的示例中,每个叶子只包含一个人,但这不是必需的,也可以想象有多个人具有大嘴和大鼻子的情况。

构建树的算法会通过询问关于可用特征的问题(技术上称为进行分割)来遍历节点。在分割节点时,算法会通过最小化两个结果数据子集(叶子)的预测误差来选择最佳问题。简单来说,就是要问一些相关的问题,将异质的观察结果划分为尽可能同质的两个较小子集。例如,在“猜猜是谁?”游戏中,“这个人是否有大嘴?”是一个相关问题,因为它可以将四个角色分为两个子组;而“这个人是否穿衣服?”则没有什么意义,因为所有人都穿衣服。

以下是一个使用典型供应链预测数据集说明树如何工作的示例。假设在一个数据集上训练了模型,数据如下:
| 输入(数据特征) | | | | | | | 输出 |
| — | — | — | — | — | — | — | — |
| 品牌 | 需求(Q - 4) | 需求(Q - 3) | 需求(Q - 2) | 需求(Q - 1) | 平均价格 | 价格(Q + 1) | 促销 | 需求 |
| 低成本 | 1500 | 500 | 400 | 300 | 10 | 10 | 无 | 200 |
| 高端 | 500 | 1000 | 750 | 500 | 35 | 30 | -15% | 700 |
| 常规 | 250 | 350 | 150 | 400 | 20 | 20 | -20% | 300 |
| 低成本 | 100 | 110 | 120 | 150 | 8 | 9 | 无 | 120 |
| 低成本 | 50 | 30 | 80 | 10 | 5 | 5 | 无 | 30 |
| 常规 | 200 | 250 | 220 | 240 | 15 | 14 | -10% | 260 |

基于这些特征和学到的潜在关系,树可能会提出以下是/否问题进行预测:
- 是否需求 Q - 1 > 300?(是)
- 是否平均价格 > 20?(否)
- 是否价格 Q + 1 < 25?(否)
- 预测值 = 550

决策树的最初实现是 60 多年前由 Morgan 和 Sonquist 提出的。尽管现在的决策树实现仍然基于是/否问题,但比最初的模型强大得多。现代版本利用数百个(简单的)树来专门预测之前创建的树的错误。简单来说,算法会一个接一个地生成数百棵树,每棵新树会更关注前一棵树预测错误的地方。这种方法被称为提升,最早在 90 年代被提出。最新的实现(轻梯度提升和极端梯度提升)可以实现极快且出色的结果。

机器学习入门:概念、算法与应用解析

6.3 神经网络

神经网络是机器学习中另一个重要的模型类型,它受到人类神经系统的启发而设计。神经网络由大量的神经元(节点)组成,这些神经元按层排列,通常包括输入层、隐藏层和输出层。

输入层接收原始数据特征,例如在预测需求的场景中,可能是产品的历史销售数据、价格、促销活动等信息。隐藏层是神经网络的核心部分,它对输入数据进行复杂的变换和处理。隐藏层可以有多个,每个隐藏层中的神经元会根据输入数据和自身的权重计算输出值。输出层则给出最终的预测结果,比如预测的产品需求量。

神经网络的学习过程就是调整神经元之间的权重,使得模型的预测结果尽可能接近真实值。这个过程通常使用反向传播算法来实现,通过不断地计算预测误差并反向传播误差来更新权重。

神经网络在处理复杂的非线性关系方面表现出色,能够自动学习数据中的模式和规律。例如,在图像识别、语音识别等领域,神经网络已经取得了巨大的成功。在需求预测中,神经网络也可以捕捉到产品需求与各种因素之间的复杂关系,从而提供更准确的预测。

以下是一个简单的神经网络结构示例:

输入层 (Input Layer)
  |
  v
隐藏层 1 (Hidden Layer 1)
  |
  v
隐藏层 2 (Hidden Layer 2)
  |
  v
输出层 (Output Layer)
7. 机器学习在实际应用中的注意事项

在实际应用机器学习进行需求预测等任务时,还需要注意以下几个方面:

7.1 数据质量

数据是机器学习的基础,数据质量直接影响模型的性能。在收集数据时,要确保数据的准确性、完整性和一致性。例如,数据中不能有大量的缺失值或错误值,否则会导致模型学习到错误的模式。

可以采用以下方法来提高数据质量:
- 数据清洗:去除重复数据、处理缺失值和异常值。
- 数据验证:对数据进行交叉验证,确保数据的准确性。
- 数据标准化:将数据进行标准化处理,使得不同特征具有相同的尺度,有助于模型的收敛和学习。

7.2 模型选择

不同的机器学习模型适用于不同的场景和数据特点。在选择模型时,需要考虑数据的规模、复杂度以及问题的类型。例如,对于小规模数据集,简单的统计模型可能就足够了;而对于大规模、复杂的数据集,神经网络或基于树的模型可能更合适。

可以通过以下步骤来选择合适的模型:
1. 了解问题的性质和目标,确定是分类问题还是回归问题。
2. 分析数据的特点,包括数据的规模、维度、分布等。
3. 尝试不同的模型,并使用交叉验证等方法评估模型的性能。
4. 根据评估结果选择性能最优的模型。

7.3 过拟合与欠拟合

过拟合和欠拟合是机器学习中常见的问题。过拟合是指模型在训练数据上表现很好,但在测试数据上表现不佳,这是因为模型过于复杂,学习到了训练数据中的噪声和细节,而无法泛化到新的数据。欠拟合则是指模型过于简单,无法捕捉到数据中的复杂模式,导致在训练数据和测试数据上的表现都不理想。

为了避免过拟合和欠拟合,可以采取以下措施:
- 增加数据量:更多的数据可以帮助模型学习到更普遍的模式,减少过拟合的风险。
- 正则化:在模型训练过程中加入正则化项,限制模型的复杂度,防止过拟合。
- 模型选择:选择合适复杂度的模型,避免使用过于复杂或过于简单的模型。
- 交叉验证:使用交叉验证来评估模型的性能,选择在不同数据集上表现稳定的模型。

8. 总结

机器学习是一个强大的工具,在需求预测等领域有着广泛的应用。通过了解机器学习的基本概念、算法和应用注意事项,可以更好地利用机器学习来解决实际问题。

以下是机器学习相关要点的总结表格:
| 要点 | 内容 |
| — | — |
| 机器学习与统计模型对比 | 机器学习复杂度高、可解释性差但准确性高,统计模型相反 |
| 机器学习方式 | 遍历数据集找特征与输出的潜在关系 |
| 特征工程 | 业务人员参与确定数据特征 |
| 局部模型与全局模型 | 局部模型独立拟合,全局模型学习全局模式 |
| 黑盒与白盒 | 统计模型是白盒可解释,机器学习是黑盒,可通过特征重要性和情景分析了解 |
| 主要算法 | 基于树的模型和神经网络 |
| 实际应用注意事项 | 数据质量、模型选择、过拟合与欠拟合 |

通过不断地学习和实践,我们可以不断提升机器学习的应用能力,为业务决策提供更有力的支持。希望本文能够帮助读者对机器学习有更深入的理解和认识。

mermaid 格式流程图展示机器学习应用流程:

graph LR
    A[数据收集] --> B[数据清洗与预处理]
    B --> C[特征工程]
    C --> D[模型选择与训练]
    D --> E[模型评估]
    E --> F{是否满足要求}
    F -- 是 --> G[应用模型进行预测]
    F -- 否 --> D

这个流程图展示了一个典型的机器学习应用流程,从数据收集开始,经过数据处理、特征工程、模型训练和评估,最终应用模型进行预测。如果模型评估结果不满足要求,则需要返回重新选择模型或调整参数进行训练。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值