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

【数学建模】——【A题 信用风险识别问题】全面解析

目录

1.题目

2.解答分析

问题1:指标筛选

1.1 问题背景

1.2 数据预处理

1.3 特征选择方法

1.4 多重共线性检测

1.5 实现步骤

问题2:信用评分模型

2.1 问题背景

2.2 数据分割

2.3 处理不平衡数据

2.4 模型选择与理由

问题3:模型对比

3.1 问题背景

3.2 模型训练与验证

问题4:信用等级划分

4.1 问题背景

4.2 构建非线性规划模型

4.3 模型选择与理由

大体框架

一、问题重述

二、数据预处理

2.1 数据读取与初步处理

三、特征选择

3.1 过滤法

3.2 包装法

3.3 嵌入法

四、信用评分模型

4.1 数据分割

4.2 处理不平衡数据

4.3 模型选择与训练

五、模型对比

5.1 模型训练与验证

六、信用等级划分

6.1 构建非线性规划模型

七、模型评价与展望

7.1 模型的优点

7.2 模型的缺点

7.3 展望

总结概括各个步骤

一、问题重述

二、数据预处理

三、特征选择

四、信用评分模型

五、模型对比

六、信用等级划分

七、模型评价与展望


731bd47804784fa2897220a90a387b28.gif

专栏:数学建模学习笔记

1.题目

A题 信用风险识别问题

信用风险识别在金融行业和个体借贷过程中扮演着至关重要的角色。其核心任务是通过分析借款方的个人和财务信息等信息,评估其偿还贷款的能力和意愿,从而降低贷款机构的风险暴露。信用风险评价的准确性直接关系到贷款机构的资产质量和经济健康。因此,建立准确可靠的信用风险评价模型对于金融机构和借款方都具有重要意义。

在大数据背景下,信用风险评价研究中“信用风险评价指标筛选→信用风险得分测算→信用风险等级划分”各步骤均有诸多难题亟待解决。首先,在指标筛选过程中,如何建立恰当的指标筛选模型在大量可能的指标中筛选与信用风险相关性最高的指标,在确保数据全面性和准确性的同时,克服多重共线性、过度拟合等问题是难点之一;其次,实践中个体信用评价往往存在违约样本少、非违约样本多等现实情况,因而在信用得分测算过程中,如何选择适合的信用评分模型,解决模型对违约样本识别不足,并进一步平衡模型预测准确性与可解释性是又一难点;最后,在信用等级划分中,如何在确保等级划分的鲁棒性、普适性的条件下,选择恰当的阈值、聚类模型、非线性规划模型等将信用得分映射到信用等级,求解满足“信用等级越高、信用风险越低”的信用等级划分结果是又一难点。

附件1给出了UCI公开的德国信用数据集,其中编号X1-X24表示个体的个人及财务等信息指标。附件2给出了UCI公开的澳大利亚信用数据集,其中编号X1-X14表示个体的个人及财务等信息指标。请根据附件1、附件2和实际情况建立数学模型解决以下问题:

问题1  高维数据往往会为信用风险评价带来评价指标反应信息冗余等问题,请选择合适的模型对德国信用数据集进行指标筛选,以达到提升信用风险评价准确性及可解释性的目标,并给出理由。

问题2  传统线性加权方法无法准确刻画评价指标与违约风险之间的非线性关系,加之个体信用评价数据存在非违约样本多、违约样本少的不均衡分布特征,容易造成评价模型对非违约样本识别过度、违约样本识别不足的问题。请选择合适的信用评分模型揭示评价指标与个体违约风险之间的联系,求解德国信用数据集中个体信用得分,并给出理由。

问题3  随着Chat GPT等智能AI算法的发展,为信用风险准确识别带来了新的机遇。为对信用评分模型的合理性、准确性进行判别,请分别利用附件1中的德国信用数据集与附件2中的澳大利亚信用数据集,自建信用评分模型。可将所建模型与决策树(Decision Tree, DT)、K最近邻(K-Nearest Neighbor, KNN)、随机森林(Random Forest, RF)、支持向量机(Support Vector Machine, SVM)等多种现有分类模型进行对比,分析模型的判别性能。对比上述多种分类方法对不同数据集的分类效果,并将结果填入表1、表2(至少选择3类模型,3个评价准则进行对比分析)。

表1  德国信用数据集分类方法对比结果

模型

评价准则

Accuracy

AUC

Type1-error

Type2-error

你们的模型

DT

KNN

RF

SVM

表2  澳大利亚信用数据集分类方法对比结果

模型

评价准则

Accuracy

AUC

Type1-error

Type2-error

你们的模型

DT

KNN

RF

SVM

问题4  请以“信用等级越高、信用风险越低”为信用等级划分标准,构建非线性规划模型,在德国信用数据集上划分个体信用等级,并说明模型选择理由。

附件1 德国信用数据集

附件2 澳大利亚信用数据集

2.解答分析

问题1:指标筛选

1.1 问题背景

在信用风险评价中,高维数据带来的信息冗余、模型复杂度和多重共线性等问题会影响模型的准确性和解释性。因此,需要对数据进行有效的指标筛选,保留对信用风险评价最有影响力的特征,从而提升模型的性能和可解释性。

1.2 数据预处理

在进行指标筛选前,首先需要对数据进行预处理:

  • 缺失值处理:检查数据集中是否存在缺失值,并选择适当的方法进行处理(如删除缺失值、均值填补、插值等)。
  • 数据标准化/归一化:由于不同特征的量纲不同,需要对数据进行标准化或归一化处理,使其具有相同的尺度。

1.3 特征选择方法

  1. 过滤法(Filter Method)

    • 方差阈值法:删除方差较小的特征,因为这些特征对模型贡献较小。
    • 卡方检验:计算特征与目标变量之间的独立性,通过卡方统计量筛选特征。
    • 互信息法:通过计算特征与目标变量之间的信息增益选择特征。
  2. 包装法(Wrapper Method)

    • 递归特征消除(Recursive Feature Elimination, RFE):利用基模型(如逻辑回归、SVM)反复训练模型,每次去掉重要性最低的特征,直至剩下的特征数量满足要求。
  3. 嵌入法(Embedded Method)

    • LASSO回归:通过L1正则化,自动选择特征并压缩不重要的特征系数为零。
    • 决策树和随机森林:内置特征选择机制,通过计算特征的重要性得分筛选特征。

1.4 多重共线性检测

为了避免多重共线性问题,可以使用以下方法:

  • 相关性矩阵:计算特征之间的相关系数,剔除相关性高的特征。
  • 主成分分析(PCA):通过线性变换将原始特征映射到新的特征空间,提取主要成分进行建模。

1.5 实现步骤

1.数据预处理

import pandas as pd
from sklearn.preprocessing import StandardScaler# 读取数据
data = pd.read_csv('附件1.csv')# 处理缺失值
data = data.dropna()# 数据标准化
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)

2.特征选择(以LASSO回归为例)

from sklearn.linear_model import LassoCV# 定义LASSO模型
lasso = LassoCV(cv=5)# 拟合模型
lasso.fit(data_scaled, target)# 筛选特征
selected_features = data.columns[lasso.coef_ != 0]

问题2:信用评分模型

2.1 问题背景

传统线性加权方法无法准确刻画评价指标与违约风险之间的非线性关系,且数据存在非违约样本多、违约样本少的不均衡分布,容易导致模型对违约样本识别不足。

2.2 数据分割

将数据集分为训练集和测试集,以便于模型训练和性能评估。

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(data_scaled, target, test_size=0.3, random_state=42)
2.3 处理不平衡数据

欠采样和过采样

from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import RandomUnderSampler# 过采样
smote = SMOTE(random_state=42)
X_train_resampled, y_train_resampled = smote.fit_resample(X_train, y_train)# 欠采样
rus = RandomUnderSampler(random_state=42)
X_train_resampled, y_train_resampled = rus.fit_resample(X_train, y_train)

模型选择与训练(以随机森林为例)

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, roc_auc_score, confusion_matrix# 定义模型
rf_model = RandomForestClassifier(random_state=42)# 训练模型
rf_model.fit(X_train_resampled, y_train_resampled)# 预测
y_pred = rf_model.predict(X_test)# 模型评估
accuracy = accuracy_score(y_test, y_pred)
auc = roc_auc_score(y_test, y_pred)
cm = confusion_matrix(y_test, y_pred)print('Accuracy:', accuracy)
print('AUC:', auc)
print('Confusion Matrix:\n', cm)
2.4 模型选择与理由
  • 随机森林(Random Forest):处理非线性关系和不平衡数据效果较好,且具有较高的解释性。
  • 逻辑回归(Logistic Regression):作为基准模型进行对比。
  • SVM:在高维数据中表现良好。

问题3:模型对比

3.1 问题背景

为了评估所建信用评分模型的合理性和准确性,需要与决策树、K最近邻、随机森林、支持向量机等模型进行对比。

3.2 模型训练与验证

定义多种模型

from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVCmodels = {'Decision Tree': DecisionTreeClassifier(random_state=42),'KNN': KNeighborsClassifier(),'Random Forest': RandomForestClassifier(random_state=42),'SVM': SVC(probability=True, random_state=42)
}

模型训练与评估

results = []for name, model in models.items():model.fit(X_train_resampled, y_train_resampled)y_pred = model.predict(X_test)accuracy = accuracy_score(y_test, y_pred)auc = roc_auc_score(y_test, y_pred)cm = confusion_matrix(y_test, y_pred)type1_error = cm[0][1] / (cm[0][0] + cm[0][1])type2_error = cm[1][0] / (cm[1][0] + cm[1][1])results.append((name, accuracy, auc, type1_error, type2_error))results_df = pd.DataFrame(results, columns=['Model', 'Accuracy', 'AUC', 'Type1-error', 'Type2-error'])
print(results_df)

表格填充

根据模型评估结果,填写表1和表2,分析不同模型在两个数据集上的分类效果。

问题4:信用等级划分

4.1 问题背景

根据信用得分划分个体的信用等级,以反映其信用风险。

4.2 构建非线性规划模型

信用评分结果

# 使用训练好的模型计算信用得分
credit_scores = rf_model.predict_proba(X)[:, 1]

设定非线性规划模型

from scipy.optimize import minimize# 定义目标函数
def objective(x):return -np.sum(x * credit_scores)# 定义约束条件
def constraint1(x):return np.sum(x) - len(credit_scores) / 3  # 保证信用等级数量约为总数的三分之一constraints = [{'type': 'eq', 'fun': constraint1}]# 初始猜测
x0 = np.ones(len(credit_scores)) / 3# 求解非线性规划问题
solution = minimize(objective, x0, method='SLSQP', constraints=constraints)# 结果
credit_grades = solution.x

4.3 模型选择与理由

  • 聚类模型(如K-means):简单易实现,但可能不适合处理复杂非线性关系。
  • 非线性规划模型:能更好地反映实际信用风险的分布和划分。

大体框架

一、问题重述

信用风险识别在金融行业和个体借贷过程中扮演着至关重要的角色,其核心任务是通过分析借款方的个人和财务信息等,评估其偿还贷款的能力和意愿,从而降低贷款机构的风险暴露。本文基于附件1(德国信用数据集)和附件2(澳大利亚信用数据集),通过数据预处理、特征选择、信用评分模型的构建及其比较、信用等级划分等步骤,提出一种系统的信用风险评价方法。

二、数据预处理

2.1 数据读取与初步处理

首先,读取并检查数据的完整性,处理缺失值。对于连续变量,采用均值填补或中位数填补;对于分类变量,采用众数填补。数据标准化或归一化处理,使得各特征的量纲一致。

import pandas as pd
from sklearn.preprocessing import StandardScaler# 读取数据
german_credit_data = pd.read_csv('附件1.csv')
australian_credit_data = pd.read_csv('附件2.csv')# 处理缺失值
german_credit_data.fillna(german_credit_data.mean(), inplace=True)
australian_credit_data.fillna(australian_credit_data.mean(), inplace=True)# 数据标准化
scaler = StandardScaler()
german_credit_data_scaled = scaler.fit_transform(german_credit_data)
australian_credit_data_scaled = scaler.fit_transform(australian_credit_data)

三、特征选择

3.1 过滤法

通过统计方法如方差阈值法、卡方检验等筛选特征。选择方差较大的特征,去除信息量少的特征。

from sklearn.feature_selection import VarianceThreshold# 方差阈值法
selector = VarianceThreshold(threshold=0.1)
selected_features = selector.fit_transform(german_credit_data_scaled)

3.2 包装法

利用递归特征消除(RFE)方法,通过基模型评估特征的重要性。

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression# 递归特征消除
model = LogisticRegression()
rfe = RFE(model, 10)
fit = rfe.fit(german_credit_data_scaled, german_credit_data['target'])

3.3 嵌入法

通过LASSO回归进行特征选择,通过L1正则化压缩不重要的特征系数。

from sklearn.linear_model import Lasso# LASSO回归
lasso = Lasso(alpha=0.01)
lasso.fit(german_credit_data_scaled, german_credit_data['target'])
selected_features = german_credit_data.columns[lasso.coef_ != 0]

四、信用评分模型

4.1 数据分割

将数据集分为训练集和测试集,以便于模型训练和性能评估。

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(german_credit_data_scaled, german_credit_data['target'], test_size=0.3, random_state=42)

4.2 处理不平衡数据

使用SMOTE和欠采样技术处理数据不平衡问题。

from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import RandomUnderSampler# 过采样
smote = SMOTE(random_state=42)
X_train_resampled, y_train_resampled = smote.fit_resample(X_train, y_train)# 欠采样
rus = RandomUnderSampler(random_state=42)
X_train_resampled, y_train_resampled = rus.fit_resample(X_train, y_train)

4.3 模型选择与训练

选择多种模型如逻辑回归、决策树、随机森林、SVM等进行训练和评估。

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, roc_auc_score, confusion_matrix# 定义模型
rf_model = RandomForestClassifier(random_state=42)
rf_model.fit(X_train_resampled, y_train_resampled)# 预测
y_pred = rf_model.predict(X_test)# 模型评估
accuracy = accuracy_score(y_test, y_pred)
auc = roc_auc_score(y_test, y_pred)
cm = confusion_matrix(y_test, y_pred)print('Accuracy:', accuracy)
print('AUC:', auc)
print('Confusion Matrix:\n', cm)

五、模型对比

5.1 模型训练与验证

定义多种模型进行训练和评估。

from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVCmodels = {'Decision Tree': DecisionTreeClassifier(random_state=42),'KNN': KNeighborsClassifier(),'Random Forest': RandomForestClassifier(random_state=42),'SVM': SVC(probability=True, random_state=42)
}results = []for name, model in models.items():model.fit(X_train_resampled, y_train_resampled)y_pred = model.predict(X_test)accuracy = accuracy_score(y_test, y_pred)auc = roc_auc_score(y_test, y_pred)cm = confusion_matrix(y_test, y_pred)type1_error = cm[0][1] / (cm[0][0] + cm[0][1])type2_error = cm[1][0] / (cm[1][0] + cm[1][1])results.append((name, accuracy, auc, type1_error, type2_error))results_df = pd.DataFrame(results, columns=['Model', 'Accuracy', 'AUC', 'Type1-error', 'Type2-error'])
print(results_df)

六、信用等级划分

6.1 构建非线性规划模型

利用优化方法进行信用等级划分,设定目标函数和约束条件。

from scipy.optimize import minimize# 定义目标函数
def objective(x):return -np.sum(x * credit_scores)# 定义约束条件
def constraint1(x):return np.sum(x) - len(credit_scores) / 3constraints = [{'type': 'eq', 'fun': constraint1}]
x0 = np.ones(len(credit_scores)) / 3# 求解非线性规划问题
solution = minimize(objective, x0, method='SLSQP', constraints=constraints)
credit_grades = solution.x

七、模型评价与展望

7.1 模型的优点

  • 结合多种特征选择方法,提升了模型的准确性和解释性。
  • 处理了数据不平衡问题,增强了模型的鲁棒性。
  • 多模型对比验证,确保了模型的可靠性。

7.2 模型的缺点

  • 部分模型在处理高维数据时可能存在过拟合风险。
  • 需要更多的数据和计算资源进行进一步优化。

7.3 展望

  • 未来可以考虑引入更多的特征选择方法和模型优化技术。
  • 进一步优化模型参数,提高模型的预测性能。
  • 探索新的算法和技术,如深度学习,进一步提升信用风险评价的准确性。

总结概括各个步骤

一、问题重述

本文的目标是通过数学建模解决信用风险评价问题,基于德国信用数据集和澳大利亚信用数据集,进行特征选择、信用评分模型的构建与比较,以及信用等级划分。以下是各个问题的详细分析和解答步骤。

二、数据预处理

  1. 数据读取与初步处理
    • 读取德国信用数据集和澳大利亚信用数据集。
    • 检查数据的完整性,处理缺失值。对于连续变量,可以采用均值填补或中位数填补;对于分类变量,采用众数填补。
    • 对数据进行标准化或归一化处理,以确保各特征具有相同的尺度。

三、特征选择

  1. 过滤法

    • 通过方差阈值法、卡方检验等统计方法筛选特征,去除信息量少的特征,保留方差较大的特征。
  2. 包装法

    • 利用递归特征消除(RFE)方法,通过基模型评估特征的重要性,逐步去除不重要的特征。
  3. 嵌入法

    • 通过LASSO回归进行特征选择,使用L1正则化压缩不重要的特征系数,将其系数压缩为零。

四、信用评分模型

  1. 数据分割

    • 将数据集分为训练集和测试集,以便于模型训练和性能评估。
  2. 处理不平衡数据

    • 使用SMOTE(合成少数类过采样技术)和欠采样技术处理数据的不平衡问题,增强模型对少数类样本的识别能力。
  3. 模型选择与训练

    • 选择多种模型如逻辑回归、决策树、随机森林、SVM等进行训练和评估,选择表现最佳的模型。
  4. 模型评估

    • 通过计算Accuracy、AUC、混淆矩阵、Type1-error和Type2-error等指标,评估各模型的性能。

五、模型对比

  1. 模型训练与验证

    • 定义多种模型(如决策树、K最近邻、随机森林、支持向量机)进行训练和评估,比较其在测试集上的表现。
  2. 结果对比分析

    • 根据模型的评估结果,对比不同模型的分类效果,分析各模型在德国信用数据集和澳大利亚信用数据集上的表现,填写结果表格,进行对比分析。

六、信用等级划分

  1. 构建非线性规划模型

    • 利用优化方法进行信用等级划分,设定目标函数和约束条件,求解最优解。
  2. 模型实现与评估

    • 使用求解器(如Gurobi、CPLEX)进行优化,将信用得分映射到信用等级,确保等级划分结果的合理性和鲁棒性。

七、模型评价与展望

  1. 模型的优点

    • 结合多种特征选择方法,提升了模型的准确性和解释性。
    • 处理了数据不平衡问题,增强了模型的鲁棒性。
    • 多模型对比验证,确保了模型的可靠性。
  2. 模型的缺点

    • 部分模型在处理高维数据时可能存在过拟合风险。
    • 需要更多的数据和计算资源进行进一步优化。
  3. 展望

    • 未来可以考虑引入更多的特征选择方法和模型优化技术。
    • 进一步优化模型参数,提高模型的预测性能。
    • 探索新的算法和技术,如深度学习,进一步提升信用风险评价的准确性。

通过上述步骤,信用风险评价方法,包括数据预处理、特征选择、信用评分模型的构建及其比较、信用等级划分等多个方面,旨在提升信用风险评价的准确性和可靠性。

相关文章:

【数学建模】——【A题 信用风险识别问题】全面解析

目录 1.题目 2.解答分析 问题1:指标筛选 1.1 问题背景 1.2 数据预处理 1.3 特征选择方法 1.4 多重共线性检测 1.5 实现步骤 问题2:信用评分模型 2.1 问题背景 2.2 数据分割 2.3 处理不平衡数据 2.4 模型选择与理由 问题3:模型对…...

javascript:检测图片的宽高

1 方案描述 JavaScript提供了非常方便的FileReader和Image对象,可以帮助我们轻松实现这个功能。具体步骤如下: 获取文件输入框:首先,我们需要获取到用户选择的文件。读取文件内容:然后,通过FileReader对象…...

机械学习—零基础学习日志(高数23——无穷小运算)

零基础为了学人工智能,真的开始复习高数 这段时间,把张宇老师讲解考研的第一部分基本全部学习完毕了。 这里把第一部分的内容最后汇总一下。 无穷小运算——吸收律 这里展示一些无穷小的具体计算思路 无穷小运算——计算方法 泰勒展开的原则 夹逼准则…...

一个网络上计算机的通信

一台计算机上多个进程间的通信方式有:管道、共享内存、信号量、消息队列。如果不同的计算机上多个进程间通信,即通信的进程在不同的计算机上,需要用到网络相关的知识。 那么两台计算机通信需要解决哪些问题? 我们来回顾一下计算机…...

C语言基础题:吃冰棍(C语言版)

1.题目描述 机器猫喜欢吃冰棍。 买一根冰棍,吃完了会剩一个木棒;每三个木棒可以兑换一个冰棍。兑换出来的冰棍,吃完之后也能剩下一个木棒。 所以,如果机器猫买了5根冰棍,他可以吃完之后得到5个木棒;拿3个木棒兑换1根冰棍&#xff…...

C++中,vector、deque、list、set、multiset、unordered_set和unordered_multiset容器类的总结

最近用set比较多,复习一下基础。 在C中,vector、deque、list、set、multiset、unordered_set和unordered_multiset都是容器类,但它们有不同的特点和用途。下面是对它们的区别和示例说明: 1. vector 特点: 动态数组,…...

Python处理Redis

操作Redis redis也是基于tcp通信的,所以我们可以直接通过socket来做 Redis通信过程 简单使用 redis-cli.exe -h192.168.56.188 auth 123456 set name myredis get name lindex students 0 # 查看students列的第一条数据核心协议体 *2 # 表示下述的指令由2个字符…...

nodejs多版本随心切换-windows

nodejs多版本控制 1. 安装 nvm github下载地址 不需要卸载已安装的nodejs,安装时会让你选择nodejs的位置,可修改为你已经安装的路径,会自动搜索已安装版本,并进行弹窗询问,选择托管即可 2. 修改配置文件 在 nvm 安装…...

json文件格式

json文件格式 格式介绍1格式介绍2格式3 格式介绍1 格式介绍2 格式3 参考地址...

日撸Java三百行(day15:栈的应用之括号匹配)

目录 一、栈的括号匹配 二、代码实现 1.方法创建 2.数据测试 3.完整的程序代码 总结 一、栈的括号匹配 要完成今天的任务,需要先来了解一下什么是栈的括号匹配。首先,顾名思义,括号匹配就是指将一对括号匹配起来,我们给定一…...

Oracle-OracleConnector

提示:OracleConnector 类是 Debezium 中用于与 Oracle 数据库交互的一个连接器组件 文章目录 前言一、核心功能二、代码分析总结 前言 提示:OracleConnector 类负责配置、启动、管理和验证与 Oracle 数据库的连接,并为后续的数据捕获任务准备…...

『 Linux 』线程池与 POSIX 线程的封装编码实现

文章目录 线程池概念线程池的编码实现线程池的测试参考代码 线程的封装使用测试封装后的线程参考代码 线程池概念 池化技术是一种资源管理方法,通过预先创建和管理一组资源以便在需要使用时快速分配这些资源; 线程池是池化技术的一种典型应用; 资源分配 在线程池中预先创建一定…...

【C++】————哈希表

作者主页: 作者主页 本篇博客专栏:C 创作时间 :2024年8月6日 前言: 在计算机科学的广袤世界中,数据结构犹如基石,支撑着各种高效算法的构建与运行。而哈希表(Hash Table)&#…...

前端学习AI历程

AI基本概念tensorflow入门conda搭建环境,pycham使用训练自己的第一个模型AI目前前端方便入手的几个方向 素材图片库图像识别,在线学习低代码应用智能客服 获取数据集 roboflowkagglecocomakesense(用于打标) 认识yolo两个简单小应…...

常见中间件漏洞复现之【Tomcat】!

Tomcat介绍 tomcat是⼀个开源⽽且免费的jsp服务器,默认端⼝ : 8080,属于轻量级应⽤服务器。它可以实现 JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的⼀款环境。 在历史上也披露出来了很多的漏洞 …...

C++并发编程(一):线程基础

简介 本文学习的是 b 站 up 恋恋风辰的并发编程教学视频做的一些笔记补充。 教程视频链接如下:线程基础:视频教程 文档链接如下:线程基础:笔记文档 理论上直接看 up 提供的笔记文档即可,我这里主要是记录一些我自己…...

enq: HW - contention事件来啦

业务系统反应数据库慢,根据时间查看awr报告。 先看一眼事件名称 HW enqueue 用于序列化超出段高水位线的空间分配。如果同时向对象添加大量数据,则多个进程可能同时尝试在高水位线上方分配空间,从而导致争用。 既然是控制资源并发的enq&…...

MyBatis补充

控制类和dao层接口以及mapper中的xml是怎样的关联的? 在Mybatis中,控制类和dao层接口是通过mapper的xml文件进行连接的。 控制类调用dao层接口中的方法,通过接口实现进行访问数据库操作。dao层接口定义数据库操作的方法,提供给控制…...

系统架构师(每日一练16)

每日一练 答案与解析 1.软件测试一般分为两个大类:动态测试和静态测试。前者通过运行程序发现错误,包括()等方法;后者采用人工和计算机辅助静态分析的手段对程序进行检测,包括()等方法。答案与解析 问题1 A.边界值分析、逻辑覆盖、基本路径 B.桌面检查、…...

实践致知第17享:电脑忽然黑屏的常见原因及处理方法

一、背景需求 小姑电话说:最近,电脑忽然就黑屏了(如下图所示),但是等待几十秒甚至一分钟,电脑就能自然恢复了,这种状况一天能出现三四次,怎么办? 二、分析诊断 电脑黑屏…...

微信小程序--实现地图定位---获取经纬度

(1) (2) (3) html: <view class"titleTwo" style"border: none;"><view class"fontSize30 invoiceTile">企业地址</view><view class"invoiceRight" bind:tap"tapChooseAddress" data-maptype"…...

【Python系列】使用 `isinstance()` 替代 `type()` 函数

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【多模态大模型】 BLIP-2 in ICML 2023

一、引言 论文&#xff1a; BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models 作者&#xff1a; Salesforce Research 代码&#xff1a; BLIP-2 特点&#xff1a; 该方法分别使用冻结的图像编码器&#xff08;ViT-L/…...

HPC高性能计算平台

随着技术的发展和数据量的爆炸性增长&#xff0c;企业面临的挑战日益复杂&#xff0c;对计算能力的需求也在不断增加。这些问题的解决超出了传统计算方法的能力范围&#xff0c;高性能计算&#xff08;HPC&#xff09;正是为解决这类问题而生。 高性能计算&#xff08;HPC&…...

前端常用的几个工具网站

觉得不错的前端工具类网站 1、Grid布局生成 https://cssgrid-generator.netlify.app 2、拟物按钮样式生成 https://neumorphism.io 3、玻璃形态效果 在线制作CSS玻璃形态 4、一些Button、checkBox、switch、card的css样式 零代码 - 精美CSS样式库 5、CSS阴影生成 在线创建…...

支付功能之代收代付

有很多老板问小编&#xff1a;“这个分账功能好是好&#xff0c;也能搞定项目中的二清问题和税务纠纷&#xff0c;但还是太复杂了&#xff0c;每次要添加被分账对象都需要提交材料进行审核&#xff0c;太繁琐了&#xff0c;有没有更方便快捷的支付产品来解决资金问题&#xff1…...

QPixmap

pixel[ˈpɪksl]像素 QPixmap 是 Qt 框架中用于处理图像的一个类。它主要用于在屏幕上显示和处理图像&#xff0c;提供了许多实用的功能&#xff0c;如加载、保存、缩放、旋转、合并等。 绘制 从文件加载&#xff1a;从指定文件加载图像。 QPixmap pixmap(":/images/exam…...

Laravel门面之下:构建自定义门面应用的艺术

Laravel门面之下&#xff1a;构建自定义门面应用的艺术 在Laravel框架中&#xff0c;门面&#xff08;Facade&#xff09;提供了一种将类静态调用与面向对象代码解耦的优雅方式。门面是一个全局可访问的类&#xff0c;它为底层复杂的服务提供了一个简单的接口。然而&#xff0…...

智启万象 | 2024 Google 开发者大会直播攻略

8 月 7 日上午 9:30 2024 Google 开发者大会 主旨演讲直播将准时开启 想要在线上探索大会精彩内容&#xff1f; 快查收这份观看指南&#xff01; 8 月 7 日上午 9:30 2024 Google 开发者大会开幕 锁定大会官网观看主旨演讲现场直播&#xff01; 本次大会内容将同步于多个…...

技巧:print打印内容到控制台时信息显示不全

# 请求一个接口&#xff0c;res是响应内容&#xff0c;使用res.text打印的信息不全 #使用流式处理响应 #如果你需要流式处理大的响应&#xff0c;确保你在处理响应内容的同时不会提前结束流。resself.request_base(select_api,change_datachange_data)print("")# pri…...