论文笔记:A review on multi-label learning

一、介绍

传统的监督学习是单标签学习,但是现实中一个实例可能对应多个标签。这篇文章介绍了多标签分类的定义和评价指标、多标签学习的算法还有其他相关的任务。

二、问题相关定义

2.1 多标签学习任务

假设 X = R d X = R^d X=Rd,表示d维的输入空间, Y = ( y 1 , y 2 , y 3 . , . . . , y q Y = (y_1, y_2, y_3., ..., y_q Y=(y1,y2,y3.,...,yq表示输出的可能q个类别。多标签任务是学习一个方程,在训练集合 D = { ( x i , Y i ) ∣ 1 ≤ i ≤ m } D = \{(x_i, Y_i)|1 \leq i \leq m\} D={(xi,Yi)∣1im}学习一个X到Y的函数。对于每个多标签实例, x i ∈ X x_i \in X xiX是d维特征空间 ( x i 1 , x i 2 , . . . , x i d ) T (x_{i1}, x_{i2}, ..., x_{id})^T (xi1,xi2,...,xid)T Y i ⊆ Y Y_i \subseteq Y YiY是对应于 x x x的标签几何。多标签学习任务就是学习一个多标签分类器 h ( . ) h(.) h(.),对于没有见到过的实例 x ∈ X x \in X xX,可以预测他的标签 h ( x ) ⊆ Y h(x) \subseteq Y h(x)Y

2.2 多标签学习的特点
2.2.1. 不同数据集多标签的程度可能不同

有几个有用的多标签指示符可以用于描述多标签数据集的特性。

  • 最自然的方法就是衡量多标签程度的是label cardinality(标签基数):
    L C a r d ( D ) = 1 m ∑ i = 1 m ∣ Y i ∣ LCard(D) = \frac{1}{m}\sum_{i=1}^m|Y_i| LCard(D)=m1i=1mYi
    表示每个样本的平均标签数目。
  • “标签密度”(label density)按标签空间中可能的标签数规范化标签基数:
    L D e n ( D ) = 1 y ⋅ L C a r d ( D ) LDen(D) = \frac{1}{y} \cdot LCard(D) LDen(D)=y1LCard(D)
  • 标签多样性:Label diversity
    L D i v ( D ) = ∣ Y ∣ e x i s t s x : ( x , Y ) ∈ D ∣ LDiv(D) = |{Y|exists x:(x,Y)\in D}| LDiv(D)=Yexistsx:(x,Y)D
    数据集中出现的不同标签集的数目
  • 标签多样性可以通过数据集的数量来标准化,以表示不同标签集的比例
    P L D i v ( D ) = 1 D ⋅ L D i v ( D ) PLDiv(D)=\frac{1}{D}\cdot LDiv(D) PLDiv(D)=D1LDiv(D)
    多标签学习就是学习x和y的相关性,希望 f ( x , y ′ ) ≥ f ( x , y ′ ′ ) f(x, y^{'}) \ge f(x, y^{''}) f(x,y)f(x,y′′),其中 y ′ ∈ Y y' \in Y yY, y ′ ′ ∉ Y y^{''}\notin Y y′′/Y。所以多标签分类器可以通过函数f(.,.)得到: h ( x ) = { y ∣ f ( x , y ) ≥ t ( x ) , y ∈ Y } h(x) = \{y | f(x,y) \ge t(x), y\in Y\} h(x)={yf(x,y)t(x),yY},其中 t ( x ) t(x) t(x),扮演阈值函数的角色,把标签空间对分成相关的标签集和不相关的标签集。阈值函数可以由训练集产生,可以设为常数。
2.2.2. 标签具有相互关系

学习策略
多标签学习的主要难点在于输出空间的爆炸增长,有效的挖掘标签之间的相关性,是多标签学习成功的关键。根据对相关性挖掘的强弱,可以把多标签算法分为三类。

  1. 一阶学习策略:忽略和其它标签的相关性,比如把多标签分解成多个独立的二分类问题(简单高效)。
  2. 二阶学习策略:考虑标签之间的成对关联,比如为相关标签和不相关标签排序。
  3. 高阶学习策略:考虑多个标签之间的关联,比如对每个标签考虑所有其它标签的影响(效果最优)。
2.2.3 数据不平衡

一. 某个类别对应样例可能远多于另一个类别,类别之间不平衡
二. 某个类别对应的正样本可能远多于负样本(类别之内不平衡)

2.3 阈值校准

多标签学习中的一种常见做法是返回一些实值函数 f ( ⋅ , ⋅ ) f(·,·) f作为学习模型。为了决定最后的输出结果,每个标签上的实值输出应根据阈值函数输出 t ( x ) t(x) t(x)进行校准。
通常有两种方法设置 t ( ∗ ) t(*) t(),设置 t ( ∗ ) t(*) t()为常量或者从训练数据中预测。对于前者, f f f是一个实值函数,所以t可设置为0。当 f f f的输出为概率时, t t t设置为0.5。或者当测试集可见时,阈值可以设置为训练集合测试集的多标签程度指标区别最小的数。
对于后一个策略,可以用stacking-style的步骤来决定阈值函数。假设 t t t是一个线性模型,即 t ( x ) = < w , f ( x ) > + b t(x) = <w, f(x)> + b t(x)=<w,f(x)>+b,这里 f ( x ) = ( f ( x , y 1 ) , . . . , f ( x , y q ) ) T ∈ R q f(x) = (f(x, y1),...,f(x,y_q))^T \in R^q f(x)=(f(x,y1),...,f(x,yq))TRq是一个 q q q维stacking向量。为了学习 w ∗ w^* w b ∗ b^* b,需要求解线性最小二乘。
m i n w ∗ , b ∗ ∑ i − 1 m ( < w ∗ , f ∗ ( x i ) > + b ∗ − s ( x i ) ) 2 min_{w^*,b^*}\sum_{i-1}^m(<w^*,f^*(x_i)> + b^* - s(x_i))^2 minw,bi1m(<w,f(xi)>+bs(xi))2
s ( x i ) = a r g m i n a ∈ R ( ∣ { y j ∣ y j ∈ Y i , f ( x i , y j ) ≤ a } ∣ + ∣ { y k ∣ y k ∈ Y ^ i , f ( x i , y k ) ≥ a } ∣ ) s(x_i)=argmin_{a\in R}(|\{y_j | y_j \in Y_i, f(x_i, y_j) \leq a\}|+|\{y_k|y_k \in \hat Y_i, f(x_i, y_k) \geq a\}|) s(xi)=argminaR({yjyjYi,f(xi,yj)a}+{ykykY^i,f(xi,yk)a})表示模型的输出目标,对每个样本,它以最小误差将 Y Y Y划分为相关和不相关。

2.4 评价指标

2.4.1 分类评价指标
  1. Examples-based metrics 基于样本评价指标
    通过分别评估学习系统在每个测试示例上的性能,然后返回整个测试集的平均值
  2. Label-based metrics 基于标签评价指标
    通过分别评估每个类标签上的学习系统性能,然后返回所有类标签上的宏/微观平均值
2.4.2 排序评价指标

在这里插入图片描述
下面对每个指标进行介绍
基于样本的评价指标

  1. Subset Accuracy(衡量正确率,预测的样本集和真实的样本集完全一样就是正确)
    s u b s e t a c c ( h ) = 1 p ∑ i = 1 p [ h ( x i ) = Y i ] subsetacc(h) = \frac{1}{p} \sum_{i=1}^p[h(x_i) = Y_i] subsetacc(h)=p1i=1p[h(xi)=Yi]
  2. Hamming Loss(衡量的是错分的标签比例,正确标签没有被预测以及错误标签被预测的标签占比)
    h l o s s ( h ) = 1 p ∑ i = 1 p ∣ h ( x i ) Δ Y i ∣ hloss(h) = \frac{1}{p}\sum_{i=1}^p|h(x_i)\Delta Y_i| hloss(h)=p1i=1ph(xi)ΔYi
    Δ \Delta Δ表示两个集合的对称差,返回只在其中一个集合出现的那些值。
  3. Accuracy, Precision, Recall, F值(单标签学习中准确率,精准率,召回率,F值)
    A c c u r a c y ( h ) = 1 p ∑ i = 1 p ∣ h ( x i ) ∩ y i ∣ ∣ h ( x i ) ∪ y i ∣ Accuracy(h)=\frac{1}{p}∑_{i=1}^p\frac{∣h(x_i)∩y_i∣}{|h(x_i)∪y_i|} Accuracy(h)=p1i=1ph(xi)yih(xi)yi
    P r e c i s i o n ( h ) = 1 p ∑ i = 1 p Y i ∩ h ( x i ) h ( x i ) Precision(h) = \frac{1}{p}\sum_{i=1}^p\frac{Y_i \cap h(x_i)}{h(x_i)} Precision(h)=p1i=1ph(xi)Yih(xi)
    R e c a l l = 1 p ∑ i = 1 p Y i ∩ h ( x i ) Y i Recall = \frac{1}{p}\sum_{i=1}^p\frac{Y_i \cap h(x_i)}{Y_i} Recall=p1i=1pYiYih(xi)
    F = 1 + β 2 ⋅ P r e c i s i o n ( h ) ⋅ R e c a l l ( h ) β 2 ⋅ ( P r e c i s i o n ( h ) + R e c a l l ( h ) ) F = \frac{1 + \beta^2 \cdot Precision(h) \cdot Recall(h)}{\beta^2 \cdot (Precision(h) + Recall(h))} F=β2(Precision(h)+Recall(h))1+β2Precision(h)Recall(h)
  4. one-error(“预测到的最相关的标签” 不在 “真实标签”中的样本占比。值越小,表现越好)
    o n e − e r r o r ( f ) = 1 p ∑ i = 1 p [ a r g m a x y ∈ Y f ( x i , y ) ∉ Y i ] one-error(f) = \frac{1}{p}\sum_{i=1}^p[argmax_{y \in Y}f(x_i, y)\notin Y_i] oneerror(f)=p1i=1p[argmaxyYf(xi,y)/Yi]
  5. Coverage(值越小,表现越好)
    c o v e r a g e ( f ) = 1 p ∑ i p m a x y ∈ Y i r a n k f ( x i , y ) − 1 coverage(f) = \frac{1}{p}\sum_{i}^p max_{y \in Y_i } rank_{f_(x_i,y)}-1 coverage(f)=p1ipmaxyYirankf(xi,y)1
  6. Ranking loss(值越小,表现越好)
    r l o s s ( f ) = 1 p ∑ i = 1 p 1 ∣ Y i ∣ ∣ Y ^ i ∣ ∣ { ( y ′ , y ′ ′ ) ∣ f ( x i , y ′ ) ≤ f ( x i , y ′ ′ ) , ( y ′ , y ′ ′ ) ∈ Y i × Y ^ i } ∣ rloss(f) = \frac{1}{p}\sum_{i=1}^p \frac{1}{|Y_i| |\hat Y_i|} |\{(y',y^{''})|f(x_i, y') \leq f(x_i, y^{''}),(y', y^{''}) \in Y_i \times \hat Y_i \}| rloss(f)=p1i=1pYi∣∣Y^i1{(y,y′′)f(xi,y)f(xi,y′′),(y,y′′)Yi×Y^i}
  7. Average Precision(度量比特定标签更相关的那些标签的排名的占比,越大越好)
    a v g p r e c ( f ) = 1 p ∑ i = 1 p 1 ∣ Y i ∣ ∑ y ∈ Y i ∣ y ′ ∣ r a n k f ( x , y ′ ) ≤ r a n k f ( x i , y ) , y ′ ∈ Y i ∣ r a n k f ( x i , y ) avgprec(f)=\frac{1}{p}\sum_{i=1}^p\frac{1}{|Y_i|}\sum_{y \in Y_i}\frac{|{y'|rank_f(x,y') \leq rank_f(x_i,y),y'\in Y_i }|}{rank_{f(x_i,y)}} avgprec(f)=p1i=1pYi1yYirankf(xi,y)yrankf(x,y)rankf(xi,y),yYi
    基于标签的评价指标
  8. 分类评价指标
    对于每个标签,都可以得到 T P , F P , T N , F N TP, FP, TN, FN TP,FP,TN,FN
    在这里插入图片描述
    B ( T P j , F P j , T N j , F N j ) B(TP_j, FP_j, TN_j, FN_j) B(TPj,FPj,TNj,FNj)表示特定的二元分类度量 B ∈ { A c c u r a c y , P r e c i s i o n , R e c a l l , F β } B \in \{Accuracy, Precision, Recall, F^{\beta}\} B{Accuracy,Precision,Recall,Fβ},label-based的分类可以通过两种方式得到
  • Macro-averaging(宏平均,先对单个标签下的数量特征计算得到常规指标,再对多个标签取平均)
    B m a c r o ( h ) = 1 q ∑ j = 1 q B ( T P j , F P j , T N j , F N j ) B_{macro(h)} = \frac{1}{q}\sum_{j=1}^qB(TP_j,FP_j,TN_j,FN_j) Bmacro(h)=q1j=1qB(TPj,FPj,TNj,FNj)
  • Micro-averaging(微平均,对数据集中的每一个实例不分类别进行统计建立全局混淆矩阵,然后计算相应指标)
    B m i c r o ( h ) = B ( ∑ j = 1 q T P j , ∑ j = 1 q F P j , ∑ j = 1 q T N j , ∑ j = 1 q F N j ) B_{micro(h)} = B(\sum_{j=1}^q TP_j, \sum_{j=1}^q FP_j, \sum_{j=1}^q TN_j, \sum_{j=1}^q FN_j) Bmicro(h)=B(j=1qTPj,j=1qFPj,j=1qTNj,j=1qFNj)
  1. 排序评价指标 rank metric
  • AUC-macro(“排序正确”的数据对的占比,先对单个标签计算,再平均)
    A U C m a c r o = 1 q ∑ j = 1 q A U C j = 1 q ∑ i = 1 q ∣ { ( x ′ , x ′ ′ ) ∣ f ( x ′ , y j ) ≥ f ( x ′ , y j ) , ( x ′ , x ′ ′ ) ∈ Z j × Z ^ j } ∣ ∣ Z j ∣ ∣ Z ^ j ∣ AUC_{macro} = \frac{1}{q}\sum_{j=1}^q AUC_j = \frac{1}{q}\sum_{i=1}^q\frac{|\{(x', x'')|f(x',y_j) \geq f(x',y_j), (x', x'') \in Z_j \times \hat Z_j\}|}{|Z_j||\hat Z_j|} AUCmacro=q1j=1qAUCj=q1i=1qZj∣∣Z^j{(x,x′′)f(x,yj)f(x,yj),(x,x′′)Zj×Z^j}
    Z j = { x i ∣ y j ∈ Y i , 1 ≤ i ≤ p } Z_j = \{x_i|y_j \in Y_i, 1\leq i \leq p\} Zj={xiyjYi,1ip}表示的是含有 y j y_j yj标签的样本数量,
    Z ^ j = { x i ∣ y j ∉ Y i , 1 ≤ i ≤ p } \hat Z_j = \{x_i|y_j \notin Y_i, 1\leq i \leq p\} Z^j={xiyj/Yi,1ip}表示的是不含有 y j y_j yj标签的样本数量

  • AUC-micro(“排序正确”的数据对的占比,把多个标签考虑在内来计算占比)
    A U C m i c r o = 1 q ∑ j = 1 q A U C j = 1 q ∑ i = 1 q ∣ { ( x ′ , x ′ ′ , y ′ , y ′ ′ ) ∣ f ( x ′ , y ′ ) ≥ f ( x ′ ′ , y ′ ′ ) , ( x ′ , y ′ ) ∈ S + , ( x ′ ′ , y ′ ′ ) ∈ S − } ∣ ∣ S + ∣ ∣ S − ∣ AUC_{micro} = \frac{1}{q}\sum_{j=1}^q AUC_j = \frac{1}{q}\sum_{i=1}^q\frac{|\{(x', x'', y', y'')|f(x',y') \geq f(x'',y''),(x',y')\in S^+,(x'', y'') \in S^-\}|}{|S^+||S^-|} AUCmicro=q1j=1qAUCj=q1i=1qS+∣∣S{(x,x′′,y,y′′)f(x,y)f(x′′,y′′),(x,y)S+,(x′′,y′′)S}
    S + = ( x i , y ) ∣ y ∈ Y i , 1 ≤ i ≤ p S^+ = {(x_i, y)|y\in Y_i, 1 \leq i \leq p} S+=(xi,y)yYi,1ip表示的是相关的样本标签对,
    S − = ( x i , y ) ∣ y ∉ Y i , 1 ≤ i ≤ p S^- = {(x_i, y)|y\notin Y_i, 1 \leq i \leq p} S=(xi,y)y/Yi,1ip表示的是不相关的样本标签对

三、多分类学习算法

两种学习方法:

  1. 问题转换法(让数据适应算法)
    把多标签分类转为其他成熟的场景。代表算法有一阶binary revevance和高阶方法classifier chains。他们将多标签问题转为二分类。二阶方法有calibrated label ranking。将多标签分类转为标签排序,高阶方法radom k-labelset将多标签学习转为多分类问题。
  2. 算法改编方法(让算法适应数据)
    更改学习技术来应对多标签数据。代表算法包括一阶方法ML-knn改编k近邻,一阶方法ML-DT改编决策树,二阶方法Rank-SVM改编核技巧,二阶方法CML改编information-theretic techniques。
    在这里插入图片描述

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

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

相关文章

日本服务器:确保其稳定性的几个要点

​  在租用日本服务器时&#xff0c;用户们大多一定会关注它的稳定性&#xff0c;其实这些顾及都是正常的。毕竟&#xff0c;网站要想正常运行&#xff0c;保障服务器稳定是关键。本文将讨论有关如何保障日本服务器稳定性的一些有用技巧&#xff0c;希望对您有所帮助。 1.注重…

SpringBoot 启动加载器解析

计时器介绍 启动加载器实战 实现方式1 实现CommandLineRunner接口重写run方法通过Order进行排序 示例: Component Order(1) public class FirstCommandlineRunner implements CommandLineRunner {Overridepublic void run(String... args) throws Exception {System.out.pr…

一篇上手机器学习

一、上手机器学习的几个阶段 上手机器学习&#xff0c;第一步当然是看完我的这篇文章啦~&#xff0c;然后就按以下步骤来就可以了&#xff1a; 学习Python编程语言&#xff1a;Python是一种易于学习的高级编程语言&#xff0c;广泛应用于机器学习领域。你可以通过学习Python的…

第三节、项目支付功能实战-微信支付平台接入流程,小程序账号注册、商户注册

简介 本篇介绍小程序的注册流程、商户平台的注册流程、以及小程序和商户平台如何进行绑定。 微信小程序注册 由于项目中使用了小程序进行支付&#xff0c;所以首先来注册小程序。小程序注册网站如下&#xff1a;小程序注册地址 小程序账号注册 1、链接页面点击“前往注册”…

carla安装中的问题

1、carla carla安装完后&#xff0c;需要使用python调用API去更换地图&#xff0c;增加车辆等 使用Python调用API过程中可能会报错&#xff1a; 报错1&#xff1a;carla API&#xff08;Carla包&#xff09;版本不对 **解决方法&#xff1a;**需要将这个目录下的三个文件拷…

数学建模算法

算法部分 1. 评价类模型2. TOPSIS3. 线性规划4. 聚类分析5. 预测模型6. 拉伊达准则(对异常值进行剔除)7. 数据拟合8. 图论代码练习1. 模拟圆周率2. 斐波那契数列3. 四只鸭子落在一个圆中概率4. 方程2: y" uy y,初值y(0) 1,y(0) 0 算法讲解 matlab代码大全 1. 评价类模型…

【Python】修改pip 默认安装位置

使用pip安装的时候&#xff0c;一般是默认安装在c盘里的。这样做很容易会让c盘的文件堆满。那么如何让pip安装的包放入d盘呢&#xff1f; 查看pip默认安装的位置 在cmd里输入python -m site&#xff0c;这里可以看到&#xff0c;安装包会默认下载到c盘中 从这里可以看到&am…

【Spring教程15】Spring框架实战:详解解读AOP的工作流程和AOP的核心概念

目录 1 AOP工作流程2 AOP核心概念 欢迎大家回到《 Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0c;如果您对Maven还很陌生&#xff0c;请移步本人的博文《 如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》&#xff0c;本文…

如何使用cpolar+Inis在Ubuntu系统快速搭建本地博客网站公网可访问

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

AspNetCore 中使用 Knife4jUI 更加友好的Swagger界面

&#x1f680;介绍 aspnetcore.knife4j是一个基于.NET Core平台的Swagger UI库&#xff0c;它提供了API文档的生成和管理功能。这个库的前身是swagger-bootstrap-ui&#xff0c;在Java项目中广泛使用&#xff0c;由于其优秀的界面和易用性被许多开发者所推崇。现在&#xff0c…

LV.13 D2 开发板启动流程 学习笔记

一、开发板启动过程 EMMC&#xff1a;相当于电脑的外存&#xff0c;断电不丢失 开发板上电后首先运行SOC内部iROM中固化的代码(BL0)&#xff0c;这段代码先对基本的软硬件环境(时钟等...)进行初始化&#xff0c;然后再检测拨码开关位置获取启动方式&#xff0c;然后再将对应存储…

基于SSM+MySQL学生宿舍管理系统的设计与实现(源码+数据库+文档)

摘 要 近年来&#xff0c;随着计算机技术的不断发展和运用&#xff0c;许多实际问题都得到了较好地解决。随着现代社会对企业经营的需求日益增长&#xff0c;企业的无纸办公也逐渐得到了推广。本学生宿舍管理系统的设计开发&#xff0c;目标就是解决宿舍管理复杂的人为管理&a…

[23] Self-conditioned Image Generation via Generating Representations

[paper | code] 用生成对象本身作为控制信号&#xff0c;实现无条件图像生成。训练阶段。Step1&#xff1a;用预训练模型&#xff08;例如&#xff1a;Moco v3&#xff09;提取生成对象的特征编码&#xff1b;Step2&#xff1a;基于特征编码&#xff0c;训练一个扩散模型RDM&a…

pycharm手动安装包

1.下载对应的包 TTS PyPI 2.手动解压&#xff0c;找到文件放到pycharm对应项目的lib文件夹中 以TTS包为例&#xff0c;找到下载并解压的包中的2个文件&#xff0c;一个名称一个info结尾 3.放到项目的lib文件夹中 eg&#xff1a;路径&#xff1b;C:\doc\myProject\speaker\venv…

Android View的 getHeight 和 getMeasuredHeight 的区别

前言 先简单复习一下Android View 的 绘制顺序&#xff1a; 1、onMeasure&#xff08;测量&#xff09;&#xff0c;先根据构造器传进来的LayoutParams&#xff08;布局参数&#xff09;&#xff0c;测量view宽高。 2、onLayout&#xff08;布局&#xff09;&#xff0c;再根…

SQL进阶 | 自连接

概述 SQL的自连接是指在一个SQL表中&#xff0c;使用自身表格中的实例进行联接并查询的操作。自连接通常使用别名来标识一个表格&#xff0c;在自连接中&#xff0c;表格被视为两个不同的表格&#xff0c;并分别用不同的别名来标识。然后&#xff0c;在WHERE子句中使用这些别名…

二十、FreeRTOS之Tickless低功耗模式

本节需要掌握以下内容&#xff1a; 1&#xff0c;低功耗模式简介&#xff08;了解&#xff09; 2&#xff0c; Tickless模式详解&#xff08;熟悉&#xff09; 3&#xff0c; Tickless模式相关配置项&#xff08;掌握&#xff09; 4&#xff0c;Tickless低功耗模式实验&…

自定义异步任务管理器和线程

import com.lancoo.common.utils.Threads; import com.lancoo.common.utils.spring.SpringUtils;import java.util.TimerTask; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit;/*** 异步任务管理器* * author lancoo*/ public c…

操作系统大会 openEuler Summit 2023即将召开,亮点不容错过

【12月11日&#xff0c;北京】数字化、智能化浪潮正奔涌而来。操作系统作为数字基础设施的底座&#xff0c;已经成为推动产业数字化、智能化发展的核心力量&#xff0c;为数智未来提供无限可能。12月15-16日&#xff0c;以“崛起数字时代 引领数智未来”为主题的操作系统大会 &…

〖Python网络爬虫实战㊷〗- 极验滑块介绍(四)

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…