机器学习 - 不均衡学习和异常点检测

第一部分:不均衡学习

1. 引言
定义与重要性
  • 不均衡数据集:指数据集中不同类别的数据数量差异很大,通常是正负样本比例严重失衡。例如,在医疗诊断中,患病患者(正样本)远少于健康患者(负样本)。
  • 重要性:在许多实际应用中,如医疗诊断、欺诈检测等,少数类样本往往代表重要的情况。忽略少数类可能导致严重后果,例如未能检测出欺诈交易。
2. 不均衡数据处理方法
重采样方法
欠采样(Under-sampling)
  • 定义:通过减少多数类样本的数量来平衡数据集。
  • 优点:减少数据量,训练速度快。
  • 缺点:可能丢失多数类的重要信息。

Python代码示例

from imblearn.under_sampling import RandomUnderSampler
from sklearn.datasets import make_classification# 生成一个不均衡数据集
X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, weights=[0.9, 0.1], random_state=42)# 欠采样
rus = RandomUnderSampler(random_state=42)
X_res, y_res = rus.fit_resample(X, y)print("原始数据集类分布:", dict(zip(*np.unique(y, return_counts=True))))
print("欠采样后类分布:", dict(zip(*np.unique(y_res, return_counts=True))))

运行结果解释

  • 原始数据集中,正负样本比例可能为90:10。
  • 经过欠采样后,正负样本比例接近1:1,但可能丢失了多数类的重要信息。
过采样(Over-sampling)
  • 定义:通过增加少数类样本的数量来平衡数据集。
  • 优点:保留所有多数类信息。
  • 缺点:可能导致过拟合,即模型过于拟合训练数据,在新数据上表现不佳。

Python代码示例

from imblearn.over_sampling import RandomOverSampler# 过采样
ros = RandomOverSampler(random_state=42)
X_res, y_res = ros.fit_resample(X, y)print("原始数据集类分布:", dict(zip(*np.unique(y, return_counts=True))))
print("过采样后类分布:", dict(zip(*np.unique(y_res, return_counts=True))))

运行结果解释

  • 原始数据集中,正负样本比例可能为90:10。
  • 经过过采样后,正负样本比例接近1:1,但可能导致模型过拟合。
SMOTE(Synthetic Minority Over-sampling Technique)
  • 定义:通过生成少数类的合成样本来平衡数据集。
  • 算法原理
    • 对于每个少数类样本,随机选择k个最近邻样本,生成新样本。
    • 公式:新样本 x new = x i + λ ⋅ ( x n n − x i ) x_{\text{new}} = x_i + \lambda \cdot (x_{nn} - x_i) xnew=xi+λ(xnnxi)
      • 其中, x i x_i xi 是少数类样本, x n n x_{nn} xnn 是k个最近邻样本之一, λ \lambda λ 是0到1之间的随机数。

Python代码示例

from imblearn.over_sampling import SMOTE# 使用SMOTE
smote = SMOTE(random_state=42)
X_res, y_res = smote.fit_resample(X, y)print("原始数据集类分布:", dict(zip(*np.unique(y, return_counts=True))))
print("SMOTE后类分布:", dict(zip(*np.unique(y_res, return_counts=True))))

运行结果解释

  • 原始数据集中,正负样本比例可能为90:10。
  • 经过SMOTE后,正负样本比例接近1:1,并且生成的新样本更具代表性,有助于减轻过拟合。
数据增强技术
  • 定义:通过对现有数据进行变换(如旋转、缩放等)增加样本数量,主要用于图像数据。
  • 优点:适用于图像数据,增强模型的泛化能力。
  • 缺点:需要特定领域知识。

Python代码示例

from keras.preprocessing.image import ImageDataGenerator
import numpy as np# 假设我们有一个图像数据集
datagen = ImageDataGenerator(rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, zoom_range=0.2)# 假设X_train包含我们的图像数据
X_train_augmented = datagen.flow(X_train, batch_size=32)

运行结果解释

  • 数据增强生成了变换后的新图像数据,有助于提高模型在新图像上的性能。
3. 模型评估指标
混淆矩阵(Confusion Matrix)
  • 定义:用于评估分类模型性能的矩阵,显示了真实标签与预测标签的对比。
  • 元素
    • True Positive (TP):正类预测正确
    • True Negative (TN):负类预测正确
    • False Positive (FP):负类预测为正类
    • False Negative (FN):正类预测为负类

Python代码示例

from sklearn.metrics import confusion_matrix# y_true为真实标签,y_pred为预测标签
y_true = [0, 1, 1, 0, 1, 0, 1, 1, 0, 1]
y_pred = [0, 0, 1, 0, 1, 0, 1, 0, 0, 1]
cm = confusion_matrix(y_true, y_pred)
print("混淆矩阵:\n", cm)

运行结果解释

  • 混淆矩阵显示了模型预测的正负样本数量,帮助分析模型性能。例如,模型预测了3个真正类(TP=3)、4个真负类(TN=4)、1个假正类(FP=1)、2个假负类(FN=2)。
精确率(Precision)、召回率(Recall)与F1分数(F1 Score)
  • 定义
    • 精确率(Precision):预测为正类样本中实际为正类的比例。
      Precision = T P T P + F P \text{Precision} = \frac{TP}{TP + FP} Precision=TP+FPTP
    • 召回率(Recall):实际为正类样本中预测为正类的比例。
      Recall = T P T P + F N \text{Recall} = \frac{TP}{TP + FN} Recall=TP+FNTP
    • F1分数(F1 Score):精确率和召回率的调和平均值。
      F 1 = 2 ⋅ Precision ⋅ Recall Precision + Recall F1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} F1=2Precision+RecallPrecisionRecall

Python代码示例

from sklearn.metrics import precision_score, recall_score, f1_scoreprecision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)
print(f"精确率: {precision}, 召回率: {recall}, F1分数: {f1}")

运行结果解释

  • 精确率:预测为正类的样本中,实际为正类的比例。例如,如果精确率为0.75,表示模型预测的正类样本中有75%是正确的。
  • 召回率:实际为正类的样本中,预测为正类的比例。例如,如果召回率为0.60,表示所有实际为正类的样本中有60%被正确预测为正类。
  • F1分数:综合考虑精确率和召回率的指标。如果F1分数为0.67,表示模型在平衡精确率和召回率方面表现较好。
ROC曲线与AUC
  • 定义
    • ROC曲线(Receiver Operating Characteristic Curve):在不同阈值下,真阳性率(TPR)对假阳性率(FPR)的绘图。
    • AUC(Area Under the Curve):ROC曲线下的面积,表示模型的整体性能。

Python代码示例

from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt# y_proba是预测为正类的概率
y_proba = [0.1, 0.4, 0.35, 0.8, 0.7, 0.6, 0.55, 0.9, 0.45, 0.3]
fpr, tpr, thresholds = roc_curve(y_true, y_proba)
roc_auc = auc(fpr, tpr)plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()

运行结果解释

  • ROC曲线显示了在不同阈值下的真阳性率和假阳性率。AUC的值越接近1,模型性能越好。如果AUC为0.85,表示模型在区分正负样本方面表现较好。
4. 不均衡学习算法
权重调整方法(Cost-sensitive Learning)
  • 定义:通过调整不同类别的权重,使模型在不均衡数据集上表现更好。通常给少数类样本分配更大的权重。
  • 公式:损失函数增加类别权重,例如:
    Weighted Loss = ∑ i = 1 N w i ⋅ L ( y i , y ^ i ) \text{Weighted Loss} = \sum_{i=1}^{N} w_i \cdot L(y_i, \hat{y}_i) Weighted Loss=i=1NwiL(yi,y^i)
    其中, w i w_i wi 是样本的权重。

Python代码示例(以Logistic回归为例):

from sklearn.linear_model import LogisticRegressionmodel = LogisticRegression(class_weight='balanced')
model.fit(X_train, y_train)

运行结果解释

  • 使用class_weight='balanced'时,模型会根据类别的样本数自动调整权重,使模型更好地处理不均衡数据集。
集成方法(Ensemble Methods)
Bagging和Boosting
  • 定义:通过组合多个基模型提升模型性能。
    • Bagging(Bootstrap Aggregating):通过对数据集进行多次随机采样训练多个模型,然后平均其预测结果。
    • Boosting:通过迭代地训练多个弱分类器,每次迭代根据前一轮的错误率调整样本权重。

Python代码示例

from sklearn.ensemble import BaggingClassifier, GradientBoostingClassifierbagging_model = BaggingClassifier()
boosting_model = GradientBoostingClassifier()
bagging_model.fit(X_train, y_train)
boosting_model.fit(X_train, y_train)

运行结果解释

  • Bagging和Boosting可以提高模型的稳定性和准确性,尤其是在处理不均衡数据集时效果显著。
Balanced Random Forest
  • 定义:对每个决策树的训练样本进行重采样,使各类别均衡。
  • Python代码
from imblearn.ensemble import BalancedRandomForestClassifierbrf = BalancedRandomForestClassifier()
brf.fit(X_train, y_train)

运行结果解释

  • Balanced Random Forest通过在训练每棵树时对数据进行平衡采样,来处理不均衡数据集,提高模型的泛化能力。
EasyEnsemble
  • 定义:通过多次欠采样和集成多个分类器处理不均衡数据集。
  • Python代码
from imblearn.ensemble import EasyEnsembleClassifieree = EasyEnsembleClassifier()
ee.fit(X_train, y_train)

运行结果解释

  • EasyEnsemble通过多次欠采样来创建多个训练集,并训练多个分类器,最后将这些分类器的结果进行融合,提高模型在不均衡数据集上的表现。
5. 案例研究
  • 使用实际数据集(如信用卡欺诈检测)
    • 数据预处理
    • 使用不均衡学习方法训练模型
    • 模型评估与优化

案例代码示例

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report# 生成一个不均衡数据集
X, y = make_classification(n_samples=10000, n_features=20, n_classes=2, weights=[0.99, 0.01], random_state=42)# 数据分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 使用SMOTE进行过采样
smote = SMOTE(random_state=42)
X_train_res, y_train_res = smote.fit_resample(X_train, y_train)# 训练模型
model = RandomForestClassifier(random_state=42)
model.fit(X_train_res, y_train_res)# 预测与评估
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

运行结果解释

  • 使用SMOTE进行过采样后,模型在测试集上的表现得到了显著提高。分类报告中可以看到精确率、召回率和F1分数的提升。

第二部分:异常点检测

1. 引言
定义与重要性
  • 异常点检测:识别数据集中与多数数据显著不同的数据点。例如,网络流量中的异常请求或金融交易中的异常行为。
  • 重要性:在网络安全、金融监控等领域,检测异常行为有助于预防潜在威胁。
2. 异常点类型
点异常(Point Anomalies)
  • 定义:单个数据点与其他数据点显著不同。
  • 示例:网络流量中的异常请求。
语境异常(Contextual Anomalies)
  • 定义:在特定上下文中异常的数据点。
  • 示例:特定时间段内异常的温度读数。
集体异常(Collective Anomalies)
  • 定义:多个数据点组合在一起构成异常。
  • 示例:连续的异常网络流量。
3. 异常点检测方法
基于统计的方法
Z-score分析
  • 定义:基于标准分数检测异常点。标准分数衡量数据点与平均值的偏离程度。
  • 公式
    Z = X − μ σ Z = \frac{X - \mu}{\sigma} Z=σXμ
    其中, X X X 是数据点, μ \mu μ 是均值, σ \sigma σ 是标准差。

Python代码示例

import numpy as npdef detect_outliers_zscore(data, threshold=3):mean = np.mean(data)std = np.std(data)z_scores = [(x - mean) / std for x in data]return np.where(np.abs(z_scores) > threshold)data = [10, 12, 14, 15, 16, 100, 18, 19, 20]
outliers = detect_outliers_zscore(data)
print("异常点索引:", outliers)

运行结果解释

  • 输出异常数据点的索引位置。例如,数据集中的100可能被识别为异常点。
盒须图(Box Plot)
  • 定义:通过四分位数和IQR检测异常点。IQR是上四分位数和下四分位数的差值。
  • Python代码
import matplotlib.pyplot as pltdata = [10, 12, 14, 15, 16, 100, 18, 19, 20]
plt.boxplot(data)
plt.show()

运行结果解释

  • 盒须图中的离群点代表异常值。例如,图中的100可能被标记为异常值。
基于距离的方法
K-近邻(K-Nearest Neighbors, KNN)
  • 定义:基于与最近邻样本的距离检测异常点。
  • Python代码
from sklearn.neighbors import LocalOutlierFactor# 假设X是您的特征数据
lof = LocalOutlierFactor(n_neighbors=20)
y_pred = lof.fit_predict(X)
outliers = np.where(y_pred == -1)
print("异常点索引:", outliers)

运行结果解释

  • 输出异常数据点的索引位置。KNN基于数据点与其邻居的距离来检测异常点。
密度基异常点检测(DBSCAN)
  • 定义:基于样本密度检测异常点。密度较低的区域可能包含异常点。
  • Python代码
from sklearn.cluster import DBSCANdb = DBSCAN(eps=0.5, min_samples=5).fit(X)
outliers = np.where(db.labels_ == -1)
print("异常点索引:", outliers)

运行结果解释

  • 输出异常数据点的索引位置。DBSCAN通过检测样本的密度来识别异常点。
基于聚类的方法
K-means
  • 定义:基于样本到最近聚类中心的距离检测异常点。
  • Python代码
from sklearn.cluster import KMeanskmeans = KMeans(n_clusters=3)
kmeans.fit(X)
distances = kmeans.transform(X).min(axis=1)
outliers = np.where(distances > np.percentile(distances, 95))
print("异常点索引:", outliers)

运行结果解释

  • 输出异常数据点的索引位置。距离聚类中心较远的数据点可能被标记为异常点。
高斯混合模型(Gaussian Mixture Model, GMM)
  • 定义:基于样本的似然值检测异常点。似然值较低的样本可能是异常点。
  • Python代码
from sklearn.mixture import GaussianMixturegmm = GaussianMixture(n_components=3)
gmm.fit(X)
scores = gmm.score_samples(X)
outliers = np.where(scores < np.percentile(scores, 5))
print("异常点索引:", outliers)

运行结果解释

  • 输出异常数据点的索引位置。似然值较低的数据点可能被标记为异常点。
基于机器学习的方法
一类支持向量机(One-Class SVM)
  • 定义:通过学习一个分类超平面,将正常样本与异常样本分离。
  • Python代码
from sklearn.svm import OneClassSVMocsvm = OneClassSVM(kernel='rbf', gamma=0.001, nu=0.03)
ocsvm.fit(X_train)
y_pred = ocsvm.predict(X_test)
outliers = np.where(y_pred == -1)
print("异常点索引:", outliers)

运行结果解释

  • 输出异常数据点的索引位置。One-Class SVM通过学习一个超平面,将正常样本与异常样本分离。
随机森林(Random Forest)
  • 定义:基于多个决策树检测异常点。通过树的结构来识别异常样本。
  • Python代码
from sklearn.ensemble import IsolationForestiforest = IsolationForest(contamination=0.1)
iforest.fit(X)
y_pred = iforest.predict(X)
outliers = np.where(y_pred == -1)
print("异常点索引:", outliers)

运行结果解释

  • 输出异常数据点的索引位置。Isolation Forest通过多个决策树来检测异常点。
自编码器(Autoencoders)
  • 定义:通过神经网络重构输入数据,基于重构误差检测异常点。重构误差较大的样本可能是异常点。
  • Python代码
import tensorflow as tf
from tensorflow.keras import layers# 定义自编码器
input_dim = X.shape[1]
encoding_dim = input_dim // 2input_layer = layers.Input(shape=(input_dim,))
encoded = layers.Dense(encoding_dim, activation='relu')(input_layer)
decoded = layers.Dense(input_dim, activation='sigmoid')(encoded)autoencoder = tf.keras.Model(input_layer, decoded)
autoencoder.compile(optimizer='adam', loss='mse')# 训练自编码器
autoencoder.fit(X, X, epochs=50, batch_size=32, validation_split=0.1)# 重构误差
reconstructions = autoencoder.predict(X)
mse = np.mean(np.power(X - reconstructions, 2), axis=1)
outliers = np.where(mse > np.percentile(mse, 95))
print("异常点索引:", outliers)

运行结果解释

  • 输出异常数据点的索引位置。重构误差较大的数据点可能被标记为异常点。

第三部分:实战项目

项目1:信用卡欺诈检测
  • 数据预处理:清洗和处理数据,处理缺失值和不均衡数据。
  • 使用不均衡学习方法训练模型:使用SMOTE进行过采样,训练随机森林模型。
  • 模型评估与优化:使用混淆矩阵、精确率、召回率和F1分数评估模型,调整参数以优化模型性能。

完整案例代码

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
from imblearn.over_sampling import SMOTE# 生成一个不均衡数据集
X, y = make_classification(n_samples=10000, n_features=20, n_classes=2, weights=[0.99, 0.01], random_state=42)# 数据分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 使用SMOTE进行过采样
smote = SMOTE(random_state=42)
X_train_res, y_train_res = smote.fit_resample(X_train, y_train)# 训练模型
model = RandomForestClassifier(random_state=42)
model.fit(X_train_res, y_train_res)# 预测与评估
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

运行结果解释

  • 使用SMOTE进行过采样后,模型在测试集上的表现得到了显著提高。分类报告中可以看到精确率、召回率和F1分数的提升。
项目2:网络入侵检测
  • 数据预处理:清洗和处理数据,处理缺失值。
  • 使用异常点检测方法训练模型:使用Isolation Forest进行异常检测。
  • 模型评估与优化:使用ROC曲线和AUC评估模型,调整参数以优化模型性能。

完整案例代码

from sklearn.ensemble import IsolationForest
from sklearn.metrics import roc_auc_score, roc_curve
import matplotlib.pyplot as plt# 假设X, y是您的特征和标签
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 训练Isolation Forest模型
iforest = IsolationForest(contamination=0.1, random_state=42)
iforest.fit(X_train)# 预测与评估
y_pred = iforest.predict(X_test)
y_pred = [1 if x == -1 else 0 for x in y_pred]  # 将异常点标记为1,正常点标记为0# 计算AUC
roc_auc = roc_auc_score(y_test, y_pred)
print("AUC:", roc_auc)# 绘制ROC曲线
fpr, tpr, thresholds = roc_curve(y_test, y_pred)
plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()

运行结果解释

  • 使用Isolation Forest检测异常点,计算AUC和绘制ROC曲线,评估模型性能。
项目3:设备故障预测
  • 数据预处理:清洗和处理数据,处理缺失值。
  • 使用不均衡学习和异常点检测方法训练模型:结合SMOTE和Isolation Forest进行处理。
  • 模型评估与优化:使用混淆矩阵、精确率、召回率和F1分数评估模型,调整参数以优化模型性能。

完整案例代码

# 数据预处理和生成
X, y = make_classification(n_samples=10000, n_features=20, n_classes=2, weights=[0.99, 0.01], random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 使用SMOTE进行过采样
smote = SMOTE(random_state=42)
X_train_res, y_train_res = smote.fit_resample(X_train, y_train)# 训练Isolation Forest模型
iforest = IsolationForest(contamination=0.1, random_state=42)
iforest.fit(X_train_res)# 预测与评估
y_pred = iforest.predict(X_test)
y_pred = [1 if x == -1 else 0 for x in y_pred]  # 将异常点标记为1,正常点标记为0# 使用混淆矩阵、精确率、召回率和F1分数评估模型
print(classification_report(y_test, y_pred))

运行结果解释

  • 使用SMOTE和Isolation Forest进行设备故障预测,通过评估报告分析模型性能。

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

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

相关文章

基于扩散模型的,开源世界模型DIAMOND

日内瓦大学、微软研究院和爱丁堡大学的研究人员联合开源了&#xff0c;基于扩散模型的世界模型—DIAMOND。 研究人员之所以选择扩散模型作为基础&#xff0c;是因为可以更好地捕捉视觉细节&#xff0c;同时具有建模复杂多模态分布的能力&#xff0c;以便在不同的环境下进行训练…

vue3 手动简单 24h 甘特图封装

甘特图 手动封装简版甘特图&#xff0c;纯展示功能&#xff0c;无其他操作 文章目录 甘特图前言效果图组件使用总结 前言 开始的思路是使用echarts 瀑布图来体现&#xff0c;但是试验后发现&#xff0c;头部时间功能不满足&#xff0c;然未找到其他组件&#xff0c;于是手动封…

VTK实现三视图显示及交互STL模型

VTK实现STL模型的三视图显示及交互 最近收到需求&#xff0c;要实现多视图显示同一个STL模型&#xff0c;并且控制主窗口要其他试图窗口也跟着交互&#xff0c;花了点时间去尝试一下&#xff0c;把这个效果给实现出来了&#xff0c;而且实现也挺简单。 效果演示 要点 用同一个…

微火全域运营平台成优选,业内人士纷纷研究!

随着全域运营赛道的兴盛&#xff0c;越来越多的全域运营平台陆续上线&#xff0c;拓宽全域运营服务商选择空间的同时&#xff0c;也让全域运营平台选择成为了他们最为头疼的问题。在此背景下&#xff0c;各大全域运营平台背后的研发公司开始各出奇招&#xff0c;以获得更多全域…

EI期刊的定金和尾款

当涉及到EI&#xff08;工程索引&#xff09;期刊发表并支付定金和尾款时&#xff0c;许多学者和研究人员可能会感到担忧&#xff0c;因为这涉及到一定的风险。在探讨这个话题时&#xff0c;我们需要考虑几个因素&#xff0c;包括期刊的声誉、可信度、出版质量以及作者的权益保…

windows上安装miniforge和jupyterlab

1&#xff0c;下载miniforge3 GitHub - conda-forge/miniforge: A conda-forge distribution. 下载下来后傻瓜式安装就可以了 配置环境变量&#xff0c;在系统环境变量的path添加下列就行了&#xff0c;根据自己的路径修改 2&#xff0c;创建虚拟环境 conda create -n test …

layui实现表格根据数据来勾选已保存的数据

示例图 勾选一次保存后&#xff0c;每次进到查询都会看到被勾选的数据&#xff0c;代码如下&#xff1a; done: function(res, curr, count) {var groupId "[[${groupId}]]";$.ajax({url: //写后端获取数据的接口type: GET,success: function(data) {console.log(d…

3.00002 内存管理之postgresql如何初始化内存上下文,都初始化了哪些上下文?

文章目录 解决问题:PostgreSQL 7. 1 以前的版本在处理大量以指针传值的查询时一直存在着内存泄漏的问题,直到 查询结束才能将内存收回 。内存上下文-数据结构内存上下文-启动相关函数MemoryContextInitAllocSetContextCreate (宏,定义为:AllocSetContextCreateInternal (as…

ArcGIS常规操作-带你创建正确的空间数据库

ArcGIS常规操作-带你创建正确的空间数据库 ArcGIS一词在各行业中出现得越来越多&#xff0c;尤其在国土空间规划中&#xff0c;依赖大量GIS工具和技术的应用&#xff0c;ArcGIS成为了必备的技能之一。今天讲解一下ArcGIS的基础操作&#xff0c;让大家可以快速地上手ArcGIS&…

Graph Composer全面介绍

本文全面介绍了Graph Composer的功能、安装、使用方法以及高级特性&#xff0c;旨在帮助读者从基础到高级全面掌握Graph Composer的使用&#xff0c;并有效应用于智能视频分析和AI应用开发。 文章目录 Graph Composer概述Graph Composer的基本功能和优势Graph Composer与NVIDIA…

亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

近日&#xff0c;2024中国图象图形大会在古都西安盛大开幕。本届大会由中国图象图形学学会主办&#xff0c;空军军医大学、西安交通大学、西北工业大学承办&#xff0c;通过二十多场论坛、百余项成果&#xff0c;集中展示了生成式人工智能、大模型、机器学习、类脑计算等多个图…

SQL问题的常用信息收集命令及解决思路 |OceanBase应用实践

面对SQL问题&#xff0c;大家的常用的分析思路是&#xff1a; 一、问题是否源于SQL本身&#xff1f;是的话需进行SQL调优。 二、SQL语句本身无误&#xff0c;但执行效果并未达到我们的预期效果。 检查当前的服务器负载状况&#xff0c;例如CPU利用率、内存占用、IO读写等关键…

[蓝桥杯 2021 省 AB2] 负载均衡

一.题目 题目描述 有 n 台计算机&#xff0c;第 i 台计算机的运算能力为 v i v_i vi​。 有一系列的任务被指派到各个计算机上&#xff0c;第 i 个任务在 a i a_i ai​ 时刻分配&#xff0c;指定计算机编号为 b i b_i bi​&#xff0c;耗时为 c i c_i ci​ 且算力消耗为…

敏感数据的授权和传输加密解决方案

需求背景&#xff1a;解决敏感数据的访问授权和安全传输。 KSP密钥管理系统结合USB Key实现CA证书签发的过程可以大致分为以下几个步骤&#xff1a; 1. 生成密钥对&#xff1a; 用户首先使用USB Key生成一对密钥&#xff0c;包括公钥和私钥。公钥用于加密和验证数字签名&…

教程来咯!如何在Windows10中设置代理IP?

很多用户在使用win10系统的时候&#xff0c;网络设置都是默认的&#xff0c;一般情况下代理服务器都是关闭的状态&#xff0c;而在一些特殊情况下&#xff0c;需要设置代理地址启动功能使用&#xff0c;有不少的用户不知道应该怎么进行设置添加&#xff0c;接下来就和各位用户们…

ansible 常用运维命令

文件传送 ## 传送文件 ansible all -m copy -a "src/tmp/aa.txt dest/tmp/aa.txt" -k## 文件夹传送 - hosts: alltasks:- name: Copy project files and delete extra filescopy:src: /path/to/your/project/dest: /opt/myappremote_src: yesstate: sync ansibe…

element plus 去掉select选择框的边框,并修改右侧图标

1.去掉选择框边框 ::v-deep .el-select__wrapper{ box-shadow: none; } ::v-deep .is-hovering{ box-shadow: none !important; }2.修改选择框右侧图标 新建CaretBottom.vue文件内容&#xff1a; <template><el-icon><CaretBottom /></el-icon> <…

逍遥散人的“痛婚”,让《光夜》玩家悄悄破防了

网红博主的一场求婚&#xff0c;让《光与夜之恋》玩家破防了。 知名游戏博主逍遥散人发微博公布求婚成功&#xff0c;本来应该是一件喜事&#xff0c;但却因为求婚场景布满了《光与夜之恋》男主角之一陆沉的谷子&#xff08;周边&#xff09;&#xff0c;遭到了“6推”&#x…

AI知识库和Agent简介及实现

AI知识库和Agent简介及实现 引言 随着人工智能的发展&#xff0c;大规模预训练模型&#xff08;Large Pre-trained Models&#xff0c;简称大模型&#xff09;成为了AI领域的重要研究方向。大模型通过大量的数据训练&#xff0c;能够在各种任务中展现出强大的性能。本文将重点…

深入解析多维数组与主对角线元素之和

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;多维数组的奥秘 二、多维数组的基本概念 1. 定义与创建 2. 维度与形…