机器学习之逻辑回归、一(学习理论)

news2024/9/21 10:51:59

P(D|θ)

文章目录

  • 一、前言
  • 二、逻辑回归的由来
  • 三、到底什么是逻辑回归
    • (1). 先对逻辑回归有个大概感觉
    • (2).逻辑回归与线性回归的区别
    • (3).sigmoid函数
    • (4)目标函数:似然函数
    • (4)问题转化(让问题简单起来)
    • (5)逻辑回归的目标函数,代价函数,损失函数
    • (6)为什么这么问题转化
    • (7)使用梯度下降来计算求解
      • 1. 什么是交叉熵损失函数
      • 2. 梯度下降
      • 3. 计算公式
  • 四、逻辑回归优缺点
  • 五、参考文献

一、前言

逻辑回归,看似容易,学习起来真的是挺复杂,涉及的东西挺多。越是学习越觉得盲区越多。遂,先懂是什么,接着联系实践,至于更深层理论,以后慢慢学习。

二、逻辑回归的由来

逻辑回归是由19世纪末到20世纪初的数学家皮尔斯(Charles Sanders Peirce)和逻辑学家沃德(John Ward)提出的。最初,逻辑回归被用于预测二元事件(即成功或失败,真或假等)。它使用线性回归模型来建立一个分类器,并将输出映射到概率值(也称为“sigmoid函数”)。逻辑回归算法可以通过对数据进行拟合,找到一组最优参数,从而得到一个能够准确分类新数据的模型。
随着时间的推移,逻辑回归在诸如医学、金融、社会科学等领域中得到了广泛应用。

三、到底什么是逻辑回归

(1). 先对逻辑回归有个大概感觉

  1. 逻辑回归的本质是利用数学模型对数据进行建模,从而实现分类任务。具体来说,逻辑回归通过构建一个线性模型,并将输出映射到概率值,来对输入数据进行分类。
  2. 在训练阶段,逻辑回归使用交叉熵损失函数来衡量模型预测结果与真实结果之间的差异,并利用梯度下降等优化算法调整模型参数,使得损失函数最小化。最终,我们可以得到一个能够准确分类新数据的逻辑回归模型。
  3. 逻辑回归的本质不仅是一个分类器,同时也是一种推断方法。它的特点在于能够输出概率值,可以用于判断类别之间的相对可能性,还可以通过改变输出阈值来调整分类结果的灵敏度。

(2).逻辑回归与线性回归的区别

逻辑回归和线性回归都是常见的机器学习算法,但是它们的应用场景、模型假设、损失函数等方面存在很大区别。

  1. 线性回归是用于建立输入特征和连续目标变量之间的关系模型。它假设输入特征与目标变量之间存在线性关系,并使用最小二乘法等方法来尽可能地拟合数据点。而逻辑回归是用于建立输入特征和离散目标变量之间的关系模型。它假设输入特征与目标变量之间存在一种非线性的关系,我们需要通过对数据进行拟合,找到最优的参数来构建一个分类器
  2. 两者的模型假设也不同。线性回归认为目标变量的误差服从正态分布,即在给定输入特征时,目标变量服从均值为 θ T x \theta^Tx θTx正态分布;而逻辑回归假设目标变量服从伯努利分布,即当输入特征为 x x x时,目标变量为10的概率分别为 h θ ( x ) h_{\theta}(x) hθ(x) 1 − h θ ( x ) 1-h_{\theta}(x) 1hθ(x)
  3. 它们的损失函数也不同。线性回归通常使用平方损失函数衡量预测结果与真实值之间的差距;而逻辑回归通常使用交叉熵损失函数来衡量模型预测结果与真实结果之间的差异。

(3).sigmoid函数

为什么要说下这个函数:

  1. sigmoid函数是逻辑回归算法的核心之一,它将线性预测输出映射到概率值。具体来说,sigmoid函数可以将任何实数映射到区间(0, 1)内的一个概率值,
    其公式为: h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x) = \frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+eθTx1
  2. 在逻辑回归中,我们使用sigmoid函数将线性预测转换为概率值,并将这些概率值作为目标变量为1的概率估计。例如,当sigmoid函数的输出值为0.8时,代表模型预测输入 x x x属于第一类别的概率为0.8,属于第二类别的概率为0.2。
  3. 在模型训练过程中,我们通过最大化似然函数或最小化交叉熵损失函数来学习逻辑回归模型参数,从而得到一个能够准确分类新数据的模型。sigmoid函数的使用使得模型能够输出概率值,同时也保证了输出结果的可导性,方便利用梯度下降等优化算法进行模型训练。

因此:学习逻辑回归之前,绕不开这个函数。

在这里插入图片描述
通过代码实现就是:

import numpy as np
import matplotlib.pyplot as plt
def sigmoid(z):
    return 1. / (1. + np.exp(-z))

#画出sigmoid函数图像
x = np.linspace(-10,10,100)
y = sigmoid(x)
plt.plot(x,y)
plt.title("sigmoid函数图像")
plt.show()

在这里插入图片描述

参数说明:z是一个矩阵,θ是参数列向量(要求解的),x是样本列向量(给定的数据集)。θ^T表示θ的转置。g(z)函数实现了任意实数到[0,1]的映射,这样我们的数据集([x0,x1,…,xn]),不管是大于1或者小于0,都可以映射到[0,1]区间进行分类。hθ(x)给出了输出为1的概率。比如当hθ(x)=0.7,那么说明有70%的概率输出为1。输出为0的概率是输出为1的补集,也就是30%。

(4)目标函数:似然函数

在(3)里面有介绍到:sigmoid函数是一种常用的激活函数,它将任何实数映射到区间(0, 1)内的一个概率值。sigmoid函数的运算结果就是这个概率值

具体来说,sigmoid函数的公式为: h ( x ) = 1 1 + e − x h(x) = \frac{1}{1+e^{-x}} h(x)=1+ex1。当输入 x x x为任意实数时,sigmoid函数会将其转换为一个介于0和1之间的概率值,表示在当前条件下事件发生的可能性大小。例如,当sigmoid函数的输入值为5时,其输出值为0.9933,代表事件发生的概率相对较大。而当sigmoid函数的输入值为-5时,其输出值为0.0067,代表事件发生的概率相对较小

而且

逻辑回归假设目标变量服从伯努利分布,即当输入特征为 x x x时,目标变量为10的概率分别为 h θ ( x ) h_{\theta}(x) hθ(x) 1 − h θ ( x ) 1-h_{\theta}(x) 1hθ(x)


在这里插入图片描述

再有就是

Logistic回归模型的目标是从输入变量预测输出变量的概率,即给定输入变量x,模型输出的是对应的输出变量y取值为1概率P(y=1|x),这是一个典型条件概率表示。

那么就可以有:

在这里插入图片描述

这里的变形,可以将z当做要求得结果,使用对数,将上面的个g(z)内容带入到这个公式计算化简就明白了,ln()的结果就是z

接着假设后验概率

在这里插入图片描述在这里插入图片描述在这里插入图片描述

如此我们就得到了似然函数

(4)问题转化(让问题简单起来)

对于上面的似然函数,可以根据,最大似然估计和牛顿法等都可以计算出θ

但是对于工程师来说,我更倾向于能快速工程化的解决方法:
逻辑回归的目标函数通常是最大化似然函数最小化交叉熵损失函数。这两种方法本质上是等价的,因此在实际应用中通常选择一种比较方便计算的方法。

对于二元分类问题而言,我们可以将样本的真实类别标签表示为一个one-hot编码的向量,比如[0, 1]代表样本属于第二类别[1, 0]代表样本属于第一类别;而模型输出的结果通常是一个概率值,例如0.7代表模型认为该样本属于第二类别的概率为0.7。

最大化似然函数的方法是,假设训练集中的样本都是独立同分布的,那么似然函数就可以写成所有样本概率的乘积。我们需要找到一组模型参数 θ \theta θ,使得给定 θ \theta θ的条件下,观测到训练数据的概率最大。这个过程可以通过最大化似然函数来完成,其数学形式为:

ℓ ( θ ) = ∏ i = 1 m ( h θ ( x i ) ) y i ( 1 − h θ ( x i ) ) 1 − y i , \ell(\theta) = \prod_{i=1}^{m} (h_\theta(x_i))^{y_i} (1-h_\theta(x_i))^{1-y_i}, (θ)=i=1m(hθ(xi))yi(1hθ(xi))1yi,

其中 h θ ( x i ) h_\theta(x_i) hθ(xi)是模型在输入 x i x_i xi时输出的预测值也就是上边我们计算的p y i y_i yi是样本 i i i的真实类别标签, θ \theta θ是模型的参数, m m m是样本数量。求解的目标是最大化似然函数,即:

θ ∗ = arg ⁡ max ⁡ θ ℓ ( θ ) . \theta^* = \arg\max_\theta \ell(\theta). θ=argθmax(θ).

将似然函数取对数后,上述问题等价于最小化交叉熵损失函数,其数学形式为:

J ( θ ) = − 1 m ∑ i = 1 m [ y i l o g ( h θ ( x i ) ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ] , J(\theta) = -\frac{1}{m}\sum_{i=1}^{m} [y_i log(h_\theta(x_i)) + (1-y_i)log(1-h_\theta(x_i))], J(θ)=m1i=1m[yilog(hθ(xi))+(1yi)log(1hθ(xi))],

其中 h θ ( x i ) h_\theta(x_i) hθ(xi)是模型在输入 x i x_i xi时输出的预测值 y i y_i yi是样本 i i i真实类别标签 θ \theta θ是模型的参数 m m m样本数量。求解的目标是最小化交叉熵损失函数,即:

θ ∗ = arg ⁡ min ⁡ θ J ( θ ) . \theta^* = \arg\min_\theta J(\theta). θ=argθminJ(θ).

因此,逻辑回归的目标函数可以是最大化似然函数或最小化交叉熵损失函数。这两种方法本质上是等价的,但在实际应用中通常选择一种比较方便计算的方法。

(5)逻辑回归的目标函数,代价函数,损失函数

逻辑回归是一种二分类算法,目标是根据输入特征预测每个样本属于正类还是负类。在逻辑回归中,我们使用逻辑函数(或称为sigmoid函数)将连续的预测值转换为0或1的概率值。

  1. 目标函数是在训练过程中需要最小化的函数,它是模型要优化的量。对于逻辑回归来说,目标函数通常是负对数似然函数。

  2. 代价函数也称为损失函数或误差函数,它表示了模型预测值与真实值之间的差距。对于逻辑回归来说,代价函数通常是平均交叉熵损失。

  3. 目标函数和代价函数之间的区别是,目标函数是在整个数据集上计算的,而代价函数是在单个样本上计算的。目标函数用于指导模型优化的方向,而代价函数用于衡量模型预测的准确程度。

以下是逻辑回归中目标函数和代价函数的公式:

目标函数: J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta) = -\frac{1}{m} \sum_{i=1}^{m}[y^{(i)}\log(h_{\theta}(x^{(i)})) + (1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))] J(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

其中, m m m表示样本数量, y ( i ) y^{(i)} y(i)表示第 i i i个样本的真实标签(0或1), h θ ( x ( i ) ) h_{\theta}(x^{(i)}) hθ(x(i))表示模型预测第 i i i个样本为正类的概率值。

代价函数: J ( θ ) = − [ y log ⁡ ( h θ ( x ) ) + ( 1 − y ) log ⁡ ( 1 − h θ ( x ) ) ] J(\theta) = -[y\log(h_{\theta}(x)) + (1-y)\log(1-h_{\theta}(x))] J(θ)=[ylog(hθ(x))+(1y)log(1hθ(x))]

其中, y y y是指单个样本的真实标签, h θ ( x ) h_{\theta}(x) hθ(x)是指模型预测该样本为正类的概率值。

损失函数(通常等同于代价函数): E ( θ ) = J ( θ ) E(\boldsymbol{\theta}) = J(\boldsymbol{\theta}) E(θ)=J(θ)

这里的目标函数代价函数都采用了交叉熵函数,但它们的计算对象不同。目标函数用来衡量模型整体的性能,在训练过程中需要最大化它;而代价函数则用来衡量单个样本的预测误差,我们需要最小化代价函数来优化模型参数。损失函数通常等同于代价函数,也是用来衡量整个模型的性能。

总的来说,目标函数和代价函数都是用来衡量预测结果与真实结果之间的差异,但它们所关注的内容不同。在训练模型时,我们需要最大化目标函数以使模型性能更好,同时通过梯度下降算法最小化代价函数以调整模型参数。

(6)为什么这么问题转化

逻辑回归的目标是最大化似然函数,即找到一个模型参数 θ \theta θ,使得在给定特征下,观测数据集中所有正样本的条件概率乘积与负样本的条件概率乘积之和最大

然而,直接求解这个似然函数并不容易,因为这个函数中包含了多个对数指数运算。为了方便求解,我们通常采用对数似然,将原始似然函数转化成一个更方便计算的形式

对数似然函数可以表示为:

L ( θ ) = ∑ i = 1 m [ y ( i ) log ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] L(\theta) = \sum_{i=1}^m[y^{(i)}\log h_{\theta}(x^{(i)}) + (1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))] L(θ)=i=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

其中, y ( i ) y^{(i)} y(i)表示第 i i i个样本的真实标签(0或1), h θ ( x ( i ) ) h_{\theta}(x^{(i)}) hθ(x(i))表示模型预测第 i i i个样本为正类的概率值。

我们需要最大化对数似然函数,相当于最小化对数似然函数的相反数的平均值

J ( θ ) = − 1 m L ( θ ) J(\theta) = -\frac{1}{m}L(\theta) J(θ)=m1L(θ)

由于对数函数单调递增的,所以最大化对数似然函数等价于最小化其相反数,即最小化交叉熵损失函数

J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta) = -\frac{1}{m} \sum_{i=1}^{m}[y^{(i)}\log(h_{\theta}(x^{(i)})) + (1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))] J(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

因此,逻辑回归算法目标最小化交叉熵损失函数,这样可以方便地使用梯度下降等优化算法求解模型参数 θ \theta θ,使得模型预测的结果尽可能接近真实值。

(7)使用梯度下降来计算求解

1. 什么是交叉熵损失函数

详细的推导过程

2. 梯度下降

梯度下降推导

3. 计算公式

交叉熵损失函数通常使用梯度下降等最优化算法来进行求解。具体而言,我们需要计算损失函数关于模型参数 θ \theta θ的偏导数,然后利用梯度下降等方法来调整参数 θ \theta θ,以最小化损失函数。

对于二元分类问题而言,交叉熵损失函数的表达式如下:

J ( θ ) = − 1 m ∑ i = 1 m y i l o g ( h θ ( x i ) ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) , J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} y_i log(h_\theta(x_i)) + (1-y_i)log(1-h_\theta(x_i)), J(θ)=m1i=1myilog(hθ(xi))+(1yi)log(1hθ(xi)),

其中 y i y_i yi是样本 i i i的真实类别标签(即目标变量), h θ ( x i ) h_\theta(x_i) hθ(xi)是模型在输入 x i x_i xi时输出的预测值, θ \theta θ是模型的参数, m m m是样本数量。

为了最小化损失函数 J ( θ ) J(\theta) J(θ),我们需要计算它关于模型参数 θ j \theta_j θj的偏导数,公式如下:

∂ J ( θ ) ∂ θ j = 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i j . \frac{\partial J(\theta)}{\partial \theta_j} = \frac{1}{m} \sum_{i=1}^m (h_\theta(x_i) - y_i)x_{ij}. θjJ(θ)=m1i=1m(hθ(xi)yi)xij.

在这里插入图片描述

其中 x i j x_{ij} xij表示样本 i i i的第 j j j个特征值, h θ ( x i ) h_\theta(x_i) hθ(xi)是模型在输入 x i x_i xi时输出的预测值。

利用上述偏导数公式,我们可以逐步更新模型参数,直至损失函数收敛。具体地,可以使用批量梯度下降算法、随机梯度下降算法、小批量梯度下降算法等方法进行参数更新。需要注意的是,优化算法的选择会影响模型的训练速度和精度,因此需要根据实际情况进行选择。

四、逻辑回归优缺点

逻辑回归是一种经典的分类算法,其优缺点如下:

优点

  1. 简单易懂:逻辑回归是一种简单且易于理解的算法,不需要复杂的数学知识,在实际应用中得到了广泛的应用。

  2. 计算效率高:逻辑回归模型的训练和预测速度都很快,适合处理大规模数据。

  3. 可解释性强:逻辑回归模型能够给出每个特征的权重,可以解释变量之间的关系。

  4. 适用范围广:逻辑回归可以处理二分类问题,也可以通过一些技巧将其扩展到多分类问题上。

  5. 鲁棒性好:逻辑回归对异常值的鲁棒性较好,不会对模型产生很大影响。

缺点

  1. 假设线性可分:逻辑回归假设样本数据是线性可分的,即可以通过一条直线或超平面进行分类。如果数据集非线性可分,则逻辑回归表现会比较差。

  2. 容易欠拟合:当特征之间相关性较强或特征数量很多时,逻辑回归容易出现欠拟合问题。

  3. 不能很好地处理大量特征:当特征数量非常大时,逻辑回归需要更多的计算资源和训练时间。

  4. 对缺失值敏感:如果数据集存在缺失值或异常值,会影响逻辑回归模型的性能。

总结

这个学习起来还是挺复杂的,先有个大概认知,明天敲一敲代码,梳理下里面逻辑

五、参考文献

[1].https://blog.csdn.net/iqdutao/article/details/109478633
[2].https://blog.csdn.net/iqdutao/article/details/107174240
[3].https://blog.csdn.net/lgb_love/article/details/80592147
[4].https://blog.csdn.net/c406495762/article/details/77723333
[5].https://zhuanlan.zhihu.com/p/128102048
[6].https://zhuanlan.zhihu.com/p/74874291

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

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

相关文章

有关于ChatGPT你需要了解的内容应该都在这了,看这一篇就够啦

在国内用了很长一段时间的ChatGPT,每次跟小白,哪怕是用ChatGPT的人交流的时候,都感觉解释不清,正好今天周末,给大家整理一篇关于ChatGPT的科普文,想要了解或使用ChatGPT的人,一定要看完~~~ 什么…

内网渗透(CS与MSF联动) ATTCK实战系列一红队实战(一)

靶场下载地址: http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ 拓扑图 环境配置 win7网络配置情况: 外网 内网域网络 Win2K3网络配置情况: 内网域网络 win2008(域控)网络配置情况: 内网域网络 渗透过程 开始之前,先到win7上开启phpstudy 打开网页&#…

安装 kubeadm

安装 kubeadm、kubelet 和 kubectl 基于Red Hat的发行版本 1、写入软件源 cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] nameKubernetes baseurlhttps://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled1 gpgcheck1 …

盘点谷歌26个插件生态;WPS AI上新与测评;Prompt中文指南;ChatGPT最新联网插件评测 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『Google 最新发布的26个插件&#xff0c;哪些ChatGPT也有&#xff1f;』插件生态初见端倪 ▢ Google自家生态 (9个)&#xff1a;办公…

CATIA操作经典技巧问答

如何快速知道当前的CATIA作图区上的零件的放大比例? 答:选中TOOLS----->OPTIONS----->VISUALIZATION----> DISPLAY CURRENT SCALE IN PARALLEL, MODE 的选项. 在屏幕的右下方的数值表示当前作图区内的几何体的显示比例。 如何快速定义草图方向? 答:按CTRL键点选在…

Crypto VC 们最近有何动向?7 个工具助你轻松追踪

http://www.btcwbo.com/7289.html 加密 VC 和基金对初创项目的投资收益超过百万美元。它们为具有增长潜力的早期创业公司提供资金、技术支持和专业知识&#xff0c;作为交换&#xff0c;它们将获得这些公司的股份&#xff08;代币&#xff09;。 你可能经常会听到“VC 投了”之…

nacos注册中心源码分析二之服务发现

nacos服务发现 服务发现是客户端发起负载均衡(feign)调用接口的时候内部第一次调用nacos服务端接口的时候去调用的 后续调用基本上都是从客户端的缓存列表里边去取&#xff0c;拿不到才会向服务端发起调用 如果想看这一块代码可以看下ribbion源码分析ribbon源码分析 上一篇&am…

什么是互联网交换中心?为什么它很重要?

互联网交换中心&#xff08;Internet Exchange Point, IXP&#xff09;是为促进互联网骨干网的网间互联和公平竞争而设置的运营商间进行数据网际交换的机构&#xff0c;是为互联网业者提供空间进行网络互连、交换流量和资源的服务场所&#xff0c;互联网业者可以在这里利用机架…

基于自定义知识库回答问题的ChatGPT-

前言 ChatGPT是一个强大的语言模型&#xff0c;利用大规模的自然语言处理和机器学习算法&#xff0c;可以进行自然而流畅的对话&#xff0c;理解自然语言问题和回答&#xff0c;相信在座各位&#xff0c;尤其是程序员的你&#xff0c;肯定不可能还没使用过ChatGPT。 ChatGPT能…

属于开发者的交流,openGauss SIG版本规划工作会议来啦!

想参与SIG组未来半年的规划与工作&#xff1f; 想与开发者们近距离探讨需求与解决方案&#xff1f; 想将您的需求合入到openGauss的下个版本&#xff1f; 想在社区年度Summit上展现成果&#xff1f; 那就不能错过这个属于开发者的交流盛会&#xff01; 社区年度开发者大会…

取用水监测计量标准化建设,加强流量在线监测

方案背景 根据《关于强化取水口取水监测计量的意见》、《十四五”节水型社会建设规划》以及《2022年水资源管理工作要点》等政策要求&#xff0c;为强化水资源管理&#xff0c;做好水资源税改革&#xff0c;构建节水型社会&#xff0c;要全面加强取水计量监测设施建设&#xff…

计算机网络实验(ensp)-​实验2:PP协议及PAP认证

目录 实验报告&#xff1a; 实验操作 1.建立网络拓扑图并开启设备 2.修改路由器名字 1.输入命名&#xff1a;sys 从用户视图切换到系统视图 2.输入命名&#xff1a;sysname 姓名 修改路由器名字 3.重复步骤1和2配置每台路由器 3.抓包 1.点击菜单栏的“数…

计算机图形学-GAMES101-6

一、前情提要 在观察和投影变换的基础上提出了视口变换&#xff0c;最终我们会将【-1,1】^ 3 立方体转换到屏幕空间中去。 当所有图像都在屏幕空间中时&#xff0c;我们就要将所有的图像画在屏幕上&#xff0c;这个过程就是光栅化&#xff0c;光栅化就是简单的在屏幕空间的采样…

独家公布!985/211高校毕业生源数量统计Top10揭晓……

2023&#xff0c;985/211高校硕博毕业生总数约达49W。 这是在各大高校官网、官方公众号统计/整理后得到的数据。可能不完全&#xff0c;但数量已经足够庞大&#xff0c;就业竞争也更为激烈。 为了帮助大家更好地了解这些大学的毕业生源情况&#xff0c;本文将为大家揭晓&#x…

Live800:新消费浪潮涌起,在线客服系统如何“升级”?

时代在发展&#xff0c;舞台下的观众已经逐渐成长。 伴随着时代的快速发展&#xff0c;一方面&#xff0c;消费者的行为习惯和消费决策模式变迁&#xff0c;消费者的心理、兴趣及年龄层发生了巨大变化。另一方面&#xff0c;互联网信息透明化打破行业边界&#xff0c;让消费者…

赛效:如何在线变声改变产品宣传片配音

1&#xff1a;打开网页版腾讯智影并登录账号&#xff0c;点击智能小工具里的“智能变声”。 2&#xff1a;我们页面左侧上传音频。 3&#xff1a;试听变声模板后&#xff0c;选择一个模板&#xff0c;点击右下角“制作变声音频并下载”。 4&#xff1a;变声视频声音生成后&…

FastDeploy之hello world(C++)

文章目录 环境准备获取模型和测试图像准备CMakeList.txt准备C推理代码编译可执行程序运行可执行程序可能遇到的问题参考 环境准备 CUDA > 11.2cuDNN > 8.0python > 3.6Linux(x64) 下载FastDeploy C SDK wget https://bj.bcebos.com/fastdeploy/release/cpp/fastdep…

Unity 判断物体是否在阴影中

文章目录 前言效果视频原理步骤源码总结&#x1f4a2;&#x1f4a2;版权声明 前言 如题所示&#xff0c;今天接到的需求是&#xff1a;Unity 判断物体是否在阴影中 效果视频 链接&#xff1a;https://www.bilibili.com/video/BV1wc411N7KF/?vd_source75bbe3d71b926e90fdfca6…

关于argparse和sys.argv的补充

1: sys.argv参考&#xff1a;(10条消息) Python 中 sys.argv 用法详解_ys.journey的博客-CSDN博客 从命令行输入的参数会被保存到sys.argv 2: argparse: 参考&#xff1a;python命令行解析模块argparse用法小结 - 朴素贝叶斯 - 博客园 (cnblogs.com) 除此以外&#xff1a; …

SpringCloud概述

前言 什么是微服务&#xff1f; ​ 微服务是一种面向服务的架构(SOA)风格&#xff0c;其中&#xff0c;应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是&#xff0c;微服务让你可以同时运行多个独立的应用程序&#xff0c;而这些独立的应用…