当前位置: 首页 > news >正文

用deepseek学大模型05逻辑回归

deepseek.com:逻辑回归的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点,及如何改进解决及改进方法数据推导。

逻辑回归全面解析

一、数学推导

模型定义
逻辑回归模型为概率预测模型,输出 P ( y = 1 ∣ x ) = σ ( w ⊤ x + b ) P(y=1 \mid \mathbf{x}) = \sigma(\mathbf{w}^\top \mathbf{x} + b) P(y=1x)=σ(wx+b),其中 σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1+e^{-z}} σ(z)=1+ez1


1. 目标函数与损失函数

  • 损失函数(交叉熵)
    单个样本的损失:
    L ( y , y ^ ) = − y log ⁡ ( y ^ ) − ( 1 − y ) log ⁡ ( 1 − y ^ ) \mathcal{L}(y, \hat{y}) = -y \log(\hat{y}) - (1-y) \log(1-\hat{y}) L(y,y^)=ylog(y^)(1y)log(1y^)
    其中 y ^ = σ ( w ⊤ x + b ) \hat{y} = \sigma(\mathbf{w}^\top \mathbf{x} + b) y^=σ(wx+b)

    所有样本的平均损失(标量形式):
    J ( w , b ) = − 1 N ∑ i = 1 N [ y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] J(\mathbf{w}, b) = -\frac{1}{N} \sum_{i=1}^N \left[ y_i \log(\hat{y}_i) + (1-y_i) \log(1-\hat{y}_i) \right] J(w,b)=N1i=1N[yilog(y^i)+(1yi)log(1y^i)]

    矩阵形式( X \mathbf{X} X为设计矩阵, y \mathbf{y} y为标签向量):
    J ( w , b ) = − 1 N [ y ⊤ log ⁡ ( σ ( X w + b ) ) + ( 1 − y ) ⊤ log ⁡ ( 1 − σ ( X w + b ) ) ] J(\mathbf{w}, b) = -\frac{1}{N} \left[ \mathbf{y}^\top \log(\sigma(\mathbf{X}\mathbf{w} + b)) + (1-\mathbf{y})^\top \log(1-\sigma(\mathbf{X}\mathbf{w} + b)) \right] J(w,b)=N1[ylog(σ(Xw+b))+(1y)log(1σ(Xw+b))]


2. 梯度下降推导

  • 标量形式梯度
    w j w_j wj求偏导:
    ∂ L ∂ w j = ( y ^ − y ) x j \frac{\partial \mathcal{L}}{\partial w_j} = (\hat{y} - y) x_j wjL=(y^y)xj
    b b b求偏导:
    ∂ L ∂ b = y ^ − y \frac{\partial \mathcal{L}}{\partial b} = \hat{y} - y bL=y^y

  • 矩阵形式梯度
    梯度矩阵为:
    ∇ w J = 1 N X ⊤ ( σ ( X w + b ) − y ) \nabla_{\mathbf{w}} J = \frac{1}{N} \mathbf{X}^\top (\sigma(\mathbf{X}\mathbf{w} + b) - \mathbf{y}) wJ=N1X(σ(Xw+b)y)
    ∂ J ∂ b = 1 N ∑ i = 1 N ( y ^ i − y i ) \frac{\partial J}{\partial b} = \frac{1}{N} \sum_{i=1}^N (\hat{y}_i - y_i) bJ=N1i=1N(y^iyi)


损失函数的设计是机器学习模型的核心环节,它决定了模型如何衡量预测值与真实值的差异,并指导参数优化方向。逻辑回归的损失函数(交叉熵)设计并非偶然,而是基于概率建模、数学优化和信息论的深刻原理。以下从多个角度详细解释其设计逻辑:


一、损失函数的设计逻辑

1. 概率建模的视角

逻辑回归的目标是预测样本属于某一类的概率(二分类)。

  • 假设数据服从伯努利分布
    对单个样本,标签 y ∈ { 0 , 1 } y \in \{0,1\} y{0,1},模型预测的概率为:
    { P ( y = 1 ∣ x ) = y ^ = σ ( w ⊤ x + b ) , P ( y = 0 ∣ x ) = 1 − y ^ . \begin{cases} P(y=1 \mid \mathbf{x}) = \hat{y} = \sigma(\mathbf{w}^\top \mathbf{x} + b), \\ P(y=0 \mid \mathbf{x}) = 1 - \hat{y}. \end{cases} {P(y=1x)=y^=σ(wx+b),P(y=0x)=1y^.
    样本的联合似然函数为:
    L ( w , b ) = ∏ i = 1 N y ^ i y i ( 1 − y ^ i ) 1 − y i . L(\mathbf{w}, b) = \prod_{i=1}^N \hat{y}_i^{y_i} (1 - \hat{y}_i)^{1 - y_i}. L(w,b)=i=1Ny^iyi(1y^i)1yi.

  • 最大化对数似然
    为了便于优化,对似然函数取负对数(将乘法转为加法,凸函数性质不变):
    − log ⁡ L ( w , b ) = − ∑ i = 1 N [ y i log ⁡ y ^ i + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] . -\log L(\mathbf{w}, b) = -\sum_{i=1}^N \left[ y_i \log \hat{y}_i + (1 - y_i) \log (1 - \hat{y}_i) \right]. logL(w,b)=i=1N[yilogy^i+(1yi)log(1y^i)].
    最小化该式等价于最大化似然函数,此即 交叉熵损失

2. 信息论视角

交叉熵(Cross-Entropy)衡量两个概率分布 P P P(真实分布)和 Q Q Q(预测分布)的差异:
H ( P , Q ) = − E P [ log ⁡ Q ] . H(P, Q) = -\mathbb{E}_{P}[\log Q]. H(P,Q)=EP[logQ].
对于二分类问题:

  • 真实分布 P P P:标签 y y y是确定的(0或1),可视为一个 Dirac delta分布
  • 预测分布 Q Q Q:模型输出的概率 y ^ \hat{y} y^
    交叉熵的表达式与负对数似然一致,因此最小化交叉熵等价于让预测分布逼近真实分布。
3. 优化视角:梯度性质
  • 交叉熵 vs 均方误差(MSE)
    若使用 MSE 损失 L = 1 2 ( y − y ^ ) 2 \mathcal{L} = \frac{1}{2}(y - \hat{y})^2 L=21(yy^)2,其梯度为:
    ∂ L ∂ w j = ( y − y ^ ) ⋅ y ^ ( 1 − y ^ ) ⋅ x j . \frac{\partial \mathcal{L}}{\partial w_j} = (y - \hat{y}) \cdot \hat{y} (1 - \hat{y}) \cdot x_j. wjL=(yy^)y^(1y^)xj.
    y ^ \hat{y} y^接近 0 或 1 时(预测置信度高),梯度中的 y ^ ( 1 − y ^ ) \hat{y}(1 - \hat{y}) y^(1y^)趋近于 0,导致 梯度消失,参数更新缓慢。

    交叉熵的梯度为:
    ∂ L ∂ w j = ( y ^ − y ) x j . \frac{\partial \mathcal{L}}{\partial w_j} = (\hat{y} - y) x_j. wjL=(y^y)xj.
    梯度直接正比于误差 ( y ^ − y ) (\hat{y} - y) (y^y),无论预测值大小,梯度始终有效,优化更高效。

4. 数学性质
  • 凸性:交叉熵损失函数在逻辑回归中是凸函数(Hessian矩阵半正定),保证梯度下降能找到全局最优解。
  • 概率校准性:交叉熵强制模型输出具有概率意义(需配合 sigmoid 函数),而 MSE 无此特性。

二、为什么不是其他损失函数?

1. 均方误差(MSE)的缺陷
  • 梯度消失问题(如上述)。
  • 对概率的惩罚不对称:
    y = 1 y=1 y=1时,预测 y ^ = 0.9 \hat{y}=0.9 y^=0.9的 MSE 损失为 0.01 0.01 0.01,而交叉熵损失为 − log ⁡ ( 0.9 ) ≈ 0.105 -\log(0.9) \approx 0.105 log(0.9)0.105
    交叉熵对错误预测(如 y ^ = 0.1 \hat{y}=0.1 y^=0.1 y = 1 y=1 y=1)的惩罚更严厉( − log ⁡ ( 0.1 ) ≈ 2.3 -\log(0.1) \approx 2.3 log(0.1)2.3),符合分类任务需求。
2. 其他替代损失函数
  • Hinge Loss(SVM使用)
    适用于间隔最大化,但对概率建模不直接,且优化目标不同。
  • Focal Loss
    改进交叉熵,解决类别不平衡问题,但需额外调整超参数。

三、交叉熵的数学推导

1. 从伯努利分布到交叉熵

假设样本独立,标签 y ∼ Bernoulli ( y ^ ) y \sim \text{Bernoulli}(\hat{y}) yBernoulli(y^),其概率质量函数为:
P ( y ∣ y ^ ) = y ^ y ( 1 − y ^ ) 1 − y . P(y \mid \hat{y}) = \hat{y}^y (1 - \hat{y})^{1 - y}. P(yy^)=y^y(1y^)1y.
对数似然函数为:
log ⁡ P ( y ∣ y ^ ) = y log ⁡ y ^ + ( 1 − y ) log ⁡ ( 1 − y ^ ) . \log P(y \mid \hat{y}) = y \log \hat{y} + (1 - y) \log (1 - \hat{y}). logP(yy^)=ylogy^+(1y)log(1y^).
最大化对数似然等价于最小化其负数,即交叉熵损失。

2. 梯度推导(矩阵形式)

设设计矩阵 X ∈ R N × D \mathbf{X} \in \mathbb{R}^{N \times D} XRN×D,权重 w ∈ R D \mathbf{w} \in \mathbb{R}^D wRD,偏置 b ∈ R b \in \mathbb{R} bR,预测值 y ^ = σ ( X w + b ) \hat{\mathbf{y}} = \sigma(\mathbf{X}\mathbf{w} + b) y^=σ(Xw+b)
交叉熵损失:
J ( w , b ) = − 1 N [ y ⊤ log ⁡ y ^ + ( 1 − y ) ⊤ log ⁡ ( 1 − y ^ ) ] . J(\mathbf{w}, b) = -\frac{1}{N} \left[ \mathbf{y}^\top \log \hat{\mathbf{y}} + (1 - \mathbf{y})^\top \log (1 - \hat{\mathbf{y}}) \right]. J(w,b)=N1[ylogy^+(1y)log(1y^)].
梯度计算:
∂ J ∂ w = 1 N X ⊤ ( y ^ − y ) , \frac{\partial J}{\partial \mathbf{w}} = \frac{1}{N} \mathbf{X}^\top (\hat{\mathbf{y}} - \mathbf{y}), wJ=N1X(y^y),
∂ J ∂ b = 1 N ∑ i = 1 N ( y ^ i − y i ) . \frac{\partial J}{\partial b} = \frac{1}{N} \sum_{i=1}^N (\hat{y}_i - y_i). bJ=N1i=1N(y^iyi).


四、实际应用中的设计原则

  1. 任务需求匹配:分类任务需概率输出,回归任务用 MSE。
  2. 优化效率:梯度应稳定且易于计算。
  3. 概率解释性:损失函数需与概率模型一致(如交叉熵配 sigmoid)。
  4. 鲁棒性:对异常值的敏感程度(交叉熵比 MSE 更敏感,需数据清洗)。

五、总结

逻辑回归的交叉熵损失函数是通过以下步骤设计的:

  1. 概率假设:假设数据服从伯努利分布。
  2. 最大似然估计:将参数估计问题转化为优化问题。
  3. 数学简化:取负对数似然,得到交叉熵形式。
  4. 优化验证:选择梯度性质更优的损失函数。

这种设计使得逻辑回归在二分类任务中高效、稳定,且输出具有概率意义,成为基础且强大的模型。

二、PyTorch 代码案例
import torch
import torch.nn as nn
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification# 生成数据
X, y = make_classification(n_samples=1000, n_features=2, n_redundant=0, n_clusters_per_class=1)
X = torch.tensor(X, dtype=torch.float32)
y = torch.tensor(y, dtype=torch.float32).view(-1, 1)# 定义模型
class LogisticRegression(nn.Module):def __init__(self, input_dim):super().__init__()self.linear = nn.Linear(input_dim, 1)def forward(self, x):return torch.sigmoid(self.linear(x))model = LogisticRegression(2)
criterion = nn.BCELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)# 训练
losses = []
for epoch in range(100):y_pred = model(X)loss = criterion(y_pred, y)loss.backward()optimizer.step()optimizer.zero_grad()losses.append(loss.item())# 可视化损失曲线
plt.plot(losses)
plt.title("Training Loss")
plt.show()# 决策边界可视化
w = model.linear.weight.detach().numpy()[0]
b = model.linear.bias.detach().numpy()x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 100), np.linspace(y_min, y_max, 100))
Z = model(torch.tensor(np.c_[xx.ravel(), yy.ravel()], dtype=torch.float32)).detach().numpy()
Z = Z.reshape(xx.shape)plt.contourf(xx, yy, Z, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y.squeeze(), edgecolors='k')
plt.title("Decision Boundary")
plt.show()

三、可视化展示
  • 数据分布:二维散点图展示类别分离情况。
  • 损失曲线:训练过程中损失值下降曲线。
  • 决策边界:等高线图显示模型预测分界线。

四、应用场景与优缺点
  • 应用场景
    信用评分、垃圾邮件检测、疾病预测(线性可分问题)。

  • 优点

    1. 计算高效,适合大规模数据。
    2. 输出概率解释性强。
  • 缺点

    1. 无法直接处理非线性关系。
    2. 对多重共线性敏感。

五、改进方法与数学推导
  1. 正则化

    • L2正则化:目标函数变为
      J reg = J ( w , b ) + λ 2 ∥ w ∥ 2 J_{\text{reg}} = J(\mathbf{w}, b) + \frac{\lambda}{2} \|\mathbf{w}\|^2 Jreg=J(w,b)+2λw2
      梯度更新:
      w ← w − η ( ∇ w J + λ w ) \mathbf{w} \leftarrow \mathbf{w} - \eta \left( \nabla_{\mathbf{w}} J + \lambda \mathbf{w} \right) wwη(wJ+λw)
  2. 特征工程
    添加多项式特征 x 1 2 , x 2 2 , x 1 x 2 x_1^2, x_2^2, x_1x_2 x12,x22,x1x2等,将数据映射到高维空间。

  3. 核方法
    通过核技巧隐式映射到高维空间(需结合其他模型如SVM)。


六、总结

逻辑回归通过概率建模解决二分类问题,代码简洁高效,但需注意其线性假设的限制。通过正则化、特征工程等手段可显著提升模型性能。

相关文章:

用deepseek学大模型05逻辑回归

deepseek.com:逻辑回归的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点,及如何改进解决及改进方法数据推导。…...

图解循环神经网络(RNN)

目录 1.循环神经网络介绍 2.网络结构 3.结构分类 4.模型工作原理 5.模型工作示例 6.总结 1.循环神经网络介绍 RNN(Recurrent Neural Network,循环神经网络)是一种专门用于处理序列数据的神经网络结构。与传统的神经网络不同&#xff0c…...

vue文件没有name属性怎么被调用

如果你在 index.vue 文件中定义了一个组件,但没有在组件定义中使用 name 属性,你仍然可以通过几种方式来引用和使用这个组件。 1. 使用局部注册 在父组件中直接导入并注册 index.vue 中的组件(index.vue没有name属性)&#xff0…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-build.py

build.py ultralytics\data\build.py 目录 build.py 1.所需的库和模块 2.class InfiniteDataLoader(dataloader.DataLoader): 3.class _RepeatSampler: 4.def seed_worker(worker_id): 5.def build_yolo_dataset(cfg, img_path, batch, data, mode"train"…...

alt+tab切换导致linux桌面卡死的急救方案

环境 debian12 gnome43.9 解决办法 观察状态栏,其实系统是没有完全死机的,而且gnome也可能没有完全死机。 1. alt f4 关闭桌面上的程序,因为这个方案是我刚刚看到的,所以不确定能不能用,比起重启系统,…...

Spark(2)linux和简单命令

(一)Linux的文件系统 文件系统:操作系统中负责管理和存储文件信息的软件结构称为文件管理系统。 文件系统的结构通常叫做目录树结构,从斜杆/根目录开始; Linux号称万物皆文件,意味着针对Linux的操作,大多…...

如何在Windows下使用Ollama本地部署DeepSeek R1

参考链接: 通过Ollama本地部署DeepSeek R1以及简单使用的教程(超详细) 【DeepSeek应用】DeepSeek R1 本地部署(OllamaDockerOpenWebUI) 如何将 Chatbox 连接到远程 Ollama 服务:逐步指南 首先需要安装oll…...

【Content-Type详解、Postman中binary格式、json格式数据转原始二进制流等】

Content-Type详解、Postman中binary格式、json格式数据转原始二进制流等 背景:postman中如何使用binary格式上传文件 Content-TypeContent-Type的格式由三部分组成:以下是一些常见的Content-Type示例: Postman中 binary格式定义:用…...

spring boot知识点3

1.spring boot能否使用xml配置 可以,但是很繁琐,现在都建议走JavaConfig 2.spring boot的核心配置文件 application.properties application.yml 3.bootstrap.properties和application.properties的区别 b:用于远程配置 a:…...

Dart 3.5语法 28-29

028问号可选类型可空类型保存null空String的isEmpty和NotEmpty ?问号可选类型可空类型保存null叹号强制解包??双冒号运算符String的isEmpty和isNotEmpty ? 问号可选类型,可空类型 可选类型可以保存null,就是空的意思 String.isEmpty 是判断是否是空白字符串,他并不是null…...

利用AFE+MCU构建电池管理系统(BMS)

前言 实际BMS项目中,可能会综合考虑成本、可拓展、通信交互等,用AFE(模拟前端)MCU(微控制器)实现BMS(电池管理系统)。 希望看到这篇博客的朋友能指出错误或提供改进建议。 有纰漏…...

【教学类-89-06】20250220新年篇05——元宵节灯笼

背景需求: 每年元宵、国庆都回带孩子做灯笼。用python对"对折灯笼“的纸模进行不同图案的填充(区分物权) 【教学类-39】A4红纸-国旗灯笼纸模(庆祝中华人民共和国成立74周年)_a4 打印 灯笼-CSDN博客文章浏览阅读1…...

C++ Primer 类的静态成员

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...

【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记

本文内容为重写上一节课中的单链表,将其重构成更易于用户使用的链表,实现多种操作链表的方法。 1. 重构单链表SLList 在上一节课中编写的 IntList 类是裸露递归的形式,在 Java 中一般不会这么定义,因为这样用户可能需要非常了解…...

【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin scatter plot Venn)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载画图1画图2画图3画图4画图5画图6画图7参考介绍 【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin & scatter plot & Venn) 加载R包 library…...

Linux中POSIX应用场景

Linux 提供了丰富的 POSIX(Portable Operating System Interface)标准接口,这些接口可以帮助开发者编写可移植、高效的应用程序。POSIX 标准定义了一系列系统调用和库函数,涵盖了文件操作、进程管理、线程管理、信号处理、同步机制…...

量子算法导论

重学了量子算法,不知道是温故而知新,还是之前的教材没有讲过这个概念。 如果把(图灵机)计算机比作一个查询机器,输入x通过f(x)作用得出结果,而查询的过程就是计算的过程。 中文解释…...

nasm - BasicWindow_64

文章目录 nasm - BasicWindow_64概述笔记my_build.batnasm_main.asmEND nasm - BasicWindow_64 概述 学习网上找到的demo. x64和x86的汇编源码还差挺多的。 x64的汇编代码不好写,细节整不对,程序就不运行。 如果要查为啥不运行,也要看和正向…...

SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问

一、前言 SSL协议介于TCP/IP协议栈的第四层(传输层)和第七层(应用层)之间,为基于TCP的应用层协议(如HTTP)提供安全连接。它通过在客户端和服务器之间建立一个加密的通道,确保数据在传…...

selenium爬取苏宁易购平台某产品的评论

目录 selenium的介绍 1、 selenium是什么? 2、selenium的工作原理 3、如何使用selenium? webdriver浏览器驱动设置 关键步骤 代码 运行结果 注意事项 selenium的介绍 1、 selenium是什么? 用于Web应用程序测试的工具。可以驱动浏览…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...