Scikit-learn 中文教程

第二部分:Scikit-learn 核心基础
第 3 章 Scikit-learn 核心设计与 API 体系
第 4 章 数据集模块与数据划分
第三部分:数据预处理与特征工程
第 5 章 数据预处理核心模块(sklearn.preprocessing)
第 6 章 特征工程:提取、选择与构建
第四部分:模型评估与验证
第 7 章 模型评估指标(按任务类型划分)
第 8 章 模型验证与超参数调优
第五部分:Scikit-learn 核心算法模块
第 9 章 有监督学习:分类算法
第 10 章 有监督学习:回归算法
第 11 章 无监督学习:聚类与密度算法
第 12 章 半监督学习与其他常用算法
第八部分:性能优化与问题解决
第 18 章 Scikit-learn 性能优化
第 19 章 Scikit-learn 常见问题与解决方案

1.3 机器学习基础前置回顾

机器学习基础回顾:三大类型与核心概念 | Scikit-learn教程

Scikit-learn 中文教程

本章节回顾机器学习基础知识,涵盖监督学习、无监督学习和半监督学习三大类型,解释模型泛化能力、过拟合、欠拟合等关键概念,并详细定义特征、标签、训练集和测试集,帮助初学者轻松入门并打好基础。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

机器学习基础前置回顾

欢迎来到Scikit-learn教程的机器学习基础章节!如果你是新手,别担心——本章将用简单易懂的方式回顾核心概念,为你后续深入学习Scikit-learn库打下坚实基础。机器学习看似复杂,但理解这些基础元素后,你将能轻松驾驭各种算法。

机器学习三大类型

机器学习可以根据数据标签的有无分为三大类型:监督学习、无监督学习和半监督学习。让我们一一探索。

1. 监督学习

定义:监督学习使用带有标签的数据进行训练,目标是学习从输入特征到输出标签的映射关系。简单说,就是教模型根据已有答案做预测。

例子

  • 分类:预测电子邮件是否为垃圾邮件(标签是“垃圾”或“非垃圾”)。
  • 回归:根据房屋面积和位置预测房价(标签是连续数值)。

在Scikit-learn中的代表算法:线性回归、决策树、支持向量机等。

2. 无监督学习

定义:无监督学习使用没有标签的数据,目标是发现数据中的隐藏结构或模式。这里没有正确答案,模型需要自己探索。

例子

  • 聚类:将顾客分组到不同的细分市场(如按购买行为)。
  • 降维:压缩图像数据以节省存储空间,同时保留关键信息。

在Scikit-learn中的代表算法:K均值聚类、主成分分析(PCA)。

3. 半监督学习

定义:半监督学习结合了少量有标签数据和大量无标签数据,以改善模型性能。这在现实世界中很常见,因为获取标签数据往往成本高昂。

例子:使用少量标记图像和大量未标记图像来训练图像分类模型。

在Scikit-learn中的应用:虽然Scikit-learn直接支持较少,但可以通过自训练或标签传播算法实现。

模型泛化能力、过拟合与欠拟合

理解这些概念能帮助你评估和改进模型表现。

泛化能力

定义:模型对未见过的数据做出准确预测的能力。理想情况下,模型应能泛化到新数据,而不仅仅是记住训练数据。

为什么重要:机器学习的最终目标是应用在现实场景中,泛化能力强的模型更可靠。

过拟合

定义:模型在训练数据上表现太好,但在测试数据上表现差。这通常是因为模型过于复杂,捕捉了数据中的噪声或细节。

例子:用高次多项式拟合数据点,导致曲线完美穿过所有训练点,但对新点预测不准。

如何避免:使用正则化、交叉验证或简化模型。

欠拟合

定义:模型在训练数据上表现不佳,无法捕捉数据的基本模式。这通常是因为模型太简单。

例子:用直线拟合非线性数据,导致预测误差大。

如何改进:增加模型复杂度、添加更多特征或使用更强大的算法。

核心定义:特征、标签、训练集与测试集

这些是构建机器学习项目的基础元素,理解它们至关重要。

特征

定义:特征(或输入变量)是描述数据的属性或维度。例如,在房价预测中,特征可能包括面积、卧室数量、地理位置等。

在Scikit-learn中:通常表示为二维数组(如Pandas DataFrame),每行是样本,每列是特征。

标签

定义:标签(或目标变量)是我们想要预测的输出。在监督学习中,标签是已知的;在无监督学习中,没有标签。

例子:对于垃圾邮件分类,标签是“垃圾”或“非垃圾”;对于聚类,标签是未定义的集群。

在Scikit-learn中:标签通常表示为一维数组(如列表或Series)。

训练集

定义:训练集是用于训练模型的数据部分。模型从这些数据中学习模式和关系。

如何划分:通常从总数据集中抽取70-80%作为训练集。

例子:如果数据集有1000个样本,可能用800个作为训练集来拟合模型。

测试集

定义:测试集是用于评估模型性能的数据部分,这些数据在训练过程中未见。

为什么重要:测试集帮助衡量模型的泛化能力,防止过拟合。

如何划分:剩余的20-30%数据作为测试集。在Scikit-learn中,常用train_test_split函数进行划分。

总结与后续步骤

掌握这些基础概念后,你将能更好地理解Scikit-learn库中的各种算法和工具。机器学习之旅就像搭积木——打好基础是关键。在后续章节中,我们将结合Scikit-learn代码,实际应用这些概念,从数据预处理到模型训练和评估。

小贴士:始终记住——优秀的机器学习项目始于清晰的问题定义、干净的数据和扎实的理论基础。现在,准备好进入Scikit-learn的实战世界吧!

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包