第2讲:数据科学的基本方法
数据科学的主要方法
一、导入:为什么要学习数据科学的方法
在前面我们已经讨论过,数据科学不仅是一门研究数据的学科,更是一门面向现实问题解决的交叉学科。那么,数据科学究竟依靠什么方法来解决问题?从整体上看,数据科学的方法体系主要建立在两大基础之上:一类是统计学方法,另一类是机器学习方法。前者更强调规律发现、推断解释与模型建构,后者更强调从数据中自动学习模式并进行预测。二者并不是彼此割裂的,而是在现代数据科学中相互融合、相互支撑。
二、数据科学方法的整体框架
从方法分类来看,数据科学的方法主要可以分为以下几类:
- 监督学习(Supervised Learning)
- 无监督学习(Unsupervised Learning)
- 半监督学习(Semi-supervised Learning)
- 强化学习(Reinforcement Learning)
这几类方法构成了现代数据科学建模与分析的基本框架。其中,监督学习和无监督学习最为常见,半监督学习适用于”少量标注、大量未标注”的现实场景,而强化学习则更多用于序列决策与动态优化问题。
三、监督学习:从已知样本中学习规律
1. 什么是监督学习
监督学习是指:在训练数据中,输入变量和输出变量都是已知的,我们利用这类”有答案”的样本去学习一个映射关系,从而对未来未知样本进行预测。换句话说,监督学习的核心任务就是:已知输入和输出,学习输入到输出之间的函数关系。
在监督学习中,通常会涉及几个基本概念:
- 实例(Instance):一个具体观测对象
- 特征向量(Feature Vector):描述实例的多个变量
- 特征空间(Feature Space):所有特征向量组成的空间
- 训练集(Training Set):用于学习模型的数据集合
监督学习的目标,是在某个假设空间中找到一个最优模型。这个模型既可以写成决策函数 Y=f(X),也可以写成条件概率分布 P(Y|X)。
2. 监督学习的典型任务
监督学习主要包括三类典型问题:
(1)回归问题
当输出变量是连续数值时,我们面对的是回归问题。例如,根据房屋面积、地段、楼层等变量预测房价;根据家庭收入预测消费支出。这类问题的重点在于刻画变量之间的数量关系,并利用模型进行数值预测。
(2)分类问题
当输出变量是离散类别时,我们面对的是分类问题。例如,判断一个客户是否违约,判断一封邮件是否为垃圾邮件,判断一位员工是否会离职。分类问题中常用的评价指标包括:
- 精确率(Precision)
- 召回率(Recall)
- F1 值(F1-score)
- 混淆矩阵(Confusion Matrix)
其中,混淆矩阵中的四个基本量分别是 TP、FP、FN、TN,这些指标共同帮助我们评估分类器的实际效果。
(3)标注问题
标注问题也叫结构预测问题,它的输入往往是一个序列,输出也是一个序列。例如在自然语言处理中,对一句话中的每个词进行词性标注、命名实体识别等。它比普通分类问题更复杂,因为输出之间往往具有结构关系。
四、无监督学习:在没有标签的情况下发现结构
与监督学习不同,无监督学习面对的数据通常只有输入变量,没有现成的输出标签。此时,研究者无法直接告诉模型”正确答案是什么”,而是希望模型自己从数据中发现潜在结构、相似关系或隐藏模式。
无监督学习常见的任务包括:
- 聚类分析:把相似对象自动分成若干组
- 降维分析:把高维变量压缩为较少的综合变量
- 关联规则分析:发现变量之间的共现关系
- 主题发现:从文本中自动提取主题结构
无监督学习特别适合探索性分析。当我们对数据结构并不清楚时,它往往可以帮助我们先”看清数据”,再进入下一步建模。
五、半监督学习:利用少量标注数据和大量未标注数据
在现实问题中,完全标注的数据往往难以获取。很多时候,我们只能得到少量”有标签”的样本,而大量样本只有输入信息,没有输出标签。例如在信用评分中,一部分客户已经发放贷款,因此知道是否违约;而另一部分客户尚未发放贷款,所以无法知道其最终违约情况。
这种情况下,如果只使用已标注样本,可能浪费大量信息;如果能把未标注样本的信息也利用起来,就形成了半监督学习。它的基本思想是:
- 使用少量标注数据提供学习方向
- 使用大量未标注数据补充数据分布信息
- 在较低标注成本下提升模型性能
因此,半监督学习特别适合那些”标签昂贵、数据便宜”的应用场景。
六、强化学习:在动态环境中学习最优决策
强化学习研究的是”智能体如何在环境中不断试错并获得最优策略”的问题。它特别适用于动态决策、序列控制与长期收益优化问题。
强化学习的核心要素包括:
- 状态(State):当前环境所处的情况
- 动作(Action):在某个状态下可以采取的行为
- 奖励(Reward):采取动作后获得的反馈
- 策略(Policy):给定状态下如何选择动作的规则
- 状态价值函数与动作价值函数:衡量长期收益的函数
从求解方式来看,强化学习可以分为:
- 无模型方法(Model-free)
- 有模型方法(Model-based)
- 基于策略的方法(Policy-based)
- 基于价值的方法(Value-based)
强化学习的典型应用包括自动驾驶、机器人控制、游戏智能体、推荐系统动态优化等。
七、机器学习:现代数据科学的重要支柱
机器学习是近几十年来迅速发展起来的一门交叉学科,它涉及概率论、统计学、逼近论、凸分析、算法复杂度等多个领域。简单来说,机器学习研究的是:如何让计算机利用数据和经验自动改进算法性能。
机器学习之所以重要,是因为它能够:
- 从海量数据中自动提取规律
- 对未知样本进行预测
- 在复杂场景中实现模式识别与智能决策
机器学习已广泛应用于:
- 数据挖掘
- 计算机视觉
- 自然语言处理
- 医学诊断
- 金融风控
- 搜索引擎
- 证券分析
- 欺诈检测
- 语音识别
- 新闻生成
- 智能推荐等领域
八、机器学习的发展历程
机器学习的发展并不是一蹴而就的。早在 1943 年,Warren McCulloch 和 Walter Pitts 就提出了人工神经网络模型,被视为人工智能的重要开端。1956 年达特茅斯会议则标志着人工智能学科的正式诞生。此后,机器学习经历了多个发展阶段,从早期神经网络,到统计学习,再到近年来的深度学习浪潮。
在新的发展方向上,机器学习还不断拓展出多个重要分支,例如:
- 集成学习
- 可扩展机器学习
- 强化学习
- 迁移学习
- 概率网络
- 深度学习
这些方向共同推动了机器学习在理论和应用上的快速演进。
九、机器学习与数据挖掘的关系
机器学习和数据挖掘关系密切,但二者并不完全相同。
一方面,机器学习是数据挖掘的重要工具。数据挖掘在发现海量数据中的知识时,大量依赖机器学习提供的方法支持。另一方面,数据挖掘并不仅仅等于机器学习,它还涉及数据库管理、大规模存储、数据清洗、噪声处理、计算效率等更实际的问题。
可以说:
- 机器学习更关注”如何从数据中学习”
- 数据挖掘更关注”如何从海量数据中提取有价值的知识”
因此,数据挖掘可以看作机器学习与数据库技术的交叉领域。
十、统计学习与机器学习:联系与差异
统计学习和机器学习在很多场景下高度重叠,但二者在研究风格和关注重点上也存在差异。
1. 联系
二者都以数据为研究对象,都希望通过模型从数据中提取规律,并对未知数据进行预测或解释。因此,很多机器学习方法本质上都有统计学基础,这也是”统计学习”这一名称的重要来源。
2. 差异
从研究方法上看:
- 统计学更强调形式化建模、理论推导和可解释性
- 机器学习更强调预测性能、算法实现和复杂场景适应性
从研究对象上看:
- 统计学更关注低维问题、置信区间、假设检验、最优估计等
- 机器学习更关注高维预测、在线学习、半监督学习、流形学习、主动学习、Boosting 等问题
从术语上看,两者也有很多对应关系,例如:
- Estimation 对应 Learning
- Covariate 对应 Feature
- Response 对应 Label
- Classifier 对应 Hypothesis
因此,我们既不能把机器学习简单等同于统计学,也不能把两者对立起来。更准确地说,现代数据科学正是在二者融合中不断发展。
十一、统计学习的基本框架
统计学习可以概括为”三要素”:
1. 模型
模型是输入到输出关系的形式化表达。它可以是一个决策函数,也可以是一个条件概率分布。模型的本质,是在某个假设空间中寻找最优函数。
2. 策略
策略讨论的是”如何判定一个模型好不好”。这通常通过损失函数与风险函数来衡量。常见损失函数包括:
- 0-1 损失函数
- 平方损失函数
- 绝对损失函数
- 对数损失函数
进一步地,平均意义下模型预测好坏可以通过风险函数衡量,而在样本上的损失则形成经验风险。
3. 算法
算法讨论的是”怎样求出最优模型”。如果最优化问题有解析解,求解相对简单;若没有解析解,则需要依赖数值优化方法。
十二、模型评估与模型选择
在建模过程中,不能只关心训练误差,更要关注测试误差与泛化能力。一个模型如果在训练集上表现很好,但在新数据上效果很差,就发生了过拟合。
因此,模型评估与选择非常重要。常见方法包括:
- 训练集、验证集、测试集划分
- 简单交叉验证
- S 折交叉验证
- 留一交叉验证
- 正则化方法
其中,正则化的本质是通过加入罚项抑制模型复杂度,从而降低过拟合风险;交叉验证则通过重复划分样本来提高模型评估的稳定性。
十三、生成模型与判别模型
在监督学习中,还可以从建模思想上把方法分为两大类:
1. 生成模型
生成模型研究联合分布 P(X,Y),再由此推导条件分布 P(Y|X)。典型方法包括:
- 朴素贝叶斯
- 隐马尔可夫模型
生成模型的优点是能够恢复联合分布,在样本较少或存在隐变量时有一定优势。
2. 判别模型
判别模型直接学习 Y=f(X) 或 P(Y|X),重点在于预测准确性。典型方法包括:
- K 近邻
- 感知机
- 决策树
- Logistic 回归
- 支持向量机
- 提升方法
- 条件随机场
相较于生成模型,判别模型通常更直接、更关注分类或预测效果。
十四、数据科学常用编程语言:R 与 Python
现代数据科学离不开编程工具,其中最具代表性的两种语言就是 R 和 Python。
1. R 语言
R 语言起源于 S 语言,是一个免费开源、面向统计分析和绘图的编程语言。它的主要优势在于:
- 数据处理与统计分析能力强
- 矩阵运算和建模功能完善
- 可视化功能出色
- 拥有大量扩展包
- 新方法更新速度快
- 与学术研究结合紧密
R 特别适合统计推断、模型分析、科研绘图和动态报告生成。对于从事统计分析和科研工作的同学来说,R 是非常重要的工具。
2. Python 语言
Python 是一种解释型、面向对象、高级通用编程语言。它在数据分析和人工智能领域应用极其广泛,其主要优势包括:
- 可读性强,容易上手
- 灵活性高,适合快速开发
- 可与 Web、数据库、API 等系统整合
- 在机器学习、爬虫、自动化等方面非常强大
Python 的生态系统丰富,常用环境包括:
- Anaconda
- Jupyter Notebook
- PyCharm
- Spyder
- IPython
总体来看,R 更偏统计分析与学术研究,Python 更偏工程实现与综合开发,两者在数据科学中都具有重要地位。
十五、总结
从整体上看,数据科学的方法体系并不是零散的工具拼接,而是一个层次清晰、逻辑完整的方法框架。它既包括监督学习、无监督学习、半监督学习和强化学习等核心范式,也包括统计学习、机器学习、数据挖掘等重要方法传统。
如果用一句话来概括本章内容,那么可以这样说:
数据科学的方法,本质上就是围绕数据建模、规律发现、预测决策和问题解决所形成的一整套统计与计算方法体系。
对于我们学习者来说,不仅要知道这些方法”叫什么”,更要理解它们”解决什么问题”“适用于什么场景”“背后的逻辑是什么”。只有这样,方法学习才不会停留在工具层面,而会真正转化为分析问题和解决问题的能力。
