首页 > 其他分享 >机器学习(笔记)(决策树,SVM,随机森林)

机器学习(笔记)(决策树,SVM,随机森林)

时间:2025-01-23 20:57:28浏览次数:3  
标签:SVM 特征 模型 笔记 超平面 数据 决策树

总览

机器学习是一门多领域交叉学科,它致力于让计算机通过数据学习模式和规律,以进行预测或决策,而无需针对特定任务进行明确编程。以下从其简介、主要类型、常用算法、应用场景、面临挑战展开介绍:

简介:机器学习基于统计学、概率论、计算机科学等理论,运用算法解析数据,从中学习并构建模型,利用模型对新数据进行预测或分析。例如电商平台通过分析用户历史购买、浏览记录等数据,构建机器学习模型,从而预测用户可能感兴趣的商品,实现精准推荐。

主要类型

监督学习:使用标记好的数据进行训练,即数据集中每个样本都有对应的标签(输出值)。算法学习输入特征与标签之间的映射关系,以对新数据进行预测。常见任务包括分类(如判断邮件是否为垃圾邮件)和回归(如预测房屋价格)。

无监督学习:处理无标签的数据,旨在发现数据中的内在结构、模式或分组。例如聚类算法将数据点划分成不同的簇,使同一簇内的数据点相似度较高;降维算法则在保留数据主要特征的同时减少数据维度,如主成分分析(PCA)。

强化学习:智能体在环境中采取一系列行动,通过与环境交互获得奖励或惩罚信号,学习到最优的行为策略。以游戏为例,智能体通过不断尝试不同操作,根据游戏反馈的得分(奖励)调整策略,最终学会如何在游戏中取得高分。

常用算法

决策树:基于树状结构进行决策,每个内部节点表示一个属性上的测试,分支是测试输出,叶节点代表类别或值。例如在判断是否批准贷款申请时,决策树可依据申请人的收入、信用记录等属性进行层层判断。

支持向量机(SVM):寻找一个最优超平面,将不同类别的数据点尽可能分开,且使两类数据点到超平面的间隔最大,常用于二分类问题。对于非线性可分的数据,可通过核函数将数据映射到高维空间来求解。

朴素贝叶斯算法:基于贝叶斯定理,假设特征之间相互独立,通过计算每个类别在给定特征下的概率来进行分类。例如在文本分类中,可根据单词出现的频率判断文本所属类别。

神经网络:由大量神经元相互连接组成,模拟人类神经系统进行信息处理。如多层感知机(MLP)、卷积神经网络(CNN,常用于图像识别)、循环神经网络(RNN,适用于处理序列数据,如自然语言)及其变体长短时记忆网络(LSTM)和门控循环单元(GRU)。

基本步骤

1,确定问题:首先要明确竞赛题目中需要解决的问题,明确问题的类型(分类、回归、聚类等),以及需要数据维度 本此预测的变量或目标。,

2,数据理解:初步的探索性分析,包括了解数据的基本统计特征、缺失值处理、异常值处理等

3,特征工程:对原始数据进行特征提取、选择和转换,包括特征缩放、特征组合、特征选择、处理类别型特征等。

4,模型选择:根据问题的类型和数据的特点,选择适当的机器学习模型,比如决策树、随机森林、支持向量机、神经网络等。

5,模型训练:使用训练集对选定的模型进行训练,通过优化模型参数来使模型拟合训练数据。

6,模型评估:使用测试集对训练好的模型进行评估,评估模型的性能指标,比如准确率、召回率、值、均方误差等。

7,模型调优:根据评估结果对模型进行调优,可能包括调整超参数、交叉验证等

8,结果解释与报告:对模型的结果进行解释,分析模型对问题的贡献,写报告,呈现模型的应用效果和结论。

决策树模型:(分类,回归)

一种基于树状结构进行决策的监督学习算法,其核心在于通过对数据特征的逐步划分,以实现对样本的分类或数值预测。

基本原理:

决策树由节点和分支组成,类似于流程图的树形结构。根节点包含所有样本数据,每个内部节点基于某个特征的属性值对数据进行测试,根据测试结果将数据划分到不同的分支,叶节点则表示分类结果(分类树)或预测值(回归树)。例如在判断一个水果是否为苹果时,可能从颜色特征开始,若颜色为红色,再看形状是否为圆形,逐步得出结论。决策树基于信息增益、信息增益比、基尼指数等准则来选择最优划分特征,目的是让划分后的子节点数据纯度更高。例如信息增益,通过计算划分前后信息熵的变化,信息增益越大,说明按该特征划分对数据的分类效果越好。

构建过程

特征选择:从数据的所有特征中,依据上述准则挑选出对分类或预测最有帮助的特征。例如在预测天气是否适合外出活动时,可能有温度、湿度、风速等特征,通过计算信息增益确定哪个特征对决策影响最大。

决策树生成:以选定的特征为节点,按照特征的不同取值划分数据集,生成子节点。不断递归这个过程,对每个子节点重复特征选择和划分,直到满足停止条件,如所有样本属于同一类别,或没有可用于划分的特征。

剪枝:构建好的决策树可能存在过拟合问题,即对训练数据拟合得很好,但对新数据的泛化能力较差。剪枝操作通过去掉一些分支来简化决策树,提高泛化能力。分为预剪枝和后剪枝,预剪枝在决策树生成过程中,判断当前节点划分是否能带来泛化性能提升,若不能则停止划分;后剪枝是在决策树构建完成后,自下而上对非叶节点进行考察,若剪掉该节点子树能提升泛化性能,则进行剪枝。

要解决的问题:如何找出最佳节点和最佳分支,如何防止过拟合和使决策树停止生长

优缺点

优点:模型直观,易于理解和解释,决策过程类似人类的逻辑推理。构建过程不需要额外的预处理,对数据的缺失值和噪声有一定容忍度。训练时间相对较短,预测速度快,适用于大规模数据集。

缺点:容易过拟合,特别是在数据特征较多且复杂时,决策树可能过度学习训练数据中的细节。对连续性变量的处理能力有限,通常需要进行离散化处理。此外,决策树对数据的小变动比较敏感,可能导致生成的决策树结构差异较大。

SVM模型:(分类,回归)

支持向量机(Support Vector Machine,SVM)是一种有监督的机器学习模型,广泛应用于分类和回归问题。

基本原理

核心概念:SVM 的核心目标是在特征空间中找到一个最优超平面,将不同类别的数据点尽可能分开,并且使两类数据点到超平面的间隔(margin)最大。这个最优超平面可以用线性方程

来表示,其中w是超平面的法向量,决定了超平面的方向,b是截距,决定了超平面与原点的距离。

最大间隔的意义:更大的间隔意味着模型具有更好的泛化能力,对未知数据的分类错误率更低。例如在一个简单的二维平面上,两类数据点分布在超平面两侧,间隔越大,新的数据点被正确分类的可能性就越高。

线性 SVM 与非线性 SVM

分类

线性 SVM:适用于数据在特征空间中线性可分的情况,即能够找到一个超平面完全将不同类别的数据分开。例如,两类数据点分别分布在一条直线的两侧,这条直线就是线性 SVM 找到的超平面。

非线性 SVM:现实中很多数据并非线性可分,此时 SVM 通过核函数将低维空间中的非线性问题映射到高维空间,使其在高维空间中变得线性可分。常见的核函数有多项式核函数、高斯核函数(径向基函数 RBF)等。以高斯核函数为例,它可以将数据映射到无限维空间,从而找到合适的超平面进行分类。

模型构建过程

数据准备:收集并预处理数据,包括数据清洗、特征选择与提取等步骤,确保数据的质量和可用性。

选择核函数(针对非线性问题):根据数据的特点和问题的性质选择合适的核函数,如果数据线性可分,则可直接使用线性 SVM。

求解优化问题:SVM 的目标是最大化间隔,这可以转化为一个凸二次规划问题。通过拉格朗日对偶性,将原始问题转化为对偶问题进行求解,得到最优的超平面参数b和w。在求解过程中,支持向量起着关键作用,它们是离超平面最近的数据点,决定了超平面的位置和方向。

模型评估:使用交叉验证等方法评估模型的性能,如准确率、召回率、F1 值等指标,以确定模型的泛化能力和有效性。

优缺点

优点

泛化能力强:通过最大化间隔,SVM 在处理小样本数据时能够有效避免过拟合,具有较好的泛化性能。

适合高维数据:对特征维度很高的数据也能处理得很好,在文本分类等领域表现出色,因为文本数据通常具有很高的维度。

多种核函数选择:可以根据不同的数据特点选择合适的核函数,灵活处理线性和非线性问题。

缺点

计算复杂度高:对于大规模数据集,求解二次规划问题的计算量较大,训练时间长。

参数选择困难:核函数的参数以及惩罚参数 C 等对模型性能影响较大,选择合适的参数需要一定的经验和调参技巧。

难以解释:对于复杂的非线性 SVM 模型,其决策过程相对难以直观解释,不像决策树模型那样具有清晰的逻辑结构。

神经网络模型看灰色预测and BP神经网络 (详细上手使用)-CSDN博客

随机森林算法

一种强大的集成学习模型,由多个决策树组成,广泛应用于分类、回归等诸多领域。

基本原理

集成学习思想:随机森林基于集成学习中的 Bagging(自举汇聚法)策略,通过构建多个相互独立的子模型(决策树),然后综合这些子模型的预测结果来进行最终决策。其核心在于 “集体智慧”,即多个相对较弱的模型(决策树)通过合理组合,可以产生比单个模型更强的预测性能。

决策树的多样性:为了使各个决策树具有差异性,随机森林在构建每棵决策树时,从原始训练数据集中有放回地随机抽取样本(这一过程称为自助采样),形成多个不同的子训练集。同时,在每个节点进行特征选择时,不是考虑所有特征,而是随机选择一个特征子集来确定最佳划分特征。这样生成的每棵决策树都基于不同的数据子集和特征子集,具有一定的随机性和多样性。

预测机制:对于分类问题,随机森林中每棵决策树给出一个分类结果(类别标签),最终通过投票的方式,选择得票最多的类别作为随机森林的预测类别。例如,在预测一个水果是苹果还是橙子的问题上,若有 100 棵决策树,其中 60 棵树预测为苹果,40 棵树预测为橙子,那么随机森林的预测结果就是苹果。对于回归问题,随机森林中每棵决策树给出一个预测值,最终将所有决策树的预测值进行平均,得到随机森林的预测值。

构建过程

数据采样:从原始训练数据集中采用有放回的抽样方式,重复抽取多个与原始数据集大小相同的子数据集,每个子数据集用于构建一棵决策树。例如,原始数据集有 1000 个样本,每次抽取 1000 个样本(可能会有重复样本)组成子数据集。

特征选择:在每棵决策树的每个节点进行分裂时,随机选择一个特征子集(通常特征子集的大小远小于总特征数),从这个子集中选择最优的特征进行分裂。例如,总共有 10 个特征,在某个节点分裂时,可能随机选择其中 3 个特征来确定最佳划分。

决策树构建:使用选定的子数据集和特征子集,按照决策树的构建方法(如 ID3、C4.5、CART 等算法)构建决策树。在构建过程中,不进行剪枝操作,以保持决策树的完整性和多样性。

集成模型形成:重复上述步骤,构建多棵决策树,形成随机森林模型。最终根据分类或回归的任务,采用投票或平均的方式得出预测结果。

优缺点

优点

准确率高:由于综合了多棵决策树的结果,能够有效减少过拟合,提高模型的泛化能力和预测准确率。在许多实际问题中,随机森林的表现优于单个决策树。

鲁棒性强:对噪声数据和异常值具有较好的容忍度,不易受到个别数据的影响。因为每棵决策树基于不同的样本和特征子集构建,个别噪声数据或异常值可能只影响某一棵或几棵决策树,而不会对整体模型产生过大影响。

可处理高维数据:无需进行复杂的特征选择和降维处理,能够自动处理特征之间的相互作用,同时评估每个特征的重要性。在高维数据(如基因数据、文本数据)的分析中具有优势。

并行性好:每棵决策树的构建相互独立,可以并行计算,大大提高了训练效率,适用于大规模数据集的处理。

缺点

模型解释性相对复杂:虽然可以通过特征重要性等方法对模型进行一定程度的解释,但相比单个决策树,随机森林的决策过程更加复杂,难以直观地理解模型是如何做出决策的。

计算资源消耗大:构建多棵决策树需要占用较多的内存和计算时间,特别是在数据集规模较大和特征维度较高时,训练过程可能会比较耗时。

对小样本数据可能过拟合:在样本数量较少的情况下,随机森林可能会对训练数据过度拟合,导致在新数据上的表现不佳。此时需要谨慎调整模型参数或采用其他方法来增强模型的泛化能力。

标签:SVM,特征,模型,笔记,超平面,数据,决策树
From: https://blog.csdn.net/2401_84910613/article/details/145329050

相关文章

  • 网络流学习笔记
    发现其实整理不完所有内容,干脆把所有不会的记了算了qwq。基础定义网络\(G=(V,E)\)是一张有向图,其中的边\((x,y)\inE\)都有一个权值\(c(x,y)\),称为容量。特别的,对于\((x,y)\notinE\)可以认定\(c(x,y)=0\)。与一般有向图的区别在于,\(\exists,t\inE\)......
  • 1.23《构建之法》读书笔记一
    寒假初读《构建之法》,犹如打开了一扇通往软件开发新世界的大门,诸多观点让我深受启发。书中对软件工程师的角色定位有清晰阐述,强调不仅要掌握技术,更要具备解决实际问题的能力。这使我意识到,软件开发绝非简单的代码堆砌,而是要充分理解用户需求,用合适的技术方案去满足这些需求。例如......
  • 算法笔记-N皇后求解
    n皇后问题是一个以国际象棋为背景的问题:在n×n的国际象棋棋盘上放置n个皇后,使得任何一个皇后都无法直接吃掉其他的皇后,即任意两个皇后都不能处于同一条横行、纵行或斜线上。请问有多少种摆法,并将每种摆法打印出来。递归算法1(最暴力的解法)可以从左到右尝试棋子的摆放,例如先放置在......
  • 算法笔记-装石头(利用二进制位数)
    一、装石头(利用二进制位数)题目描述:把1000个石头装在10个袋子里面,任取其中的一袋,或把几个袋中的石头数加起来。都可以凑成1~1000中任何一种石头数量,求这10个袋子分别装了多少个石头?解法:考虑1000的二进制刚好十个位,所以按照二进制转十进制的原理,1~1000中任何一个数用10位的二进制......
  • 辛普森积分学习笔记
    辛普森积分学习笔记定积分定积分的定义设函数\(f(x)\)在区间\([a,b]\)上有界,在\([a,b]\)中插入若干个分点\[a=x_0<x_1<x_2<\cdots<x_{n-1}<x_n=b\]把区间\([a,b]\)分成\(n\)个小区间,各小区间的长度依次为\(\Deltax_i=x_i-x_{i-1}(1\lei\len)\)。在各小区间上任......
  • Golang笔记——静态强类型、编译型、并发型语言
    大家好,这里是GoodNote,关注公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Go语言的基础知识,包括数据类型,深浅拷贝,编程范式,Go语言是一种静态(静态类型语言和静态语言)强类型、编译型、并发型,并具有垃圾回收功能的编程语言。文章目录1.Go语言基础知识数据类型......
  • 折腾笔记[11]-使用rust进行直接法视觉里程计估计
    摘要使用rust实现了一个完整的直接法视觉里程计系统,能够通过比较两幅图像中的像素强度来估计相机的运动。它通过单层和多层的优化策略,结合图像金字塔和并行计算,提高了位姿估计的精度和效率。最终,代码输出了优化后的相机位姿变换矩阵,并可视化了投影点的位置。Thisisacomplete......
  • 联想 ThinkPad 笔记本T14 CPU 降频解决方案
    原因:在工作中,打开多个IDE的情况下,会出现卡顿问题,发现是由于CPU降频到0.5GHz导致的。环境:笔记本是联想ThinkPadT14CPU:12thGenInterlCorei7-1260P系统为Window10专业版解决办法经过搜索后,适合的方案如下:打开电源的卓越性能模式在WindowsPowershell中......
  • 读书笔记:高性能架构之道
    高性能架构之道,分布式、并发编程、数据库调优、缓存设计、IO模型、前端优化、高可用第1章高性能架构0011.1软件架构001理念层面:如研究软件的开发模型、评价指标、架构风格等。架构层面:研究如何协调和组织软件系统、子系统、模块之间的关系。类比于规划和设计建筑物的承......
  • 202511读书笔记|《山中与诸道友夜坐闻》——风翻荷叶一向白,雨湿蓼花千穗红
    202511读书笔记|《山中与诸道友夜坐闻》——风翻荷叶一向白,雨湿蓼花千穗红《山中与诸道友夜坐闻》温庭筠,还不错,可以轻松的读的小诗词。上学学过他的一些词,喜欢是缘于后来看花间集和飞花令。半小时可读完的一本书......