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

工业大数据分析算法实战-day08

文章目录

  • day08
    • 模型评价
    • 聚类算法
      • 基于距离的聚类
      • 基于层次的聚类
      • 基于密度的聚类
      • 基于分布的聚类
      • 聚类结果的评价

day08

今天是第8天,昨日阐述了概率图模型和集成学习的分类,主要讲解了有向图和无向图,生成式模型和判断式模型,以及集成学习中重点的boosting代表算法和stacking的方式,今日重点阐述的是模型评价指标和聚类算法,模型评价是模型开发过程中不可或缺的部分,有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。而聚类是一直无监督的算法,将一组数据对象根据其特征分为不同的簇。

模型评价

评价指标的划分,针对分类、回归问题

问题类型评价指标描述常用场景
分类问题(研判型)准确率(Accuracy)预测正确的样本占总样本的比例,常用于衡量模型的整体性能。适用于大多数分类任务,如垃圾邮件分类、图片分类、文本分类等。
精确率(Precision)预测为正类(如垃圾邮件)中实际为正类的比例,衡量假阳性。关注错误分类为正类的影响,如垃圾邮件分类、欺诈检测等。
召回率(Recall)实际为正类中被正确预测为正类的比例,衡量假阴性。关注漏掉正类的影响,如疾病诊断、癌症筛查等。
F1值(F1-Score)精确率和召回率的调和平均值,平衡了精确性和召回能力。精确率和召回率同等重要时使用,如疾病检测、诈骗检测等。
分类问题(生成型)最大似然估计(MLE)通过最大化观测数据在模型下的似然函数来估计模型参数。生成模型训练,如文本生成、图像生成、语音合成等。
最大后验估计(MAP)结合数据和先验知识,通过最大化后验概率来估计模型参数。生成模型,尤其是结合先验知识时,如自然语言生成、图像生成等。
交叉熵(Cross-Entropy)衡量预测分布与真实分布之间的差异,常用于分类任务和生成模型训练。生成模型训练,如图像生成、文本生成、语音生成等。
KL散度(Kullback-Leibler Divergence)衡量两个概率分布的差异,用于生成模型评估,越小越好。生成模型,特别是变分自编码器(VAE)、生成对抗网络(GAN)等任务。
回归问题均方误差(MSE)计算预测值与真实值差异的平方的平均,对大误差更敏感。适用于数值预测任务,如房价预测、温度预测、销售额预测等。
平均绝对误差(MAE)计算预测值与真实值的差的绝对值的平均,对异常值的敏感度较低。适用于数值预测任务,特别是对异常值不敏感的任务,如房价预测、收入预测等。
决定系数(R²)衡量回归模型对数据的拟合程度,值越接近1说明模型越好。适用于回归分析,如股票价格预测、销量预测、经济指标预测等。

结构惩罚方法的目标是帮助我们选择合适的模型,避免模型过于复杂导致的“过拟合”

评价指标描述优点缺点示例及通俗解释
AIC(赤池信息量准则)衡量模型的拟合优度与复杂度的平衡,值越小越好。 AIC = 2k - 2ln(L),其中k是模型参数个数,L是模型的似然函数值。对比多个模型时,AIC能帮助选择最合适的模型,且计算简单。在样本量较小的情况下,AIC可能会选择过于复杂的模型。比如预测房价时,如果使用的模型有太多不必要的变量(如房子的颜色),AIC会对这些不重要的变量进行惩罚,减少过拟合的风险。
BIC(贝叶斯信息准则)和AIC类似,BIC也用于衡量模型复杂度与拟合优度之间的平衡。与AIC不同,BIC在复杂度的惩罚上更严格。比AIC更加严格,适用于样本量较大的情况,避免过拟合。在数据量较少时,BIC可能会选择过于简单的模型,导致欠拟合。比如在一个大数据集上,BIC可能会拒绝一个复杂的模型,推荐一个更简单的模型,尽管这个简单模型可能无法完全拟合数据。
SIC(施瓦茨信息准则)是BIC的一种变体,适用于大样本数据,结构上类似于BIC,但对模型复杂度的惩罚更加严厉。对大数据集尤其有效,能够更好地选择复杂度合适的模型。和BIC类似,适用于大样本数据,小样本数据可能过度简化模型。类似于BIC,假如你有一个大样本的营销数据,SIC会更倾向于推荐一个简洁但表现良好的模型。
MDL(最小描述长度)基于信息论的原则,选择能够最小化模型和数据的描述长度的模型。描述长度包括模型的复杂度和拟合数据所需的信息量。强调模型的简洁性,特别适用于需要考虑压缩和存储的场景。理解和计算较为复杂,通常需要更多的先验知识。假设我们想压缩一个视频文件,MDL会帮助选择一个既能压缩数据又能保留重要信息的模型,避免压缩过度导致信息丢失。

常用的模型效果的评价方法

方法名称描述优点缺点
Hold-out(留出法)将数据分为训练集和测试集,训练集用来训练模型,测试集用来评估模型表现。简单、易理解。测试集可能不具代表性,可能导致评估结果偏差。
K-fold交叉验证将数据分成K个子集,每次用K-1个子集训练,剩余一个子集用于测试,重复K次。能更全面地评估模型,减少因数据划分引起的偏差。计算成本较高,特别是当K较大时。
LOO交叉验证每次用一个样本作为测试集,剩余样本用于训练,通常用于样本量较小的情况。充分利用每一个样本,尤其适用于数据较少时。计算开销大,尤其在数据量较大的时候。
Bootstrap(自助法)通过随机抽取数据生成多个子集进行训练和测试,适用于小样本数据。能评估模型在不同数据上的表现,适用于小样本数据。计算开销大,可能会导致一定的过拟合风险。

常见的特征重要度的识别方法

方法名称描述优点缺点适用模型举例
随机森林重要度基于随机森林算法,评估每个特征对模型的贡献。易于计算,适用于各种数据类型,能够处理数值型和类别型数据。主要适用于树模型,其他模型难以直接应用,忽视特征间复杂关系。随机森林、决策树等在房价预测中,面积特征的重要性较高。
基于排列的重要度通过扰动特征顺序来评估其对模型性能的影响。适用于任何模型,能够提供全局性的特征重要性评估。计算成本高,尤其在数据量大时,无法捕捉复杂的特征交互。任何机器学习模型(回归、分类、神经网络等)在回归模型中,打乱面积特征后,模型性能显著下降,表明面积重要性高。
SHAP(Shapley值)不仅考虑该特征单独对预测的影响,还考虑它与其他特征的交互作用。会综合所有可能的特征组合,计算每个特征对最终预测的贡献。这一过程会对每个特征进行多次计算和加权,最后得到每个特征的SHAP值提供细粒度的解释,适用于复杂模型,解释模型决策过程。计算复杂,尤其在深度学习中,资源消耗较大。任何机器学习模型,尤其是深度学习和复杂模型在信用评分预测中,SHAP解释收入和债务对预测结果的贡献。

聚类算法

聚类的简单分类为:基于距离、层次、密度、分布,另外还有一些基于集成、分形理论的、模型的聚类算法

基于距离的聚类

基于距离的聚类方法是通过计算数据点之间的距离或相似度来决定哪些数据点属于同一簇。这种方法的核心思想是:相似的点应该被聚成一个簇,不相似的点应该分到不同的簇

K-means 聚类

  • 原理:K-means 聚类算法的目标是最小化每个簇内的点与簇中心(均值点)之间的距离。首先随机选择 K 个初始簇中心,然后根据每个数据点到这些中心的距离将数据点分配到最近的簇。接着,重新计算每个簇的中心点(簇内所有点的均值),然后重复以上步骤,直到簇中心不再变化。
  • 优点
    • 计算速度较快,适用于大规模数据。
    • 算法简单,易于实现。
  • 缺点
    • 需要事先指定簇的数量 K,且对 K 的选择非常敏感。
    • 对异常值和噪声数据敏感,异常值可能导致簇中心偏移。
    • 可能陷入局部最优解,尤其是当初始簇中心选择不当时。
  • 应用场景:适用于簇形状比较规则(即簇是凸形状的)的数据,如图像压缩、客户分群等。

PAM(Partitioning Around Medoids)

  • 原理:PAM 是另一种基于距离的聚类算法,类似于 K-means,但不同的是,PAM 选择数据点本身作为簇的“代表点”或“中心点”,而不是均值。每次聚类时,通过计算每个点到所有代表点的距离,选择最能代表簇的点作为中心。PAM 不使用均值,而是选择簇内实际存在的点作为中心,这使得它对异常值更不敏感。
  • 优点
    • 比 K-means 对异常值更鲁棒。
    • 适用于小规模数据集,尤其当簇的数量较少时。
  • 缺点
    • 计算开销较大,尤其在数据量很大时,效率较低。
  • 应用场景:适用于小规模数据集或者对噪声点敏感的场景。

基于层次的聚类

基于层次的聚类方法通过构建层次结构(如树形结构)来描述数据之间的相似性。这类方法的关键在于选择合适的策略来决定簇的合并或分裂。

分裂层次聚类(自顶向下)

  • 原理:分裂层次聚类从一个整体的簇开始,每次选取最不相似的数据点或簇,进行分裂,直到达到预设的簇数。一般来说,分裂层次聚类会根据某种标准(如最小化簇内的差异性)来选择分裂点。
  • 优点
    • 直观的聚类过程,容易理解。
    • 无需事先指定簇的数量。
  • 缺点
    • 计算复杂度较高,尤其在数据量较大时。
    • 聚类过程的决策是自顶向下的,可能会导致分裂的效果不佳,不能很好地适应一些实际数据的分布。

凝聚层次聚类(自底向上)

  • 原理:凝聚层次聚类从每个数据点开始,每次将两个最相似的簇合并成一个新的簇,直到所有点都合并成一个簇,或者达到预定的簇数。合并的过程依赖于一种相似性度量,例如欧几里得距离、曼哈顿距离等。
  • 优点
    • 不需要预设簇的数量。
    • 通过层次树(Dendrogram)可以直观地展示不同簇的合并过程。
  • 缺点
    • 计算复杂度较高(通常是 O(n^3)),对大规模数据集不适用。
    • 对噪声和异常值较为敏感。
  • 应用场景:适合小到中等规模的数据集,尤其是在树状图或层次结构非常重要的场景,如文档聚类、基因数据聚类等。

基于密度的聚类

基于密度的聚类方法通过计算数据点的密度来识别簇的边界。密度较高的区域通常被认为是簇,而稀疏区域则可能是噪声。该类方法能有效发现形状不规则的簇,并且能够自动识别噪声。

DBSCAN(密度聚类)

  • 原理:DBSCAN(Density-Based Spatial Clustering of Applications with Noise)通过两个参数来定义密度:ε(邻域半径)minPts(邻域内的最小点数)。DBSCAN 首先识别“核心点”——在指定的半径 ε 内包含至少 minPts 个点的点,然后从核心点扩展簇,最终形成簇。没有足够邻居的点被认为是噪声点。
  • 优点
    • 不需要指定簇的数量,可以自动发现任意形状的簇。
    • 能够有效处理噪声数据。
  • 缺点
    • 对参数选择非常敏感,特别是对 ε 和 minPts 的选择。
    • 在密度变化较大的数据集上,效果较差。
  • 应用场景:适用于簇形状不规则的场景,如地理数据分析、图像分割等。

OPTICS(可扩展的密度聚类)

  • 原理:OPTICS 是 DBSCAN 的改进,能够在不同的密度阈值下生成聚类。与 DBSCAN 不同,OPTICS 不直接给出簇,而是生成一个“可达性图”(相当于每个点到下一个点的有向图,距离越小越保留),表示在不同的密度范围下,点之间的相对密度关系。基于这个图,可以后续进行聚类分析。
  • 优点
    • 解决了 DBSCAN 对参数敏感的问题。
    • 可以处理不同密度的簇。
  • 缺点
    • 生成的可达性图较为复杂,需要额外的计算和分析。
  • 应用场景:适用于复杂的地理数据聚类、需要多层次密度分析的场景。

Mean-shift(均值漂移)

  • 原理:Mean-shift 是一种基于密度的非参数聚类算法,它通过不断地调整每个数据点的“窗口”中心向密度最大的方向移动,直到达到某个密度峰值。窗口大小(即带宽)是该算法的关键参数。
  • 优点
    • 不需要预先指定簇的数量。
    • 能够发现任意形状的簇,适应性强。
  • 缺点
    • 计算开销大,尤其在高维数据上。
    • 窗口大小的选择对聚类结果有较大影响。
  • 应用场景:适用于形状不规则的簇,图像处理、视频分析等领域。

基于分布的聚类

基于分布的聚类方法假设数据点来自于多个概率分布,通常是高斯分布,通过拟合数据的概率分布来识别簇。

GMM(高斯混合模型)

  • 原理:GMM 假设数据是由多个高斯分布(或正态分布)混合而成的,每个簇被认为是一个高斯分布。GMM 使用 EM(期望最大化)算法来估计每个簇的参数(均值、方差和权重)。每个数据点根据它到不同高斯分布的概率被分配到一个簇中。
  • 优点
    • 适用于高斯分布的数据。
    • 能够处理簇的形状不规则,并可以给出每个点属于某个簇的概率。
  • 缺点
    • 需要事先指定簇的数量。
    • 对异常值敏感,且对于非高斯分布的数据效果不好。
  • 应用场景:适用于数据呈现高斯分布的场景,如图像处理、语音识别、异常检测等。

聚类结果的评价

聚类算法的效果需要通过各种指标来评价。可以分为内部评价指标和外部评价指标。

  • 内部评价指标:用于评估聚类结果本身的质量,而不依赖于外部标签。
    • DB指标(Davies-Bouldin Index):衡量簇的紧凑度和分离度,值越小表示聚类效果越好。
    • 邓恩指标(Dunn Index):衡量簇之间的最小距离与簇内的最大距离之比,值越大越好。
    • 轮廓系数(Silhouette Coefficient):衡量簇的分离度和簇内的凝聚度,值越大表示聚类结果越好。
  • 外部评价指标:根据已有的标签或实际分类结果来评估聚类效果。
    • Rand指标:衡量聚类结果与真实标签之间的一致性,值越高越好。
    • F指标(F-Measure):结合了精确度和召回率,综合评估聚类的准确性。
    • Jaccard指标:计算真实标签与聚类结果的交集与并集的比值,值越大越好。
    • FM指标(Fowlkes-Mallows Index):衡量聚类结果与真实标签的一致性,值越接近 1 表示聚类效果越好。
    • 互信息(Mutual Information):衡量聚类结果与真实标签之间的信息共享程度。
    • 混淆矩阵:用来表示聚类结果与真实标签的对比,通常通过计算精确度、召回率等来进一步分析。

相关文章:

工业大数据分析算法实战-day08

文章目录 day08模型评价聚类算法基于距离的聚类基于层次的聚类基于密度的聚类基于分布的聚类聚类结果的评价 day08 今天是第8天,昨日阐述了概率图模型和集成学习的分类,主要讲解了有向图和无向图,生成式模型和判断式模型,以及集成…...

在 C# 中实现的目录基础操作

前言 在开发应用程序过程中,对操作系统上的文件夹存储文件和子文件夹操作是常见的需求。.NET中的Directory类提供了处理文件目录的功能。本文介绍如何读取文件夹的属性、获取文件夹的大小及文件个数、创建文件夹、遍历文件夹中的所有文件、移动文件夹和删除文件夹等…...

​Python 标识符是啥?​

Python 的标识符就是我们写代码时用来给变量、函数、类等取名字的东西。 你写的 my_variable 是个标识符, 定义的 add_numbers 函数名也是个标识符, 甚至你写的 Cat 类名,也是标识符。 一句话总结:标识符就是代码里给“东西”起…...

WEB开发: 全栈工程师起步 - Python Flask +SQLite的管理系统实现

一、前言 罗马不是一天建成的。 每个全栈工程师都是从HELLO WORLD 起步的。 之前我们分别用NODE.JS 、ASP.NET Core 这两个框架实现过基于WebServer的全栈工程师入门教程。 今天我们用更简单的来实现: Python。 我们将用Python来实现一个学生管理应用&#xff0…...

将 Matplotlib 图形转换为 PIL 图像并返回

将 Matplotlib 图形转换为 PIL 图像并返回 前言完整代码Matplotlib 中 fig 和 ax 的关系示例: 问题分析常见错误及解决方案总结 前言 Matplotlib 是 Python 里最流行的图表展示库,PIL (Python Imaging Library)则是一个强大的图像处理库。在开发过程中&…...

F5中获取客户端ip地址(client ip)

当F5设备对其原始设置上的所有IP地址使用NAT时,连接到poo成员(nodes、backend servers)的出站连接将是NAT IP地址。 pool 成员(nodes、backend servers)将无法看到真实的客户端 ip地址,因为看到的是F5上的…...

点焊机器人维修-ABB-KUKA-FANUC-YASKAWA

在正式启用点焊机器人之前,一项至关重要的预备步骤便是进行焊枪的全面设置操作。以FANUC机器人为例,其焊枪的设置流程涵盖了多个关键环节,如焊枪运动方向的精确规划、焊枪规格的选择以及零点标定的细致执行等。这些设置均须严格依据实际所采用…...

springboot448教学辅助系统(论文+源码)_kaic

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#x…...

网络地址转换(NAT)和端口映射

1. 网络地址转换(NAT) 1.1 NAT的应用场景 (1)应用场景:允许将私有IP地址映射到公网地址,以减缓IP地址空间的消耗 ①需要连接Internet,但主机没有公网IP地址 ②更换了一个新的ISP,需要重新组织网络时&…...

iClent3D for Cesium 实现无人机巡检飞行效果

作者:gaogy 1、背景 随着地理信息技术的发展,三维地球技术逐渐成为了许多领域中的核心工具,尤其是在城市规划、环境监测、航空航天以及军事领域。三维地图和场景的应用正在帮助人们更加直观地理解空间数据,提供更高效的决策支持。…...

后端- spring cache框架操作缓存数据(底层可以是redis,也可以是caffeine和ehcache)

...

低比特语言模型 是一种利用较少比特数进行语言建模的技术

Vanilla LLM: 基础的全精度语言模型,通常在较高比特数下运作 Vanilla LLM,或称为“基础的全精度语言模型”,是指使用标准的浮点数(通常是16位或32位)进行训练和推理的语言模型。这些模型依赖于经典的神经网络结构&…...

ES6中的map和set

Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。 以下代码 const s new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x > s.add(x));for (let i of s…...

【WRF安装】WRF编译错误总结1:HDF5库包安装

目录 1 HDF5库包安装有误:HDF5 not set in environment. Will configure WRF for use without.HDF5的重新编译 错误原因1:提示 overflow 错误1. 检查系统是否缺少依赖库或工具2. 检查和更新编译器版本3. 检查 ./configure 报错信息4. 检查系统环境变量5.…...

MyBatis常见面试题总结

#{} 和 ${} 的区别是什么? 注:这道题是面试官面试我同事的。 答: ${}是 Properties 文件中的变量占位符,它可以用于标签属性值和 sql 内部,属于原样文本替换,可以替换任意内容,比如${driver}…...

Qt生成随机数的方法

后台接口要求传个流水单号,流水号的格式是:“设备序列号”“设备MAC地址”“20位的随机数”。 具体的是: “设备序列号”:就是烧录工具写入设备的序列编号,这就不多说了,读出来就行; “设备MAC地…...

深入探索Vue.js中的v-if指令:条件渲染的高级技巧

深入探索Vue.js中的v-if指令:条件渲染的高级技巧 引言 在现代Web开发中,根据条件动态地渲染或移除DOM元素是一个常见的需求。Vue.js提供了一种简洁而强大的方法来实现这一目标,即通过v-if指令来根据表达式的值来控制元素的渲染。本文将详细…...

【记录50】uniapp安装uview插件,样式引入失败分析及解决

SassError: Undefined variable: "$u-border-color". 表示样式变量$u-border-color没定义&#xff0c;实际是定义的 首先确保安装了scss/sass 其次&#xff0c;根目录下 app.vue中是否全局引入 <style lang"scss">import /uni_modules/uview-ui/in…...

NTLMv2 离线爆破

攻击者&#xff08;kali&#xff09;&#xff1a;192.168.72.162 受害者&#xff08;administrator&#xff09;&#xff1a;192.168.72.163 因为 NTLM 身份验证是通过计算正确的挑战值得出的&#xff0c;所以如果我们能获取域用户的 NTLM 认证某一服务的 Net-NTLM v2 Hash …...

LabVIEW实现RFID通信

目录 1、RFID通信原理 2、硬件环境部署 3、程序架构 4、前面板设计 5、程序框图设计 6、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常用模块实现物联网系…...

【Three.js基础学习】31.Lights Shading

前言 关于灯光如何在着色器中应用&#xff01; 下面将创建三个灯光 分别是点光源&#xff0c;环境光&#xff0c;方向光通过这几种光应用着色器显示对应阴影 学习灯光阴影&#xff0c;着色器的使用 添加三盏灯 点光&#xff0c;方向光&#xff0c;环境光 创建一个环境光 在现…...

Oracle Database 21c Express Edition数据库 和 Sqlplus客户端安装配置

目录 一. 前置条件二. Win10安装配置Oracle数据库2.1 数据库获取2.2 数据库安装2.3 数据库配置确认2.4 数据库访问 三. Win10配置Oracle数据库可对外访问3.1 打开文件和打印机共享3.2 开放1521端口 四. 端口与地址确认4.1 查看监听器的状态4.2 Win10查看1521端口是否被监听4.3 …...

IDEA搭建springboot demo

如下所示创建SpringBootTest18项目&#xff0c;我选的maven&#xff0c;创建完成项目后&#xff0c;maven会自动下载一些依赖库到maven的repository目录中。 创建的项目结构如下图所示 接下来在项目中加入Framework支持&#xff0c;右击项目&#xff0c;弹出的菜单如下图所示&a…...

SQLite Update 语句

SQLite Update 语句 SQLite 的 UPDATE 语句用于更新数据库表中的现有记录。使用 UPDATE 语句&#xff0c;您可以修改一个或多个列的值。本教程将详细介绍如何使用 SQLite UPDATE 语句&#xff0c;包括语法、示例以及一些最佳实践。 语法 SQLite UPDATE 语句的基本语法如下&a…...

node.js的简单示例

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;用于方便地构建快速、可扩展的网络应用。下面是一个简单的Node.js示例&#xff0c;它创建了一个简单的HTTP服务器&#xff0c;当访问服务器时&#xff0c;它会响应“Hello World” // 引入Node.js的HTTP模块…...

fpga系列 HDL:Quartus II 时序约束 静态时序分析 (STA) test.out.sdc的文件结构

test.out.sdc的文件结构 ## Generated SDC file "test.out.sdc"## Copyright (C) 1991-2013 Altera Corporation ## Your use of Altera Corporations design tools, logic functions ## and other software and tools, and its AMPP partner logic ## functions,…...

Restaurants WebAPI(一)—— clean architecture

文章目录 项目地址一、Restaurants.Domain 核心业务层1.1 Entities实体层1.2 Repositories 数据操作EF的接口二、Restaurants.Infrastructure 基础设施层2.1 Persistence 数据EF CORE配置2.2 Repositories 数据查询实现2.3 Extensions 服务注册三、Restaurants.Application用例…...

A Unified Framework for STAR-RIS Coefficients Optimization

文章目录 AbstractB. A Penalty-based Reformulation of (1) III. OPTIMIZING AUXILIARY VARIABLES φ \boldsymbol φ φ IN P1IV. A CASE STUDY OF P2 ON DOWNLINK STAR-RIS ASSISTED TRANSMISSION SYSTEMA. 优化 x , ρ , w , λ t x, \rho, \mathbf{w}, \lambda^t x,ρ,w…...

rebase ‘A‘ onto ‘master‘ 和 merge ‘master‘ into ‘A‘有什么区别

在Git版本控制系统中&#xff0c;rebase 和 merge 是两种不同的操作&#xff0c;用于合并分支。rebase A onto master 和 merge master into A 虽然最终目的都是将两个分支的更改合并在一起&#xff0c;但它们在处理方式和结果上有所不同。 rebase ‘A’ onto ‘master’ 含义…...

谷歌发布最新视频生成模型 Veo 2:视频生成AI新王牌

谷歌 在当今数字化快速发展的时代&#xff0c;人工智能视频生成技术正不断突破创新。就在12月17日&#xff0c;谷歌推出了一个新的视频模型 Veo 2 。 Veo 2 Veo 2 Veo 2 可以创建各种主题和风格的高质量视频。在谷歌官方由人工评估员判断中&#xff0c;Veo 2 与领先模型相比取得…...

2025erp系统开源免费进销存系统搭建教程/功能介绍/上线即可运营软件平台源码

系统介绍 基于ThinkPHP与LayUI构建的全方位进销存解决方案 本系统集成了采购、销售、零售、多仓库管理、财务管理等核心功能模块&#xff0c;旨在为企业提供一站式进销存管理体验。借助详尽的报表分析和灵活的设置选项&#xff0c;企业可实现精细化管理&#xff0c;提升运营效…...

基于Docker的Minio分布式集群实践

目录 1. 说明 2. 配置表 3. 步骤 3.1 放行服务端口 3.2 docker-compose 编排 4. 入口反向代理与负载均衡配置 4.1 api入口 4.2 管理入口 5. 用例 6. 参考 1. 说明 以多节点的Docker容器方式实现minio存储集群&#xff0c;并配以nginx反向代理及负载均衡作为访问入口。…...

解决node.js的req.body为空的问题

从昨晚一直在试&#xff0c;明明之前用的封装的axios发送请求给其他的后端&#xff08;springboot&#xff09;是可以的&#xff0c;但昨天用了新项目的后端&#xff08;node.js&#xff09;就不行。 之前用了代理&#xff0c;所以浏览器发送的post请求不会被拦截&#xff0c;…...

数据结构期末算法复习:树、查找、排序

一、树 1.二叉链-定义 typedef struct BiTNode{ ElemType data;//数据域 struct BiTNode *lchild ,*rchild;//左、右孩子指针 }BiTNode , *BiTree ;2.查找值为x的结点 BTNode FindNode(BTNode b&#xff0c;ElemType x) { BTNode *p;if (bNULL) return NULL;else if (…...

复习打卡Linux篇

目录 1. Linux常用操作命令 2. vim编辑器 3. 用户权限 4. Linux系统信息查看 1. Linux常用操作命令 基础操作&#xff1a; 命令说明history查看历史执行命令ls查看指定目录下内容ls -a查看所有文件 包括隐藏文件ls -l ll查看文件详细信息&#xff0c;包括权限类型时间大小…...

OpenAI API深度解析:参数、Token、计费与多种调用方式

随着人工智能技术的飞速发展&#xff0c;OpenAI API已成为许多开发者和企业的得力助手。本文将深入探讨OpenAI API的参数、Token、计费方式&#xff0c;以及如何通过Rest API&#xff08;以Postman为例&#xff09;、Java API调用、工具调用等方式实现与OpenAI的交互&#xff0…...

Centos7 部署ZLMediakit

1、拉取代码 #国内用户推荐从同步镜像网站gitee下载 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init 2、安装编译器 sudo yum -y install gcc 3、安装cmake sudo yum -y install cmake 4…...

python:用 sklearn.metrics 评价 K-Means 聚类模型

sklearn 的 metrics 模块提供的聚类模型评价指标如下&#xff1a; ARI 评价法&#xff08;兰德系数&#xff09;: adjusted_rand_score AMI 评价法&#xff08;相互信息&#xff09;: adjusted_mutual_info_score V-measure 评分 : completeness_score FMI 评价法 : fowlkes_m…...

谁说C比C++快?

看到这个问题&#xff0c;我我得说&#xff1a;这事儿没有那么简单。 1. 先把最大的误区打破 "C永远比C快" —— 某位1990年代的程序员 这种说法就像"自行车永远比汽车省油"一样荒谬。我们来看个例子&#xff1a; // C风格 char* str (char*)malloc(100…...

算法刷题Day23:BM60 括号生成

题目链接 描述&#xff1a;给出n对括号&#xff0c;请编写一个函数来生成所有的由n对括号组成的合法组合。 例如&#xff0c;给出n3&#xff0c;解集为&#xff1a; “((()))”, “(()())”, “(())()”, “()()()”, “()(())” 思路&#xff1a; 回溯左子树不断添加‘&#…...

基于Redis实现令牌桶算法

基于Redis实现令牌桶算法 令牌桶算法算法流程图优点缺点 实现其它限流算法 令牌桶算法 令牌桶是一种用于分组交换和电信网络的算法。它可用于检查数据包形式的数据传输是否符合定义的带宽和突发性限制&#xff08;流量不均匀或变化的衡量标准&#xff09;。它还可以用作调度算…...

XXE练习

pikachu-XXE靶场 1.POC:攻击测试 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY xxe "a">]> <foo>&xxe;</foo> 2.EXP:查看文件 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY xxe SY…...

Mac上使用ln指令创建软链接、硬链接

在Mac、Linux和Unix系统中&#xff0c;软连接&#xff08;Symbolic Link&#xff09;和硬连接&#xff08;Hard Link&#xff09;是两种不同的文件链接方式。它们的主要区别如下&#xff1a; 区别&#xff1a; 硬连接&#xff1a; 不能跨文件系统。不能链接目录&#xff08;为…...

单元测试-Unittest框架实践

文章目录 1.Unittest简介1.1 自动化测试用例编写步骤1.2 相关概念1.3 用例编写规则1.4 断言方法 2.示例2.1 业务代码2.2 编写测试用例2.3 生成报告2.3.1 方法12.3.2 方法2 1.Unittest简介 Unittest是Python自带的单元测试框架&#xff0c;适用于&#xff1a;单元测试、Web自动…...

JAVA没有搞头了吗?

前言 今年的Java程序员群体似乎承受着前所未有的焦虑。投递简历无人问津&#xff0c;难得的面试机会也难以把握&#xff0c;即便成功入职&#xff0c;也往往难以长久。于是&#xff0c;不少程序员感叹&#xff1a;互联网的寒冬似乎又一次卷土重来&#xff0c;环境如此恶劣&…...

ECharts 饼图:数据可视化的重要工具

ECharts 饼图:数据可视化的重要工具 引言 在数据分析和可视化的领域,ECharts 是一个广受欢迎的开源库。它由百度团队开发,用于在网页中创建交互式图表。ECharts 提供了多种图表类型,包括柱状图、折线图、散点图等,而饼图则是其中最常用的一种。本文将深入探讨 ECharts 饼…...

arcGIS使用笔记(无人机tif合并、导出、去除黑边、重采样)

无人机航拍建图之后&#xff0c;通过大疆智图软件可以对所飞行的区域的进行拼图&#xff0c;但是如果需要对拼好的图再次合并&#xff0c;则需要利用到arcGIS软件。下面介绍arcGIS软件在这个过程中常用的操作。 1.导入tif文件并显示的方法&#xff1a;点击“”图标进行导入操作…...

0 前言

ArCS作为一个基于Rust的CAD&#xff08;计算机辅助设计&#xff09;开源系统&#xff0c;尽管已经有四年未更新&#xff0c;但其设计理念和技术实现仍然具有很高的学习和参考价值。以下是对ArCS项目的进一步分析和解读&#xff1a; 一、项目亮点与技术优势 高效与安全的Rust语…...

ubuntu server 安装

1 获取ubuntu https://ubuntu.com/download/server 2 安装ubuntu 详细教程查看视频&#xff1a; ubunut server 安装_哔哩哔哩_bilibili...

linux 添加默认网关

在linux 可以使用 route 命令添加默认网关&#xff0c;假设添加的默认网关是192.168.159.2 添加方式如下&#xff1a; route add default gw 192.168.159.2 以上命令只需要把add 改成 del &#xff0c;就能删除刚才添加的路由 route del default gw 192.168.159.2 #该命…...