You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/zh/1-Introduction/4-techniques-of-ML/README.md

132 lines
10 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "dc4575225da159f2b06706e103ddba2a",
"translation_date": "2025-09-03T17:43:23+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "zh"
}
-->
# 机器学习技术
构建、使用和维护机器学习模型及其所需数据的过程与许多其他开发工作流有很大的不同。在本课中,我们将揭开这一过程的神秘面纱,并概述您需要了解的主要技术。您将:
- 从高层次理解机器学习的基本流程。
- 探索诸如“模型”、“预测”和“训练数据”等基本概念。
## [课前测验](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/7/)
[![机器学习入门 - 机器学习技术](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "机器学习入门 - 机器学习技术")
> 🎥 点击上方图片观看本课的简短视频。
## 简介
从高层次来看创建机器学习ML流程的过程包括以下几个步骤
1. **确定问题**。大多数机器学习流程从提出一个无法通过简单条件程序或基于规则的引擎回答的问题开始。这些问题通常围绕基于数据集合的预测展开。
2. **收集和准备数据**。为了回答您的问题,您需要数据。数据的质量以及有时数据的数量将决定您能多好地回答最初的问题。可视化数据是这一阶段的重要方面。这一阶段还包括将数据分为训练组和测试组以构建模型。
3. **选择训练方法**。根据您的问题和数据的性质,您需要选择如何训练模型以最好地反映数据并对其进行准确预测。这是机器学习流程中需要特定专业知识并且通常需要大量实验的部分。
4. **训练模型**。使用您的训练数据,您将使用各种算法训练模型以识别数据中的模式。模型可能利用内部权重,这些权重可以调整以优先考虑数据的某些部分,从而构建更好的模型。
5. **评估模型**。使用从收集的数据集中从未见过的测试数据来查看模型的表现。
6. **参数调整**。根据模型的表现,您可以使用不同的参数或变量重新进行流程,这些参数或变量控制用于训练模型的算法的行为。
7. **预测**。使用新的输入测试模型的准确性。
## 提出问题
计算机特别擅长发现数据中的隐藏模式。这种能力对研究人员来说非常有用,他们对某个领域有问题,而这些问题无法通过创建基于条件的规则引擎轻松回答。例如,面对一个精算任务,数据科学家可能能够围绕吸烟者与非吸烟者的死亡率构建手工规则。
然而,当许多其他变量被纳入方程时,机器学习模型可能更有效地根据过去的健康历史预测未来的死亡率。一个更令人愉快的例子可能是根据包括纬度、经度、气候变化、靠近海洋、喷流模式等数据预测某地四月份的天气。
✅ 这份关于天气模型的[幻灯片](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf)提供了使用机器学习进行天气分析的历史视角。
## 构建前的任务
在开始构建模型之前,您需要完成几个任务。为了测试您的问题并根据模型的预测形成假设,您需要识别和配置几个元素。
### 数据
为了能够以任何确定性回答您的问题,您需要足够数量的正确类型数据。在这一点上,您需要做两件事:
- **收集数据**。牢记上一课关于数据分析公平性的内容,谨慎收集数据。注意数据的来源、可能存在的任何固有偏差,并记录其来源。
- **准备数据**。数据准备过程包括几个步骤。如果数据来自不同来源,您可能需要整理数据并对其进行标准化。您可以通过各种方法提高数据的质量和数量,例如将字符串转换为数字(如我们在[聚类](../../5-Clustering/1-Visualize/README.md)中所做的)。您还可以基于原始数据生成新数据(如我们在[分类](../../4-Classification/1-Introduction/README.md)中所做的)。您可以清理和编辑数据(如我们在[Web应用](../../3-Web-App/README.md)课程之前所做的)。最后,根据您的训练技术,您可能还需要对数据进行随机化和打乱。
✅ 在收集和处理数据后,花点时间看看数据的形状是否能让您解决预期问题。可能数据在您的任务中表现不佳,正如我们在[聚类](../../5-Clustering/1-Visualize/README.md)课程中发现的那样!
### 特征和目标
[特征](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection)是数据的可测量属性。在许多数据集中,它通常以列标题的形式表示,例如“日期”、“大小”或“颜色”。特征变量通常在代码中表示为`X`,代表用于训练模型的输入变量。
目标是您试图预测的内容。目标通常在代码中表示为`y`,代表您试图从数据中提出的问题的答案:在十二月,什么**颜色**的南瓜最便宜?在旧金山,哪些社区的房地产**价格**最好?有时目标也被称为标签属性。
### 选择特征变量
🎓 **特征选择与特征提取** 如何在构建模型时选择变量?您可能会经历一个特征选择或特征提取的过程,以选择最适合构建高性能模型的变量。然而,它们并不完全相同:“特征提取通过原始特征的函数创建新特征,而特征选择返回特征的子集。”([来源](https://wikipedia.org/wiki/Feature_selection)
### 可视化数据
数据科学家工具包的重要组成部分是使用诸如Seaborn或MatPlotLib等优秀库来可视化数据的能力。以可视化方式表示数据可能会让您发现可以利用的隐藏相关性。您的可视化还可能帮助您发现偏差或数据不平衡正如我们在[分类](../../4-Classification/2-Classifiers-1/README.md)中发现的那样)。
### 划分数据集
在训练之前,您需要将数据集分为两个或多个不等大小的部分,同时仍然很好地代表数据。
- **训练集**。数据集的这一部分用于训练模型。这部分数据集占原始数据集的大多数。
- **测试集**。测试数据集是一个独立的数据组,通常从原始数据中收集,用于确认构建模型的性能。
- **验证集**。验证集是一个较小的独立数据组,用于调整模型的超参数或架构以改进模型。根据数据的大小和您提出的问题,您可能不需要构建这个第三组(正如我们在[时间序列预测](../../7-TimeSeries/1-Introduction/README.md)中提到的那样)。
## 构建模型
使用您的训练数据,您的目标是使用各种算法**训练**模型,或对数据进行统计表示。训练模型使其接触数据,并让其对发现的模式进行假设、验证并接受或拒绝。
### 决定训练方法
根据您的问题和数据的性质,您将选择一种方法来训练模型。浏览[Scikit-learn的文档](https://scikit-learn.org/stable/user_guide.html)——我们在本课程中使用它——您可以探索许多训练模型的方法。根据您的经验,您可能需要尝试几种不同的方法以构建最佳模型。您可能会经历一个过程,数据科学家通过向模型提供未见过的数据来评估其性能,检查准确性、偏差和其他质量下降问题,并选择最适合当前任务的训练方法。
### 训练模型
有了训练数据您就可以“拟合”它以创建模型。您会注意到在许多机器学习库中您会看到代码“model.fit”——此时您将特征变量作为值数组通常为“X”和目标变量通常为“y”发送进去。
### 评估模型
一旦训练过程完成对于大型模型可能需要多次迭代或“epoch”您将能够使用测试数据评估模型的质量以衡量其性能。这些数据是模型之前未分析过的原始数据的子集。您可以打印出关于模型质量的指标表。
🎓 **模型拟合**
在机器学习的背景下,模型拟合指的是模型的底层函数在尝试分析其不熟悉的数据时的准确性。
🎓 **欠拟合**和**过拟合**是常见问题,会降低模型质量,因为模型要么拟合得不够好,要么拟合得太好。这会导致模型对训练数据的预测过于紧密或过于松散。过拟合模型预测训练数据过于准确,因为它过于详细地学习了数据的细节和噪声。欠拟合模型不够准确,因为它既不能准确分析训练数据,也不能分析它尚未“见过”的数据。
![过拟合模型](../../../../translated_images/overfitting.1c132d92bfd93cb63240baf63ebdf82c30e30a0a44e1ad49861b82ff600c2b5c.zh.png)
> 信息图由[Jen Looper](https://twitter.com/jenlooper)制作
## 参数调整
完成初始训练后,观察模型的质量,并考虑通过调整其“超参数”来改进它。阅读更多关于该过程的内容[在文档中](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott)。
## 预测
这是您可以使用全新数据测试模型准确性的时刻。在“应用”机器学习场景中,您正在构建网络资产以在生产中使用模型,这一过程可能涉及收集用户输入(例如按钮点击)以设置变量并将其发送到模型进行推断或评估。
在这些课程中,您将学习如何使用这些步骤来准备、构建、测试、评估和预测——所有数据科学家的动作以及更多内容,随着您的学习进展,您将成为“全栈”机器学习工程师。
---
## 🚀挑战
绘制一个反映机器学习实践者步骤的流程图。您认为自己目前处于流程中的哪个位置?您预测会在哪些方面遇到困难?哪些方面对您来说似乎很容易?
## [课后测验](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/8/)
## 复习与自学
在线搜索数据科学家讨论其日常工作的访谈。这里有一个[访谈](https://www.youtube.com/watch?v=Z3IjgbbCEfs)。
## 作业
[采访一位数据科学家](assignment.md)
---
**免责声明**
本文档使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。