Machine Learning: 十大基本机器学习算法

机器学习算法分类:监督学习、无监督学习、强化学习

基本的机器学习算法:

        线性回归、支持向量机(SVM)、最近邻居(KNN)、逻辑回归、决策树、k平均、随机森林、朴素贝叶斯、降维、梯度增强。

机器学习算法大致可以分为三类:

  • 监督学习算法 (Supervised Algorithms):   在监督学习训练过程中,可以由训练数据集学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。该算法要求特定的输入/输出,首先需要决定使用哪种数据作为范例。例如,文字识别应用中一个手写的字符,或一行手写文字。主要算法包括神经网络、支持向量机、最近邻居法、朴素贝叶斯法、决策树等。
  • 无监督学习算法 (Unsupervised Algorithms):    这类算法没有特定的目标输出,算法将数据集分为不同的组。
  • 强化学习算法 (Reinforcement Algorithms):   强化学习普适性强,主要基于决策进行训练,算法根据输出结果(决策)的成功或错误来训练自己,通过大量经验训练优化后的算法将能够给出较好的预测。类似有机体在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。

【一句话总结】
         监督学习:跟着老师学(有标准答案)
        无监督学习:自己找规律(无标准答案)
        强化学习:边玩边学(用奖惩调参数)


1. 线性回归算法 Linear Regression

        回归分析(Regression Analysis)是统计学的数据分析方法,目的在于了解两个或多个变量间是否相关、相关方向与强度,并建立数学模型以便观察特定变量来预测其它变量的变化情况。

      线性回归算法(Linear Regression)的建模过程就是使用数据点来寻找最佳拟合线。

2. 支持向量机算法(Support Vector Machine,SVM)

        支持向量机/网络算法(SVM)属于分类型算法。SVM模型将实例表示为空间中的点,将使用一条直线分隔数据点。需要注意的是,支持向量机需要对输入数据进行完全标记,仅直接适用于两类任务,应用将多类任务需要减少到几个二元问题。   尤其在二分类任务中效果显著。

原理:寻找最优超平面,最大化不同类别数据间的间隔。通过核函数(如高斯核)将数据映射到高维空间解决非线性问题。

3. 最近邻居/k-近邻算法 (K-Nearest Neighbors,KNN)

       KNN算法基于一个非常直观的思想:对于一个未知类别的数据点,可以通过查看它在特征空间中距离最近的K个邻居的类别或数值信息,来决定该数据点的类别或预测其值。

曼哈顿距离(街区距离):绝对值和,L1范数

欧氏距离(直线距离):平方和开方, L2范数

算法的主要步骤如下:

1. 计算距离:常用的距离度量方法有欧氏距离、曼哈顿距离等。对于一个待预测的数据点,计算它与训练集中所有数据点的距离。

2. 选择最近邻:根据计算得到的距离,选取距离最小的K个数据点

    ​优点:无需训练,简单直观,适合多分类问题


 最常用的「K 折交叉验证」步骤(以 5 折为例)

  1. 分块:把数据随机分成 5 份(每份叫「折」Fold)。
    (例:奶茶用户数据 1000 条 → 分 5 组,每组 200 条)
  2. 循环训练
    • 第 1 轮:用第 2-5 组(800 条)训练模型,测第 1 组(200 条)→ 得准确率 85%
    • 第 2 轮:用第 1,3-5 组训练,测第 2 组 → 得准确率 88%
    • ……(重复 5 次,每轮换不同的组当测试集)
  3. 汇总结果:5 次准确率的平均分(如 86.6%),作为模型真实水平。
1. k 越小:听「最铁邻居」的,可能踩坑
  • 例子:你选餐厅时,只问最近的 1 个邻居(k=1)。
    → 若邻居是素食者,ta推荐的素菜馆,可能不适合爱吃肉的你(过拟合,被局部噪声带偏)。
  • 优点:捕捉细节(比如小众宝藏店)。
  • 缺点:怕异常值(比如邻居那天心情不好乱推荐)。
  • 适合:数据干净、想保留细节的场景(如手写数字识别)。
2. k 越大:听「全班意见」,可能平庸
  • 例子:你问全班 50 个人(k=50),最终选了评分最高的连锁餐厅。
    → 虽然不踩雷,但可能错过你喜欢的特色小店(欠拟合,模糊了个体差异)。
  • 优点:抗噪声(少数差评被稀释)。
  • 缺点:忽略局部特征(比如你家楼下的隐藏好店)。
  • 适合:数据噪声大、想平滑结果的场景(如用户偏好预测)。

4. ​逻辑回归(Logistic Regression)​

原理:通过Sigmoid函数将线性组合映射到[0,1],输出概率值进行二分类,损失函数为交叉熵。参数估计使用最大似然法。

最大似然法:

最大似然法 =「数据侦探」  核心:根据结果反推最合理的「剧本」(参数)。

最大似然法是一种基于概率模型的参数估计方法,其核心思想是通过观测数据反推最可能生成这些数据的模型参数


5. 决策树算法 Decision Tree

        决策树是通过一系列规则对数据进行分类的过程。它提供一种在什么条件下会得到什么值的类似规则的方法。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。

       不同的算法(ID3、C4.5、CART)在特征选择上使用不同的指标,但递归分割数据构建决策树的基本思想是一致的。

  • 信息增益(ID3 算法):

        信息熵:信息熵是用来衡量数据纯度的指标,它表示数据的不确定性程度。

        信息增益:信息增益是指在划分数据集前后信息熵的减少量,它表示使用某个特征进行划分后,数据集的纯度提高了多少。

ID3 算法在构建决策树时,会选择信息增益最大的特征作为当前节点的分割特征。

  • 增益率(C4.5 算法):

   信息增益存在的问题:信息增益倾向于选择取值较多的特征,因为取值较多的特征会将数据集划分成更多的子集,从而使信息熵降低得更多。为了解决这个问题,C4.5 算法引入了增益率。

C4.5 算法在构建决策树时,会选择增益率最大的特征作为当前节点的分割特征。

  • 基尼指数(CART 算法):

基尼指数:基尼指数也是用来衡量数据纯度的指标,它表示从数据集中随机抽取两个样本,其类别不一致的概率。

CART 算法在构建决策树时,会选择基尼指数最小的特征作为当前节点的分割特征。

        原理:递归分割数据,选择信息增益(ID3)、增益率(C4.5)或基尼指数(CART)最大的特征作为节点,生成树形结构。

一棵决策树的生成过程主要分为以下3个部分:

  •   特征选择: 是指从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的决策树算法。
  • 决策树生成: 根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。 树结构来说,递归结构是最容易理解的方式。
  • 决策树剪枝: 决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。

注意:对于那些各类别样本数量不一致的数据,在决策树当中信息增益的结果偏向于那些具有更多数值的特征。

6. k-平均算法 K-Means

      k-平均算法(K-Means)是一种无监督学习算法,为聚类问题提供了一种解决方案。
K-Means 算法把 n 个点(可以是样本的一次观察或一个实例)划分到 k 个集群(cluster),使得每个点都属于离他最近的均值(即聚类中心,centroid)对应的集群。重复上述过程一直持续到重心不改变。

原理:通过迭代优化,将数据划分为K个簇,使簇内样本距离质心最近。目标是最小化簇内平方误差。

7. 随机森林算法 Random Forest

        随机森林算法(Random Forest)的名称由 1995 年由贝尔实验室提出的random decision forests 而来,正如它的名字所说的那样,随机森林可以看作一个决策树的集合。
随机森林中每棵决策树估计一个分类,这个过程称为“投票(vote)”
。理想情况下,我们根据每棵决策树的每个投票,选择最多投票的分类。

原理集成多棵决策树,通过Bagging(有放回抽样)和随机特征选择降低方差,最终投票或平均结果。

8. 朴素贝叶斯算法 Naive Bayes        

        朴素贝叶斯的核心思想基于贝叶斯定理,通过计算后验概率来进行分类。其“朴素”之处在于假设特征之间是条件独立的,这一假设虽然在实际应用中并不总是成立,但在许多情况下,朴素贝叶斯依然能够取得令人满意的分类效果。这使得朴素贝叶斯成为许多实际应用中的首选模型,尤其是在处理高维数据和大规模数据集时,展现出其独特的优势。

        贝叶斯学派(Bayesian)在概率模型的参数估计中,认为参数是未观察到的随机变量,并且可以为其假设一个先验分布(prior distribution)。然后,基于观测到的数据,通过贝叶斯定理计算参数的后验分布(posterior distribution)。这一过程体现了贝叶斯统计的核心思想:将先验知识与观测数据结合,更新对参数的信念。

        朴素贝叶斯是一种超级 “单纯” 的分类算法,核心思想就像 “看菜下饭”—— 通过统计 “特征组合” 出现的概率来判断类别。


 为什么叫 “朴素”?

        因为它做了一个 “天真” 的假设:所有特征之间完全独立(比如西瓜的 “表皮” 和 “重量” 互不影响)。虽然现实中特征可能相关(比如重的西瓜可能更成熟,表皮更光滑),但这个假设让计算变得超级简单,而且在文本分类(如垃圾邮件过滤)等场景中效果惊人。

        朴素贝叶斯就像一个 “统计小能手”,先数清楚每个类别里各个特征出现的次数,再假设特征之间互不干扰,最后用 “概率投票” 决定新样本的类别 —— 简单粗暴,但好用!


9. 降维算法 Dimensional Reduction

        在机器学习和统计学领域,降维是指在限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程,并可进一步细分为特征选择和特征提取两大方法。

        一些数据集可能包含许多难以处理的变量。特别是资源丰富的情况下,系统中的数据将非常详细。在这种情况下,数据集可能包含数千个变量,其中大多数变量也可能是不必要的。在这种情况下,几乎不可能确定对我们的预测影响最大的变量。此时,我们需要使用降维算法,降维的过程中也可能需要用到其他算法,例如借用随机森林,决策树来识别最重要的变量。

原理:减少特征数量,保留主要信息。线性方法如PCA(主成分分析)通过方差最大化投影。

特点

  • 优点:降低计算成本,去除噪声,可视化高维数据
  • 缺点:可能丢失部分信息(如PCA对非线性关系失效)
  • 应用:图像压缩、数据预处理,用于特征工程阶段

10. 梯度增强算法 Gradient Boosting

        梯度增强算法(Gradient Boosting)使用多个弱算法来创建更强大的精确算法。它与使用单个估计量不同,而是使用多个估计量创建一个更稳定和更健壮的算法。

原理:迭代训练弱学习器(通常为决策树),每轮拟合残差的负梯度,逐步减少损失函数(如MSE、交叉熵)。XGBoost、LightGBM为其优化版本。

 面试常问: 

  • 「随机森林和 GBDT 的区别???」—— 前者是并行投票的「佛系树群」,后者是串行纠错的「卷王树群」
  •   每个算法配一个简笔画小场景,比如 KNN 画 5 个小人围着新用户,SVM 画一条宽线隔开猫猫狗狗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32704.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF从初学者到专家:实战项目经验分享与总结

WPF从初学者到专家:实战项目经验分享与总结 一、前言二、WPF 基础概念与入门2.1 什么是 WPF2.2 XAML 基础2.3 数据绑定基础 三、第一个 WPF 项目:简单的待办事项列表3.1 项目需求分析3.2 项目搭建与界面设计3.3 业务逻辑实现 四、中级项目:音…

力扣hot100_二叉树

二叉树的建立与遍历 #include <iostream> #include <vector> #include <queue> using namespace std;// 定义二叉树节点 struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} };// 函数&…

解锁MATLAB语言:从入门到实战的编程秘籍

目录 一、MATLAB 是什么? 二、搭建 MATLAB 环境 三、基础语法入门 3.1 特殊符号与运算符 3.2 变量命名与赋值 3.3 向量与矩阵创建 四、实战演练 4.1 简单数学运算 4.2 绘制函数图像 五、深入学习建议 一、MATLAB 是什么? MATLAB,即 Matrix Laboratory(矩…

JVM垃圾回收面试题及原理

1. 对象什么时候可以被垃圾器回收 如果一个或多个对象没有任何的引用指向它了&#xff0c;那么这个对象现在就是垃圾&#xff0c;如果定位了垃圾&#xff0c;则有可能会被垃圾回收器回收 如果要定位什么是垃圾&#xff0c;有两种方式来确定 引用计数法可达性分析算法 1.1 …

图像识别技术与应用-YOLO

1 YOLO-V1 YOLO-V1它是经典的one-stage方法&#xff0c;You Only Look Once&#xff0c;名字就已经说明了一切&#xff01;把检测问题转化成回归问题&#xff0c;一个CNN就搞定了&#xff01;也可以对视频进行实时检测&#xff0c;应用领域非常广&#xff01; YOLO-V1诞生与2…

Prompt engineering设计原则(一)

目录 一、清晰具体的prompt1. 使用分隔符2. 结构化的输出&#xff08;JSON&#xff09;3. 要求模型检查是否满足条件4. 提供少量案例 二、给模型时间去思考1.指定完成任务所需的步骤2. 指导模型在下结论之前找出一个自己的解法 一、清晰具体的prompt 一个合理的prompt设计决定…

L2-4 吉利矩阵

输入样例&#xff1a; 7 3输出样例&#xff1a; 666 这道题是暴力纯搜&#xff0c;但是很难想&#xff0c;我这个是看的别人的代码 #include "bits/stdc.h" using namespace std; int x[20][20]; int l, n; int cnt 0; int sumx[5], sumy[5]; void dfs(int x, in…

MVCC实现原理

一、引言 在现代数据库管理系统中&#xff0c;数据的一致性和并发性是两个至关重要的特性。传统的锁机制虽然有效&#xff0c;但也存在着性能瓶颈&#xff0c;特别是在高并发环境下&#xff0c;锁的争用会导致系统响应时间变慢&#xff0c;甚至引发死锁等问题。为了克服这些挑…

Mac java全栈开发环境配置

前言 由于最近手中的windows本子坏了,所以搞了一台m系列的macbookpro 作为一个开发者 面对新设备最先考虑的应该就是各种sdk、中间件服务、环境变量配置和工具了吧!!! 本文将带你手把手学习Mac搭建属于自己的本地开发环境 安装brew 什么是brew? ‌Brew(全称Homebrew)…

BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection 论文阅读

研究背景&#xff1a;本文提出了新型多视角3D目标检测器BEVDepth&#xff0c;以可靠的深度估计提升基于相机的鸟瞰视角(BEV) 3D检测性能。相较于成本较高的LiDAR&#xff0c;多视角相机因低成本受关注&#xff0c;但现有方法&#xff08;如Lift-Splat-Shoot&#xff09;在深度估…

【网络协议】应用层协议HTTPS

文章目录 为什么引入HTTPS&#xff1f;基本概念加密的基本过程对称加密非对称加密中间人攻击证书 为什么引入HTTPS&#xff1f; 由于HTTP协议在网络传输中是明文传输的&#xff0c;那么当传输一些机密的文件或着对钱的操作时&#xff0c;就会有泄密的风险&#xff0c;从而引入…

LVS + Keepalived 高可用集群

一、LVSKeepalived 原理 1.1.LVS 负载均衡原理 LVS&#xff08;Linux Virtual Server&#xff09;是一种基于 Linux 内核的负载均衡技术&#xff0c;它通过 IPVS&#xff08;IP Virtual Server&#xff09;模块来实现。LVS 可以将客户端的请求分发到多个后端服务器上&#xf…

基于Python实现手写数字识别

KNN实验——手写数字识别 实验目的&#xff1a; 实验内容&#xff1a; 实现最基本的KNN算法&#xff0c;使用trainingDigits文件夹下的数据&#xff0c;对testDigits中的数据进行预测。&#xff08;K赋值为1&#xff0c;使用欧氏距离&#xff0c;多数投票决定分类结果&#…

K8S学习之基础二十三:k8s的持久化存储之nfs

K8S持久化存储之nfs ​ 在 Kubernetes (k8s) 中使用 NFS&#xff08;Network File System&#xff09;作为存储解决方案是一种常见的方式&#xff0c;特别是在需要共享存储的场景中。以下是关于如何在 Kubernetes 中使用 NFS 存储的详细说明&#xff1a; 1. 准备 NFS 服务器 …

Banana Pi 与瑞萨电子携手共同推动开源创新:BPI-AI2N

2025年3月11日&#xff0c; Banana Pi 开源硬件平台很高兴宣布&#xff0c;与全球知名半导体解决方案供应商瑞萨电子&#xff08;Renesas Electronics&#xff09;正式达成技术合作关系。此次合作标志着双方将在开源技术、嵌入式系统和物联网等领域展开深度合作&#xff0c;为全…

AI 大模型统一集成|让 AI 聊天更丝滑:WebSocket 实现流式对话!

&#x1f31f; 在这系列文章中&#xff0c;我们将一起探索如何搭建一个支持大模型集成项目 NexLM 的开发过程&#xff0c;从 架构设计 到 代码实战&#xff0c;逐步搭建一个支持 多种大模型&#xff08;GPT-4、DeepSeek 等&#xff09; 的 一站式大模型集成与管理平台&#xff…

接口自动化入门 —— Http的请求头,请求体,响应码解析!

在接口自动化测试中&#xff0c;HTTP请求头、请求体和响应码是核心组成部分。理解它们的作用、格式和解析方法对于进行有效的接口测试至关重要。以下是详细解析&#xff1a; 1. HTTP 请求头&#xff08;Request Header&#xff09; 1.1 作用 请求头是客户端向服务器发送的附加…

Day07 -实例 非http/s数据包抓取工具的使用:科来 wrieshark 封包监听工具

引入&#xff1a;由于我们day06正确为模拟器配置好了抓包环境&#xff0c;现在用bp去抓取模拟器web包是可以抓取到的&#xff0c;但是某些小程序 & pc端的app 都是有走非http/https协议的数据包的&#xff0c;那么我们就需要用不同的工具去抓取这些其他协议的数据包。 工具…

pdf合并工具

放在网盘中需要自取。 分享文件&#xff1a;合并pdf.exe 链接&#xff1a;https://pan.xunlei.com/s/VOL9eDuT7aaUS0n2gVuAKJHTA1?pwdnxam# 复制这段内容后打开迅雷&#xff0c;查看更方便 选择需要合并的pdf&#xff0c;然后点击合并pdf就可以了。

兴达易控Profinet 转 ModbusTCP跨网段通信模块

Profinet 转 ModbusTCP/跨网段通信模块 Profinet转ModbusTCP/跨网段通信模块&#xff0c;作为现代工业自动化系统中不可或缺的重要组件&#xff0c;正日益受到广泛关注和应用。 这种模块的核心功能是将Profinet网络协议转换为Modbus TCP协议&#xff0c;实现不同网络之间的无缝…