机器学习深度学学习分类模型中常用的评价指标总结记录与代码实现说明

news2025/2/24 2:25:52

在机器学习深度学习算法模型大开发过程中,免不了要对算法模型进行对应的评测分析,这里主要是总结记录分类任务中经常使用到的一些评价指标,并针对性地给出对应的代码实现,方便读者直接移植到自己的项目中。

【混淆矩阵】

混淆矩阵(Confusion Matrix)是评价分类模型性能的一种常用工具,它展示了模型的预测结果与真实标签之间的关系。混淆矩阵是一个二维矩阵,行表示真实标签,列表示模型的预测结果。

混淆矩阵的原理如下:

假设我们有一个二分类模型,类别分别为正例和负例。混淆矩阵的四个元素分别表示:

  • 真正例(True Positive,TP):模型将正例正确地预测为正例的数量。
  • 假正例(False Positive,FP):模型将负例错误地预测为正例的数量。
  • 假负例(False Negative,FN):模型将正例错误地预测为负例的数量。
  • 真负例(True Negative,TN):模型将负例正确地预测为负例的数量。

下面是一个示例混淆矩阵:

              预测结果
             |   正例  |   负例  |
真实标签  正例 |   TP    |   FN    |
         负例 |   FP    |   TN    |

混淆矩阵的优点:

  • 提供了对分类模型性能的全面评估,可以直观地展示模型的预测结果和错误类型。
  • 可以计算多种评价指标,如准确率、精确率、召回率等,从不同角度分析模型的性能。

混淆矩阵的缺点:

  • 只适用于分类任务,对于回归任务无法直接使用。
  • 当类别数量较多时,混淆矩阵会变得更加复杂,不易直观解读。

Demo代码实现如下所示:

import numpy as np
from sklearn.metrics import *

# 真实标签
true_labels = [0, 1, 1, 0, 1, 0, 0, 1, 1, 1]
# 模型预测结果
predicted_labels = [0, 1, 0, 0, 1, 1, 0, 1, 1, 0]

# 计算混淆矩阵
cm = confusion_matrix(true_labels, predicted_labels)
print("Confusion Matrix:")
print(cm)

【准确率】

准确率(Accuracy)是评价分类模型性能的常用指标之一,它表示模型正确分类的样本数量与总样本数量之间的比例。

准确率的计算公式为:

准确率 = (TP + TN) / (TP + TN + FP + FN)

其中,TP表示真正例的数量,TN表示真负例的数量,FP表示假正例的数量,FN表示假负例的数量。

准确率的优点:

  • 直观易懂:准确率可以直观地衡量模型的整体分类性能,它给出的是模型正确分类的比例。
  • 平衡性:准确率考虑了模型对所有类别样本的分类情况,能够反映模型的整体性能。

准确率的缺点:

  • 对样本不平衡敏感:当数据集中的样本分布不均衡时,准确率可能会给出误导性的结果。例如,在一个二分类问题中,如果负样本占大多数,模型只需预测为负样本即可获得很高的准确率,但对于正样本的分类效果可能很差。
  • 忽略了错误类型:准确率无法区分模型的错误类型,无法告诉我们模型在预测中的具体偏差。

Demo代码实现如下所示:

from sklearn.metrics import accuracy_score

# 真实标签
true_labels = [0, 1, 1, 0, 1, 0, 0, 1, 1, 1]
# 模型预测结果
predicted_labels = [0, 1, 0, 0, 1, 1, 0, 1, 1, 0]

# 计算准确率
accuracy = accuracy_score(true_labels, predicted_labels)
print("Accuracy:", accuracy)

【精确率】

精确率(Precision)是机器学习和深度学习分类模型常用的评价指标之一,它衡量的是模型在预测为正例的样本中真正为正例的比例。

精确率的计算公式为:

精确率 = TP / (TP + FP)

其中,TP表示真正例的数量,FP表示假正例的数量。

精确率的优点:

  • 强调正例的准确性:精确率专注于模型将负例错误预测为正例的情况,它能够评估模型在预测为正例的样本中的准确性。
  • 适用于正例重要的场景:在一些应用中,正例的预测结果更为重要,如罕见疾病的诊断。精确率可以帮助我们衡量模型在这些场景下的性能。

精确率的缺点:

  • 忽略了假负例:精确率无法区分模型的假负例情况,即模型将正例错误地预测为负例的情况。在一些应用中,假负例的影响可能非常重要,如癌症的诊断。因此,仅仅使用精确率来评估模型可能会忽略这些重要的错误预测。

Demo代码实现如下所示:

from sklearn.metrics import precision_score

# 真实标签
true_labels = [0, 1, 1, 0, 1, 0, 0, 1, 1, 1]
# 模型预测结果
predicted_labels = [0, 1, 0, 0, 1, 1, 0, 1, 1, 0]

# 计算精确率
precision = precision_score(true_labels, predicted_labels)
print("Precision:", precision)

【召回率】

召回率(Recall),也称为灵敏度(Sensitivity)或真正例率(True Positive Rate),是机器学习和深度学习分类模型常用的评价指标之一。它衡量的是模型在所有真实正例中能够正确预测为正例的比例。

召回率的计算公式为:

召回率 = TP / (TP + FN)

其中,TP表示真正例的数量,FN表示假负例的数量。

召回率的优点:

  • 关注正例的识别能力:召回率可以评估模型对正例的识别能力,即模型能够正确找出多少个真实正例。
  • 适用于假负例重要的场景:在一些应用中,假负例的影响较为重要,如癌症的诊断。召回率可以帮助我们衡量模型在这些场景下的性能。

召回率的缺点:

  • 忽略了假正例:召回率无法区分模型的假正例情况,即模型将负例错误地预测为正例的情况。在一些应用中,假正例的影响可能非常重要,如垃圾邮件过滤。因此,仅仅使用召回率来评估模型可能会忽略这些重要的错误预测。

Demo代码实现如下所示:

from sklearn.metrics import recall_score

# 真实标签
true_labels = [0, 1, 1, 0, 1, 0, 0, 1, 1, 1]
# 模型预测结果
predicted_labels = [0, 1, 0, 0, 1, 1, 0, 1, 1, 0]

# 计算召回率
recall = recall_score(true_labels, predicted_labels)
print("Recall:", recall)

【F1值】

F1值是机器学习和深度学习分类模型中常用的综合评价指标,它同时考虑了模型的精确率(Precision)和召回率(Recall)。F1值的计算公式为:

F1 = 2 * (Precision * Recall) / (Precision + Recall)

其中,精确率和召回率的计算方式如下:

精确率 = TP / (TP + FP)
召回率 = TP / (TP + FN)

F1值的优点:

  • 综合考虑了精确率和召回率:F1值综合了精确率和召回率,可以更全面地评估模型的分类性能。它能够同时衡量模型的正例识别能力和负例识别能力,对于不平衡数据集和分类任务来说是一个较好的评价指标。
  • 适用于正负样本不平衡的场景:在一些分类任务中,正负样本的比例可能会存在较大的不平衡。F1值对于这类场景非常有用,因为它能够平衡考虑模型对正负样本的预测能力。

F1值的缺点:

  • 对精确率和召回率平衡要求较高:F1值假设精确率和召回率具有相同的重要性,并且对两者的平衡要求较高。在某些应用场景下,精确率和召回率的重要性可能不同,因此仅仅使用F1值来评估模型的性能可能会忽略这种差异。
  • 受数据分布影响较大:F1值的计算受到数据分布的影响,特别是在正负样本不平衡的情况下。当数据分布发生变化时,F1值的结果也会随之变化,因此在评估模型时需要谨慎考虑数据的分布情况。

Demo代码实现如下所示:

from sklearn.metrics import f1_score

# 真实标签
true_labels = [0, 1, 1, 0, 1, 0, 0, 1, 1, 1]
# 模型预测结果
predicted_labels = [0, 1, 0, 0, 1, 1, 0, 1, 1, 0]

# 计算F1值
f1 = f1_score(true_labels, predicted_labels)
print("F1 Score:", f1)

【ROC曲线】

ROC曲线(Receiver Operating Characteristic curve)是机器学习和深度学习分类模型中常用的评价指标,用于衡量分类模型的性能。ROC曲线通过绘制真正例率(True Positive Rate,TPR)和假正例率(False Positive Rate,FPR)之间的关系图来评估模型的分类准确性。

TPR和FPR的计算方式如下:

  • TPR = TP / (TP + FN)
  • FPR = FP / (FP + TN)

其中,TP表示真正例(模型正确预测为正例的样本数),FN表示假负例(模型错误预测为负例的样本数),FP表示假正例(模型错误预测为正例的样本数),TN表示真负例(模型正确预测为负例的样本数)。

ROC曲线的绘制过程如下:

  1. 计算模型预测结果的置信度(概率或得分)。
  2. 选择不同的阈值将置信度映射为二分类的预测结果。
  3. 根据不同的阈值计算对应的TPR和FPR。
  4. 绘制TPR-FPR曲线,横轴为FPR,纵轴为TPR。

ROC曲线的优点:

  • 不受分类阈值的影响:ROC曲线通过绘制TPR和FPR之间的关系图,不依赖于分类阈值的选择,能够全面地评估模型在不同阈值下的性能。
  • 直观反映分类模型的性能:ROC曲线能够直观地展示模型在正负样本之间的权衡关系,帮助我们理解模型的分类能力。

ROC曲线的缺点:

  • 无法直接比较模型的性能:ROC曲线可以用于比较同一模型在不同阈值下的性能,但不能直接比较不同模型之间的性能差异。为了比较不同模型的性能,需要使用其他指标,如曲线下面积(AUC)。
  • 受样本分布影响较大:ROC曲线的计算受到样本分布的影响,特别是在正负样本不平衡的情况下。当数据分布发生变化时,ROC曲线的形状和结果也会随之变化,因此在评估模型时需要注意数据的分布情况。

Demo代码实现如下所示:

import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, roc_auc_score

# 真实标签
true_labels = [0, 1, 1, 0, 1, 0, 0, 1, 1, 1]
# 模型预测结果的置信度(概率或得分)
predicted_scores = [0.2, 0.8, 0.6, 0.3, 0.7, 0.4, 0.1, 0.9, 0.7, 0.5]

# 计算TPR和FPR
fpr, tpr, thresholds = roc_curve(true_labels, predicted_scores)

# 计算AUC
auc = roc_auc_score(true_labels, predicted_scores)

# 绘制ROC曲线
plt.plot(fpr, tpr, label=f'AUC = {auc:.2f}')
plt.plot([0, 1], [0, 1], 'k--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic (ROC) Curve')
plt.legend(loc='lower right')
plt.show()

【AUC值】

AUC(Area Under the Curve)是机器学习模型评价中常用的指标之一,用于评估二分类模型的性能。AUC值表示了分类模型在不同阈值下的预测能力,即正确地将正例排在负例前面的能力。AUC的取值范围在0到1之间,数值越接近1表示模型的性能越好,数值越接近0.5则表示模型的性能越差。

AUC的计算方法是通过绘制ROC曲线(Receiver Operating Characteristic curve)来得到的。ROC曲线以模型的真正例率(True Positive Rate,也称为召回率)作为纵轴,以模型的假正例率(False Positive Rate)作为横轴,将模型在不同阈值下的表现绘制成曲线。AUC值则表示ROC曲线下的面积大小。

AUC的优点包括:

  1. 对分类器的输出结果不敏感:AUC值只受到模型的排序能力影响,而不受到具体的分类阈值影响,因此对于不同的阈值选择不敏感。
  2. 适用于不平衡数据集:AUC在处理不平衡数据集时比准确率(Accuracy)等指标更加稳定,能够更好地评估模型的性能。

AUC的缺点包括:

  1. 无法直接解释模型的性能:AUC仅仅是对模型的排序能力进行评估,无法提供模型在实际任务中的准确性。
  2. 对于类别不平衡的数据集,AUC可能会高估模型的性能:当数据集中的正例和负例比例严重失衡时,AUC可能会给出不准确的评估结果。

Demo代码实现如下所示:

from sklearn.metrics import roc_auc_score

# 假设y_true是真实的标签,y_pred是模型的预测概率
y_true = [0, 1, 0, 1]
y_pred = [0.2, 0.8, 0.3, 0.6]

# 计算AUC值
auc = roc_auc_score(y_true, y_pred)
print("AUC:", auc)

【KS( Kolmogorov-Smirnov)曲线】

KS(Kolmogorov-Smirnov)曲线是机器学习模型评价中常用的指标之一,用于评估二分类模型的性能。KS曲线基于累积分布函数(CDF)的比较,可以帮助我们确定最佳的分类阈值。

KS曲线的原理是通过比较正例和负例的累积分布函数来评估模型的分类能力。具体而言,KS曲线以模型的预测概率作为横轴,以累积正例比例和累积负例比例的差值(也称为KS统计量)作为纵轴,绘制出模型在不同阈值下的性能曲线。KS统计量表示了模型在不同概率阈值下正例和负例之间的最大差异。

KS曲线的优点包括:

  1. 直观易懂:KS曲线直观地展示了正例和负例之间的差异,可以帮助我们选择最佳的分类阈值。
  2. 对于不平衡数据集较为敏感:KS曲线能够更好地评估模型在不平衡数据集中的性能,因为它关注的是正例和负例之间的差异。

KS曲线的缺点包括:

  1. 无法直接解释模型的性能:KS曲线仅仅是对模型在不同阈值下的分类能力进行评估,无法提供模型在实际任务中的准确性。
  2. 对于类别不平衡的数据集,KS曲线可能会高估模型的性能:当数据集中的正例和负例比例严重失衡时,KS曲线可能会给出不准确的评估结果。

Demo代码实现如下所示:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve

# 假设y_true是真实的标签,y_pred是模型的预测概率
y_true = np.array([0, 1, 0, 1])
y_pred = np.array([0.2, 0.8, 0.3, 0.6])

# 计算正例和负例的累积分布函数
fpr, tpr, thresholds = roc_curve(y_true, y_pred)
ks = np.max(np.abs(tpr - fpr))

# 绘制KS曲线
plt.plot(thresholds, tpr, label="TPR")
plt.plot(thresholds, fpr, label="FPR")
plt.xlabel("Threshold")
plt.ylabel("Rate")
plt.title("KS Curve (KS = {:.3f})".format(ks))
plt.legend()
plt.show()

【PR曲线】

PR(Precision-Recall)曲线是机器学习分类模型中常用的性能评价指标之一,用于评估二分类模型的性能。PR曲线以召回率(Recall)为横轴,精确率(Precision)为纵轴,描述了在不同阈值下模型的性能变化。

PR曲线的原理是通过比较模型在不同阈值下的精确率和召回率来评估模型的性能。精确率定义为模型预测为正例的样本中真正为正例的比例,召回率定义为模型正确预测为正例的样本占所有真实正例样本的比例。通过改变分类阈值,可以得到一系列精确率和召回率的值,从而绘制PR曲线。

PR曲线的优点包括:

  1. 对于不平衡数据集较为敏感:PR曲线能够更好地评估模型在不平衡数据集中的性能,因为它关注的是正例样本的预测准确性和召回率。
  2. 直观易懂:PR曲线直观地展示了模型在不同阈值下的性能变化,可以帮助我们选择最佳的分类阈值。

PR曲线的缺点包括:

  1. 不适用于比较不同模型:PR曲线不能直接用于比较不同模型的性能,因为不同模型的基准线可能不同。在比较模型性能时,可以使用PR曲线下面积(AUC-PR)作为指标。
  2. 无法直接解释模型的准确性:PR曲线仅仅是对模型在不同阈值下的性能进行评估,无法提供模型在实际任务中的准确性。

Demo代码实现如下所示:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import precision_recall_curve

# 假设y_true是真实的标签,y_pred是模型的预测概率
y_true = np.array([0, 1, 0, 1])
y_pred = np.array([0.2, 0.8, 0.3, 0.6])

# 计算精确率和召回率
precision, recall, thresholds = precision_recall_curve(y_true, y_pred)

# 绘制PR曲线
plt.plot(recall, precision)
plt.xlabel("Recall")
plt.ylabel("Precision")
plt.title("PR Curve")
plt.show()

【Lift值】

Lift值是机器学习和数据挖掘领域中常用的评价指标之一,用于评估分类模型的性能。Lift值可以帮助我们了解模型在不同预测概率范围内的效果相比于随机选择的效果有多好。

Lift值的原理是通过比较模型预测结果与随机选择结果之间的差异来评估模型的性能。具体而言,Lift值是用模型的预测结果中正例比例与随机选择结果中正例比例的比值表示。这个比值可以告诉我们模型在不同预测概率范围内相比于随机选择的效果有多好。

Lift值的优点包括:

  1. 直观易懂:Lift值可以直观地表示模型的性能相对于随机选择的提升程度。
  2. 可解释性:Lift值可以帮助我们了解模型在不同预测概率范围内的效果,对于业务场景的解释具有一定的帮助。

Lift值的缺点包括:

  1. 无法直接解释模型的准确性:Lift值仅仅是对模型相对于随机选择的效果进行评估,无法提供模型在实际任务中的准确性。
  2. 受数据分布影响较大:Lift值对数据分布敏感,当数据分布发生变化时,Lift值的解释可能会有所变化。

Demo代码实现如下所示:

import numpy as np

# 假设y_true是真实的标签,y_pred是模型的预测概率
y_true = np.array([0, 1, 0, 1])
y_pred = np.array([0.2, 0.8, 0.3, 0.6])

# 将预测概率按从大到小排序
sorted_indices = np.argsort(y_pred)[::-1]
sorted_y_true = y_true[sorted_indices]

# 计算正例比例和随机选择结果中的正例比例
positive_ratio = np.cumsum(sorted_y_true) / np.sum(sorted_y_true)
random_positive_ratio = np.arange(1, len(y_true) + 1) / len(y_true)

# 计算Lift值
lift = positive_ratio / random_positive_ratio

print("Lift values:", lift)

【Kappa系数】

Kappa系数(Kappa coefficient)是一种用于评估分类模型性能的指标,常用于衡量分类器的准确性与判断的一致性。Kappa系数考虑了分类器的准确性与随机选择之间的差异,可以帮助我们判断模型的性能是否超过了随机选择的水平。

Kappa系数的原理是通过比较分类器的预测结果与真实标签之间的一致性来评估模型的性能。Kappa系数的取值范围为[-1, 1],其中1表示完全一致,0表示与随机选择一样,-1表示完全不一致。Kappa系数的计算考虑了分类器的预测结果与真实标签之间的一致性,同时考虑了随机选择的效果。

Kappa系数的优点包括:

  1. 考虑了随机选择的效果:Kappa系数通过与随机选择进行比较,可以帮助我们判断模型的性能是否优于随机选择的水平。
  2. 对不平衡数据集较为鲁棒:Kappa系数相对于准确率等指标对不平衡数据集更为鲁棒,因为它考虑了分类器的预测结果与真实标签之间的一致性。

Kappa系数的缺点包括:

  1. 无法解释模型的准确性:Kappa系数仅仅是对分类器的一致性进行评估,无法提供模型在实际任务中的准确性。
  2. 受类别不平衡的影响:Kappa系数对类别不平衡较为敏感,当类别不平衡较为严重时,Kappa系数的解释可能会受到影响。

Demo代码实现如下所示:

from sklearn.metrics import cohen_kappa_score

# 假设y_true是真实的标签,y_pred是模型的预测结果
y_true = [0, 1, 0, 1]
y_pred = [0, 1, 1, 1]

# 计算Kappa系数
kappa = cohen_kappa_score(y_true, y_pred)

print("Kappa coefficient:", kappa)

【宏平均、维平均】

宏平均(Macro-average)和微平均(Micro-average)是常用的评价分类模型性能的指标,用于计算多类别分类模型的准确率、召回率和F1值等指标。

宏平均的原理是先计算每个类别的准确率、召回率和F1值,然后对所有类别的指标进行平均。宏平均对每个类别都赋予了相同的权重,无论类别的样本数量多少,都被视为同等重要。宏平均适用于各个类别的重要性相同的情况。

宏平均的优点包括:

  1. 公平性:宏平均对每个类别都赋予了相同的权重,能够平等对待各个类别,适用于各个类别的重要性相同的情况。
  2. 直观易懂:宏平均计算简单,对于理解模型在不同类别上的性能有一定帮助。

宏平均的缺点包括:

  1. 不考虑类别的样本数量:宏平均不考虑类别的样本数量差异,对于样本数量不平衡的情况,可能无法准确反映模型的性能。
  2. 对小类别影响较大:宏平均对每个类别都赋予相同的权重,对于小类别的性能表现可能会被大类别的性能表现所主导。

微平均的原理是将所有类别的预测结果合并后计算准确率、召回率和F1值。微平均将所有类别的样本都视为一个整体,对每个样本赋予相同的权重。微平均适用于样本数量不平衡的情况。

微平均的优点包括:

  1. 考虑样本数量差异:微平均将所有类别的样本视为一个整体,能够考虑样本数量的差异,适用于样本数量不平衡的情况。
  2. 对大类别影响较大:微平均对每个样本都赋予相同的权重,对于大类别的性能表现可能会对整体性能有较大影响。

微平均的缺点包括:

  1. 不公平性:微平均将所有类别的样本都视为一个整体,对每个样本赋予相同的权重,可能不公平对待样本数量较少的类别。
  2. 可能无法准确反映各个类别的性能:由于将所有类别的样本合并计算指标,微平均可能无法准确反映各个类别的性能。

Demo代码实现如下所示:

from sklearn.metrics import precision_score, recall_score, f1_score

# 假设y_true是真实的标签,y_pred是模型的预测结果
y_true = [0, 1, 0, 1]
y_pred = [0, 1, 1, 1]

# 计算宏平均
macro_precision = precision_score(y_true, y_pred, average='macro')
macro_recall = recall_score(y_true, y_pred, average='macro')
macro_f1 = f1_score(y_true, y_pred, average='macro')

# 计算微平均
micro_precision = precision_score(y_true, y_pred, average='micro')
micro_recall = recall_score(y_true, y_pred, average='micro')
micro_f1 = f1_score(y_true, y_pred, average='micro')

print("Macro Precision:", macro_precision)
print("Macro Recall:", macro_recall)
print("Macro F1:", macro_f1)
print("Micro Precision:", micro_precision)
print("Micro Recall:", micro_recall)
print("MicroF1:", micro_f1)

如果还有其他相关的指标欢迎评论区留言补充,我一并补充进来。

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

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

相关文章

多模块下MyBatis官方生成器

MyBatis官方生成器 1. 依赖插件 创建generator模块 在父模块中进行版本管理 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version> </dependency><dependency><g…

Python练习题(三)

&#x1f4d1;前言 本文主要是【Python】——Python练习题的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&am…

[足式机器人]Part2 Dr. CAN学习笔记-Ch0-1矩阵的导数运算

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Ch0-1矩阵的导数运算 1. 标量向量方程对向量求导&#xff0c;分母布局&#xff0c;分子布局1.1 标量方程对向量的导数1.2 向量方程对向量的导数 2. 案例分析&#xff0c;线性回归3. 矩阵求导的链…

el-pagination 纯前端分页

需求&#xff1a;后端把所有数据都返给前端&#xff0c;前端进行分页渲染。 实现思路&#xff1a;先把数据存储到一个大数组中&#xff0c;然后调用方法进行切割。主要使用数组的slice方法 所有代码&#xff1a; html <template><div style"padding: 20px&qu…

CSS 局限-contain

CSS 局限 CSS 局限规范的目标在于通过允许浏览器从页面的其余部分中隔离出页面子树而改善性能。若浏览器知道页面的某一部分为独立的&#xff0c;则可优化渲染并改善性能。 此外&#xff0c;此规范允许开发者标示元素究竟是否应当渲染其内容&#xff0c;以及在屏外时是否应当…

【程序员 | 交流】程序员情商修炼指南系列 (沟通是有效合作一大利器)

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

如何能够对使用ShaderGraph开发的Shader使用SetTextureOffset和SetTextureScale方法

假设在ShaderGraph中的纹理的引用名称为"_BaseMap"&#xff0c;同时对这个"_BaseMap"纹理使用了采样的节点"SampleTexture2D"&#xff0c;然后该采样节点的uv接入的TilingAndOffset节点&#xff0c;此时的关键步骤是新建一个Vector4属性&#xf…

HT7183 高功率异步升压转换器 中文资料

HT7183是一款高功率异步升压转换器&#xff0c;集成120mΩ功率开关管&#xff0c;为便携式系统提供G效的小尺寸处理方案。HT7183具有2.6V至5.5V输入电压范围&#xff0c;可为各类不同供电的应用提供支持。HT7183具备3A开关电流能力&#xff0c;并且能够提供高达16V的输出电压。…

实时绘画迎来大更新,本地即可部署

个人网站&#xff1a;https://tianfeng.space 前言 自此LCM公布以来&#xff0c;这一个星期在相关应用方面的更新速度nb&#xff0c;各种实时绘画工作流随之出现&#xff0c;之前还只能依赖krea内测资格使用&#xff0c;让我们来看看上周发生了那些事吧&#xff01; 网盘&am…

做外贸如何写开发信?外贸邮件营销怎么写?

外贸业务员写开发信的技巧&#xff1f;撰写客户开发信模板详解&#xff01; 外贸经营是一项竞争激烈的行业&#xff0c;写好开发信是吸引客户、建立合作关系的重要一环。蜂邮EDM将为您详细介绍如何撰写出色的开发信&#xff0c;以吸引客户的眼球&#xff0c;引领他们与您建立联…

YOLOv8独家原创改进:创新自研CPMS注意力,多尺度通道注意力具+多尺度深度可分离卷积空间注意力,全面升级CBAM

💡💡💡本文自研创新改进:自研CPMS, 多尺度通道注意力具+多尺度深度可分离卷积空间注意力,全面升级CBAM 1)作为注意力CPMS使用; 推荐指数:五星 CPMS | 亲测在多个数据集能够实现涨点,对标CBAM。 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/ca…

PTA 6-1 最小生成树(普里姆算法)使用递归

普利姆算法的原理 普里姆算法查找最小生成树的过程&#xff0c;采用了贪心算法的思想。对于包含 N 个顶点的连通网&#xff0c;普里姆算法每次从连通网中找出一个权值最小的边&#xff0c;这样的操作重复 N-1 次&#xff0c;由 N-1 条权值最小的边组成的生成树就是最小生成树。…

HarmonyOS 振动效果开发指导

Vibrator 开发概述 振动器模块服务最大化开放硬工最新马达器件能力&#xff0c;通过拓展原生马达服务实现振动与交互融合设计&#xff0c;打造细腻精致的一体化振动体验和差异化体验&#xff0c;提升用户交互效率和易用性、提升用户体验、增强品牌竞争力。 运作机制 Vibrato…

数据结构与算法-动态查找表

查找 &#x1f388;3动态查找表&#x1f52d;3.1二叉排序树&#x1f3c6;3.1.1二叉排序树的类定义&#x1f3c6;3.1.2二叉排序树的插入和生成&#x1f3c6;3.1.3二叉树的查找&#x1f3c6;3.1.4二叉排序树的删除 &#x1f52d;3.2平衡二叉树&#x1f3c6;3.2.1平衡二叉树的调整…

基于jsp的搜索引擎

摘 要 随着互联网的不断发展和日益普及&#xff0c;网上的信息量在迅速地增长&#xff0c;在2004年4月&#xff0c;全球Web页面的数目已经超过40亿&#xff0c;中国的网页数估计也超过了3亿。 目前人们从网上获得信息的主要工具是浏览器&#xff0c;搜索引擎在网络中占有举足轻…

平价的开放式耳机怎么选?推荐几款平价好用的耳机,亲测对比

是不是也在为如何在有限的预算内找到一款性价比高的开放式耳机而烦恼呢&#xff1f;别着急&#xff0c;小编为你精心挑选了几款平价好用的开放式耳机&#xff0c;并亲自进行了对比测试&#xff0c;在这个音乐时代&#xff0c;不需要花大价钱就能拥有高品质的音乐体验&#xff0…

微积分-圆的面积和周长(1)

微积分 历史 先有牛顿后有天&#xff0c;创世之后再造仙。作为近代物理学的开山鼻祖&#xff0c;牛顿的贡献怎么评价都不为过。而微积分是首先被牛顿搞出来的也已经是公认的事实&#xff0c;牛顿在研究物理问题的时候顺带做出来的&#xff0c;不知是舍不得发表还是不屑于发表…

Jmeter的安装配置,性能测试编写

1、jmeter介绍 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言&#xff0c;JMeter小巧轻便且免费&#xff0c;逐渐成为了主流的性能测试工具&#xff0c;是每个测试人员都必须要掌握的工具之一。 运行环境为Windows 10系统&#xff0c…

电动车刷卡-CI522方案

Ci522是一颗工作在13.56MHz频率下的非接触式读写芯片&#xff0c;支持读A卡&#xff08;CI523支持读A/B卡&#xff09;&#xff0c;可做智能门锁、电动车NFC一键启动、玩具NFC开锁等应用。为部分要求低成本&#xff0c;PCB小体积的产品提供了可靠的选择。 Ci522与Si522/MFRC52…

Python函数的基本使用(一)

Python函数的基本使用&#xff08;一&#xff09; 一、函数概述二、函数的定义2.1 函数的语法2.2 语法说明2.3 函数定义的方式2.4 总结 三、函数的调用3.1 函数调用语法3.2 语法说明3.3 函数调用 四、函数的参数4.1 参数的分类4.2 必需参数4.3 默认值参数4.4 关键字参数4.5 不定…