机器学习基础学习资料:分类、回归与聚类算法
一、机器学习概述
机器学习是人工智能的重要分支,它研究的是如何让计算机通过数据自动发现规律,并利用这些规律进行预测、判断或决策。传统编程往往是"程序员写规则,计算机执行规则",而机器学习更像是"给计算机大量样本,让它自己总结规则"。因此,机器学习特别适合处理那些规则复杂、难以手工穷举的问题,例如垃圾邮件识别、房价预测、用户分群、商品推荐等。
从学习方式来看,机器学习通常分为监督学习、无监督学习、半监督学习和强化学习。其中,监督学习和无监督学习是入门阶段最核心的内容。监督学习的数据带有明确标签,例如一张图片标注"猫"或"狗",一套房子的特征对应一个房价。无监督学习的数据没有标签,目标是让模型在数据中自行发现结构与模式,比如把相似用户分成不同群体。
分类和回归都属于监督学习。它们的区别在于输出目标不同:分类预测的是离散类别,如"是/否""好/坏""高风险/低风险";回归预测的是连续数值,如温度、销量、房价、利润等。聚类则属于无监督学习,它不依赖人工标签,而是根据数据之间的相似度自动形成若干组。
理解机器学习,首先要理解一个基本流程。通常包括:明确任务目标、收集和清洗数据、特征工程、选择模型、划分训练集与测试集、模型训练、性能评估、调参与优化、上线部署以及后续监控。真正的机器学习工作并不是单纯"套一个算法",而是围绕数据和业务目标开展的一整套系统工程。
在学习机器学习的过程中,很多初学者会把注意力全部放在算法公式上。但实际上,算法只是整个流程的一部分。数据质量、特征表达方式、评估指标是否合理、是否存在过拟合或欠拟合、模型是否具有可解释性、是否适合业务场景,这些因素往往比"用了哪一个高深算法"更重要。
二、机器学习中的几个核心概念
1. 样本、特征与标签
样本是数据中的一个个体,比如一个用户、一张图片、一条交易记录、一套房子。特征是描述样本的属性,例如房子的面积、地段、楼层、装修程度。标签是监督学习中需要预测的目标,比如房价、疾病类别、用户是否流失。
可以把机器学习理解成建立一个映射关系:输入特征,输出结果。模型本质上就是在学习这个映射函数。
2. 训练集、验证集、测试集
训练集用于让模型学习规律;验证集用于调整参数、比较模型优劣;测试集用于评估模型在新数据上的真实表现。若模型在训练集上效果很好,但在测试集上效果很差,就说明模型泛化能力不足。
3. 过拟合与欠拟合
欠拟合指模型太简单,连训练数据的规律都没有学好;过拟合指模型过于复杂,把训练数据中的噪声也当成规律记住了,导致在新数据上表现差。机器学习中最重要的目标之一,就是在"拟合能力"和"泛化能力"之间找到平衡。
4. 特征工程
特征工程是把原始数据转化为更适合模型学习的形式。它包括数据清洗、缺失值处理、异常值处理、归一化、标准化、类别编码、特征选择、特征构造等。很多时候,好的特征比复杂模型更重要。
5. 损失函数与优化
损失函数用来衡量模型预测结果与真实结果之间的差异。训练模型的过程,本质上就是通过某种优化方法不断调整参数,让损失函数尽可能小。常见优化方法有梯度下降、随机梯度下降等。
三、分类算法基础
分类问题是机器学习最常见的任务之一。它的目标是把样本划分到某个预定义类别中。比如根据邮件内容判断是否垃圾邮件,根据用户行为判断是否会流失,根据医学指标判断患者是否患病。
分类问题可以分为二分类和多分类。二分类只有两个类别,如"正类"和"负类";多分类则有多个类别,如识别手写数字0到9。
分类任务的关键不仅在于"分对",还在于"如何衡量分得好不好"。例如在医疗诊断中,把病人错判为健康人,后果往往比把健康人错判为病人更严重,因此不能只看整体准确率。
下面介绍几种经典分类算法。
四、逻辑回归
虽然名字中带"回归",但逻辑回归本质上是一个经典的分类算法,尤其常用于二分类任务。它的基本思想是:先对输入特征进行线性组合,再通过一个Sigmoid函数把结果压缩到0到1之间,这个值可以理解为样本属于某个类别的概率。
例如,模型预测某用户流失的概率是0.82,如果我们设置阈值为0.5,那么就判定其会流失。逻辑回归最大的优点是简单、高效、可解释性强。它能清楚地反映特征对结果的影响方向和程度,因此在金融风控、医学统计、用户分析等领域应用广泛。
逻辑回归适合处理线性可分或近似线性可分的问题。当数据关系较复杂时,它的表现可能不如非线性模型。但如果配合特征变换,比如加入交叉项、多项式项,逻辑回归也能处理一定程度的非线性问题。
逻辑回归的优点是训练速度快、输出概率、结果易解释、对中小规模数据表现稳定。缺点是表达能力有限,对特征工程依赖较强,对于高度复杂的边界不够灵活。
五、K近邻算法
K近邻算法是一种非常直观的分类方法。它的思想很简单:如果一个样本周围大多数邻居属于某一类,那么它大概率也属于这一类。具体来说,先计算待分类样本与训练集中所有样本的距离,再选出距离最近的K个邻居,通过多数投票决定类别。
例如,要判断一条新记录是"正常用户"还是"异常用户",可以看它周围最近的几个历史样本分别属于哪类。如果其中大多数是异常用户,那么新记录也可能异常。
K近邻不需要显式训练过程,因此常被称为"惰性学习"。它的优点是简单、直观、易实现,对数据分布没有强假设。缺点是预测时计算量大,对特征尺度敏感,对高维数据效果较差。因为在高维空间中,样本之间的距离差异会变得不明显,导致"近邻"概念失效,这就是所谓的维度灾难。
K值的选择很重要。K太小容易受噪声影响,K太大又会导致边界过于平滑。通常需要通过交叉验证来寻找合适的K。
六、决策树
决策树是一种树形结构模型,通过一系列"如果......那么......"的规则对数据进行划分。例如,先按年龄划分,再按收入划分,最后得出是否购买某产品的结论。它非常符合人类的思维习惯,因此可解释性很强。
决策树构建的核心,是选择一个最优特征进行当前节点的划分。常见的划分标准有信息增益、信息增益率和基尼指数。它们的共同目标是:让划分后的子集尽可能"纯",也就是同类样本尽量集中在一起。
决策树的优点很多。它不要求特征归一化,可以处理数值型和类别型数据,对缺失值和异常值也有一定容忍度。同时,模型结构清晰,容易可视化,便于解释给业务人员。
但决策树也容易过拟合,尤其是树长得过深时,会把训练数据记得过于细致。为了解决这一问题,通常会进行剪枝,限制树的深度、叶子节点最少样本数等。
七、随机森林
随机森林是基于决策树的集成学习算法。它的核心思想不是只训练一棵树,而是训练很多棵树,然后让这些树共同投票决定结果。由于每棵树使用的数据子集和特征子集都不同,因此各棵树之间存在差异,最终集成后往往比单棵树更稳定、更准确。
随机森林利用了"多个弱相关模型集成后能获得更强泛化能力"的思想。它能有效降低单棵决策树的过拟合风险,同时保留决策树对非线性关系的良好处理能力。
随机森林的优点是精度高、鲁棒性强、不容易过拟合、能处理高维数据,还可以评估特征重要性。它在很多结构化数据任务中都是非常强的基线模型。缺点是可解释性弱于单棵树,模型体积较大,预测速度相对较慢。
在工业界,随机森林常被用作一个"先试试的稳妥模型"。如果数据规模适中、特征较多、关系复杂,随机森林通常能给出不错的结果。
八、支持向量机
支持向量机是一种经典且理论基础很强的分类算法。它的核心思想是:在样本空间中寻找一个最优超平面,使得不同类别之间的间隔最大。这个"间隔最大化"的思想让模型在分类时具有较好的泛化能力。
如果数据本身线性可分,那么支持向量机可以直接找到分隔超平面;如果线性不可分,可以借助核函数把数据映射到更高维空间,再在高维空间中实现线性分隔。常见核函数有线性核、多项式核和径向基核。
支持向量机特别适合中小规模、高维数据的分类任务,例如文本分类、图像识别中的某些场景。它对异常值有一定敏感性,参数选择也比较关键,例如惩罚系数和核函数参数都会显著影响效果。
支持向量机的优点是理论成熟、适合高维、小样本、分类边界清晰的任务。缺点是训练速度在大数据集上较慢,参数调节较麻烦,输出结果不如逻辑回归那样天然具有概率解释。
九、朴素贝叶斯
朴素贝叶斯是一类基于贝叶斯定理的分类方法。它之所以叫"朴素",是因为它做了一个较强的假设:在给定类别的条件下,各个特征之间相互独立。现实中这个假设通常并不完全成立,但在许多任务上,朴素贝叶斯依然表现良好。
朴素贝叶斯在文本分类中尤其常见,例如垃圾邮件检测、新闻分类、情感分析等。因为在词袋模型中,把词看成近似独立的特征,能获得较为实用的结果。
朴素贝叶斯的优点是训练和预测都非常快,对小样本数据友好,对缺失数据和高维稀疏数据有一定优势。缺点是独立性假设过于理想化,当特征间相关性很强时,表现可能受限。
它适合作为入门阶段理解概率分类思想的典型模型,也适合作为某些自然语言处理任务的基础模型。
十、分类模型的评估指标
分类模型不能只看准确率。尤其当数据类别分布不均衡时,准确率可能具有误导性。比如在一个1000条样本中,950条为正常,50条为异常,如果模型把所有样本都预测成正常,准确率也有95%,但显然毫无实际价值。
因此,分类常用以下评估指标:
准确率表示预测正确的样本占总样本的比例。它适合类别相对平衡的情况。
精确率表示预测为正类的样本中,真正为正类的比例。它关注"查得准不准"。
召回率表示所有真正正类中,被模型找出来的比例。它关注"漏得多不多"。
F1值是精确率和召回率的调和平均数,适合在两者之间求平衡。
ROC曲线和AUC值用于衡量模型在不同阈值下的整体区分能力。AUC越大,说明模型对正负样本的排序能力越强。
在不同业务中,指标选择不同。金融欺诈检测更关注召回率,因为漏报高风险交易代价大;广告点击预测可能更关注精确率,因为误报会浪费成本。理解业务目标,比机械套用指标更重要。
十一、回归算法基础
回归问题的目标是预测一个连续数值。比如预测房价、销量、气温、股票波动区间、广告转化额等。与分类的"分到哪一类"不同,回归关注"具体数值是多少"。
回归任务的难点在于,现实世界中的数值通常会受到多种因素共同影响,而且这些因素之间可能存在线性关系、非线性关系、交互关系甚至时序依赖。因此,选择适合的模型和合适的特征表达尤为关键。
十二、线性回归
线性回归是最基础的回归算法之一。它假设目标变量与输入特征之间满足线性关系,即输出可以表示为特征的加权和再加一个偏置项。模型训练的目标,是找到一组最优参数,使预测值与真实值之间的误差最小。
线性回归的优点是结构简单、训练高效、结果易解释。比如在房价预测中,某一特征的系数为正,说明该特征增加时房价倾向上升;系数绝对值越大,说明影响越显著。
线性回归最常用的损失函数是均方误差,即让预测值与真实值的差平方后求平均。由于平方会放大大误差,因此模型会更加重视偏差较大的样本。
如果数据关系本身不是线性的,单纯的线性回归效果会有限。但通过对特征做变换,例如加入平方项、对数项、交叉项,线性回归也能处理更复杂的情况。
十三、多项式回归与正则化回归
多项式回归并不是一种完全不同的模型,而是在线性回归的基础上引入特征的高次项,从而拟合非线性关系。例如目标与特征之间呈抛物线关系时,可以加入二次项。
然而,特征维度增多或高次项增多后,模型更容易过拟合。因此会引入正则化思想。
L1正则化对应Lasso回归,它会促使部分特征系数变为零,因此具有特征选择的效果。
L2正则化对应Ridge回归,它会让系数整体变小,从而抑制模型过于复杂。
Elastic Net则结合了L1和L2的优点。
正则化的本质是在拟合数据和控制模型复杂度之间建立平衡。它是机器学习中非常重要的思想,不仅用于回归,也广泛用于分类和深度学习中。
十四、回归树与集成回归模型
决策树不仅可以做分类,也可以做回归。回归树通过不断划分特征空间,使得每个叶子节点中的样本目标值尽量接近,最终以叶子节点样本的平均值或中位数作为预测结果。
与线性回归相比,回归树不要求线性关系,对非线性数据和特征间复杂交互关系更友好。但单棵回归树同样容易过拟合,因此实际中常配合集成方法。
随机森林回归通过多棵回归树取平均,提高稳定性。梯度提升树则采用逐步拟合残差的方式,不断提升模型性能。提升树类模型在结构化表格数据中表现极强,是许多实际竞赛和工业任务中的主力模型。
这类模型的优势在于能自动捕捉非线性关系、特征交互、对异常分布更灵活。缺点是模型解释性通常弱于线性回归,参数更多,训练成本更高。
十五、回归模型的评估指标
回归任务常见的评估指标包括:
均方误差,它对大误差惩罚更强,适合重视大偏差的场景。
均方根误差,是在均方误差基础上开平方,量纲与原目标一致,更易解释。
平均绝对误差,它对异常值没那么敏感,反映平均偏差程度。
决定系数R²,表示模型解释目标变量波动的能力。越接近1,说明拟合越好;如果很低甚至为负,说明模型表现不理想。
具体用哪个指标,要看业务需求。如果特别不能接受大错误,就优先考虑均方误差或均方根误差;如果想稳定反映一般偏差,则平均绝对误差更合适。
此外,还要特别注意目标变量的分布。如果目标值跨度非常大,可能需要做对数变换,或采用相对误差类指标,否则大数值样本会主导模型训练。
十六、聚类算法基础
聚类是一种无监督学习方法,它的目标是根据样本之间的相似性,将数据自动分成若干组,使得同一组内样本尽量相似,不同组之间尽量差异明显。
聚类不依赖标签,因此常用于探索性数据分析。比如在用户运营中,根据消费频次、金额、偏好把用户自动分群;在图像处理中,把相似像素归到同一类;在文本处理中,把主题相近的文章聚在一起。
聚类和分类最大的不同在于:分类的类别是预先定义好的,而聚类的类别是数据自己"长出来"的。因此,聚类结果更多是一种数据结构发现,而不是标准答案。
聚类是否"好",很大程度上取决于特征设计、相似度定义以及对业务的解释能力。不同的距离度量和不同算法,可能得到完全不同的分组结果。
十七、K均值聚类
K均值是最经典的聚类算法之一。它的目标是把数据分成K个簇,使每个样本距离所属簇中心尽量近。算法流程通常是:先随机选择K个初始中心,然后将每个样本分配到最近的中心,接着重新计算各簇中心,再重复这一过程,直到中心不再明显变化。
K均值的优点是简单、速度快、易实现,适合大规模数据的初步分群。它特别适合簇形状近似球形、各簇大小相近、特征尺度一致的数据。
但K均值也有明显局限。首先,K值需要事先指定,而真实场景中往往不知道应该分成几类;其次,它对初始中心敏感,不同初始化可能得到不同结果;再次,它对异常值敏感,因为均值会被极端值拉动;最后,它更适合发现凸形簇,对于月牙形、链状等复杂簇结构效果较差。
实际应用中,常用肘部法、轮廓系数等方法辅助选择K值,并通过多次随机初始化提高结果稳定性。
十八、层次聚类
层次聚类通过建立样本之间的层级关系来完成聚类。它分为自底向上的凝聚式聚类和自顶向下的分裂式聚类。最常用的是凝聚式方法:一开始把每个样本视作一个簇,然后不断把最相似的簇合并,直到达到指定数量或某个停止条件。
层次聚类的一个显著优势是能够形成树状图,从而清晰展示样本之间的层次关系。使用者可以根据树状图在不同层级切分,得到不同粒度的聚类结果。
层次聚类不需要像K均值那样必须提前给定K值,因此更适合探索性分析。但它计算开销较大,不适合特别大的数据集。同时,不同的簇间距离定义,例如单链接、全链接、平均链接,会对结果产生明显影响。
在样本量不大、希望观察数据层次结构时,层次聚类是很有价值的方法。
十九、DBSCAN密度聚类
DBSCAN是一种基于密度的聚类算法。它的核心思想是:如果一个区域内样本点足够密集,那么这些点就属于同一个簇;如果某些点周围邻居很少,就可能是噪声点或离群点。
与K均值不同,DBSCAN不需要预先指定簇的数量,并且能够发现任意形状的簇,还可以自动识别异常点。这使它在地理数据、轨迹分析、异常检测等场景中表现突出。
DBSCAN的关键参数是邻域半径和最小样本数。参数选得太小,会把很多点当作噪声;选得太大,又可能把不同簇混在一起。此外,当数据密度差异很大时,DBSCAN的表现会下降,因为一个统一的密度标准难以适配所有区域。
尽管如此,DBSCAN仍是理解"密度聚类"思想的代表算法,它帮助我们认识到:聚类并不只有"找中心"这一种方法。
二十、聚类结果如何评估
因为聚类没有标准标签,评估往往比分类和回归更难。常见方法包括:
第一,看簇内是否紧密、簇间是否分离。轮廓系数就是一种常用指标,它综合考虑样本与本簇距离和与最近其他簇距离之间的差异。
第二,如果少量样本有人工标签,可以用外部指标评估,比如同一真实类别是否被聚到一起。
第三,也是最重要的一点,看聚类结果是否有业务解释价值。例如把用户分成三群后,是否真的对应"高价值稳定用户""价格敏感用户""潜在流失用户"这类可行动的运营群体。如果只是数学上分成几组,却无法解释和应用,聚类价值就有限。
因此,聚类任务中"可解释"和"可落地"往往比单纯追求指标更重要。
二十一、分类、回归、聚类的对比
分类、回归和聚类虽然都属于机器学习的重要任务,但它们解决的问题完全不同。
分类解决"属于哪一类"的问题,输出是离散标签。比如识别图片中的动物种类、判断交易是否欺诈。
回归解决"具体是多少"的问题,输出是连续数值。比如预测销售额、温度、价格。
聚类解决"自然能分成哪些组"的问题,通常没有人工标签。比如给客户分群、发现数据结构。
分类和回归依赖已标注数据,因此需要一定的数据采集与标注成本;聚类不需要标签,但对特征设计和结果解释要求更高。监督学习适合目标明确的预测任务,无监督学习适合探索未知结构。实际工作中,这三类任务往往可以结合使用,例如先用聚类对用户分群,再对每个群体分别建立分类或回归模型。
二十二、机器学习中的数据预处理
算法再好,也离不开高质量数据。实际项目中,数据预处理往往占据大量时间。
首先是缺失值处理。常见做法包括删除缺失严重的样本或特征、用均值中位数填补、按业务逻辑填补、甚至把"是否缺失"本身当作一个特征。
其次是异常值处理。异常值可能来自录入错误、设备故障、极端行为。可以根据统计规则、箱线图、业务阈值等方式识别。是否删除异常值不能一概而论,因为有些异常值恰恰是业务重点,例如欺诈交易。
第三是特征缩放。对于基于距离的模型,如K近邻、K均值、支持向量机,特征量纲差异会显著影响结果,因此常需要标准化或归一化。
第四是类别特征编码。机器学习模型通常不能直接处理文本类别,如"男""女""高""中""低",需要转成数值形式,例如独热编码、目标编码等。
第五是特征选择。无关特征会增加噪声、降低效率,甚至误导模型。可以通过相关性分析、模型重要性、递归消除等方法筛选。
数据预处理不是固定模板,而要根据数据特点和业务背景灵活设计。
二十三、模型选择与调参思路
初学者常常问:"哪个算法最好?"其实没有对所有问题都最好的算法,只有对当前数据和任务更合适的算法。
如果需要高解释性,可以优先考虑逻辑回归、线性回归、决策树。
如果数据关系复杂,且更重视精度,可以尝试随机森林、提升树等集成模型。
如果是文本高维稀疏数据,可以考虑朴素贝叶斯、线性支持向量机。
如果是探索性用户分群,可以先尝试K均值,再根据数据形状考虑层次聚类或DBSCAN。
调参时应有明确思路,而不是盲目搜索。比如决策树主要关注深度、叶子节点样本数;随机森林关注树的数量、最大深度、特征采样方式;支持向量机关注核函数和惩罚参数;K均值关注K值与初始化方式。
调参的本质不是把测试集分数"刷高",而是让模型更稳定、更符合业务需求。因此,必须通过交叉验证、留出验证集等方式避免信息泄露。
二十四、常见问题与误区
很多初学者在学习机器学习时容易走进一些误区。
第一个误区是迷信复杂模型。实际上,在结构化数据场景中,良好的特征工程加一个简单模型,往往比粗糙数据配复杂模型更有效。
第二个误区是只看准确率或单一指标。模型效果好不好,必须结合任务目标和错误代价来判断。
第三个误区是忽视数据泄露。比如在训练时使用了未来信息,或者把测试集信息间接用于特征处理,这会导致离线效果虚高、上线失效。
第四个误区是认为训练集分数高就是好模型。真正重要的是模型在未见数据上的表现。
第五个误区是把聚类结果当作绝对真理。聚类是一种模式发现方法,其结果高度依赖特征、距离和参数,需要结合业务解释。
第六个误区是忽视业务理解。机器学习并不是脱离场景的纯数学游戏。一个模型哪怕分数更高,但如果不能解释、不能落地、不能维护,也未必是最优方案。
二十五、实际应用中的学习建议
对于机器学习初学者,建议按以下思路学习。
第一阶段,打好数学与编程基础。至少要理解线性代数、概率统计、微积分中的基本概念,同时熟悉Python、NumPy、Pandas、Matplotlib等工具。
第二阶段,建立完整机器学习流程观。不要只背算法定义,而要能够从数据读取、清洗、训练、评估到改进完整跑通一个项目。
第三阶段,重点掌握几个经典模型。分类建议先学逻辑回归、决策树、随机森林、支持向量机;回归建议先学线性回归、正则化回归、树模型回归;聚类建议先学K均值、层次聚类、DBSCAN。
第四阶段,重视评估和实验设计。学会交叉验证、混淆矩阵、误差分析、特征重要性分析。真正的能力,不是会调库,而是能解释为什么模型这样表现。
第五阶段,通过项目实践加深理解。可以从房价预测、用户流失预测、商品评论分类、客户分群等经典小项目入手。项目实践能帮助你把抽象概念转化为真实经验。
第六阶段,逐步向更复杂方向延伸。掌握基础后,可以进一步学习集成学习、特征工程高级方法、降维、时间序列分析、推荐系统以及深度学习。
二十六、一个统一视角理解三类算法
可以用一个统一视角来理解分类、回归和聚类。
机器学习本质上是在数据中寻找结构。
分类寻找的是"特征到类别"的映射结构。
回归寻找的是"特征到数值"的映射结构。
聚类寻找的是"样本之间相似性"的内部组织结构。
也就是说,前两者关注从输入到目标的监督映射,后者关注数据自身的分布形态。它们并不是彼此割裂的知识点,而是从不同角度理解数据、利用数据的方式。
当你真正掌握这三类任务后,就会发现学习机器学习不再只是记住某个算法的公式,而是学会面对一个问题时迅速判断:这是什么任务?需要什么数据?该如何评价?哪些模型合适?如何避免风险?这才是机器学习能力的核心。
二十七、总结
分类、回归和聚类是机器学习入门最重要的三大任务类型。分类用于预测类别,回归用于预测连续数值,聚类用于发现数据中的自然分组。围绕这三类任务,发展出了大量经典算法,如逻辑回归、K近邻、决策树、随机森林、支持向量机、线性回归、正则化回归、回归树、K均值、层次聚类、DBSCAN等。
学习这些算法时,不应停留在"会调用库函数"的层面,而应重点理解它们分别适合什么问题、依赖什么假设、优缺点是什么、如何评估效果、如何与数据特点结合。模型的好坏从来不是孤立决定的,而是与数据质量、特征工程、参数设置、评价指标和业务目标共同作用的结果。
对于初学者来说,最有效的学习路径不是一开始追求复杂理论,而是先建立完整框架,再结合项目不断加深理解。只有当你能把算法放进真实任务中使用,能解释它为什么有效、为什么失效、该如何改进时,才算真正掌握了机器学习基础。