【数学建模】——【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. 展望

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

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

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

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

相关文章

notes for datawhale summer camp chemistry task3

Transformer transformer的诞生 循环神经网络:由于所有的前文信息都蕴含在一个隐向量里面,这会导致随着序列长度的增加,编码在隐藏状态中的序列早期的上下文信息被逐渐遗忘。 卷积神经网络:受限的上下文窗口在建模长文本方面天…

Taming Lookup Tables for Efficient Image Retouching

Abstract 高清屏幕在终端用户相机、智能手机和电视等边缘设备中的广泛使用,刺激了对图像增强的巨大需求。现有的增强模型通常针对高性能进行优化,但不能减少硬件推断时间和功耗,尤其是在计算和存储资源受限的边缘设备上。为此,我…

信息学奥赛初赛天天练-53-CSP-J2019阅读程序2-模拟算法在数组中典型应用

PDF文档公众号回复关键字:20240802 2019 CSP-J 阅读程序2 1阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 √,错误填 。除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分) 假设输入的n和m都是正整…

前端Web-JavaScript(上)

要想让网页具备一定的交互效果,具有一定的动作行为,还得通过JavaScript来实现, 这门语言会让我们的页面能够和用户进行交互。 什么是JavaScript JavaScript(简称:JS) 是一门跨平台、面向对象的脚本语言,是…

【C++11】:右值引用移动语义完美转发

目录 前言一,左值引用和右值引用二,左值引用与右值引用比较三,探索引用的底层四,右值引用使用场景和意义4.1 解决返回值问题4.2 STL容器插入接口的改变 五,移动语义六,完美转发6.1 模板中的&& 万能…

产品经理如何快速掌握大模型技术,享受AI红利?

前言 随着人工智能(AI)技术的快速发展,AI产品经理的角色变得越来越重要。尽管AI产品经理并不是一个新鲜的概念,但随着AI技术的迭代升级,这一角色的重要性得到了显著提升。 AI产品经理的演变 早期的AI产品可能并不会…

网络原理的TCP/IP

TCP/IP协议 1)应用层 应用层和应用程序直接相关,与程序员息息相关的一层协议,应用层协议,里面描述的内容,就是写的程序,通过网络具体按照啥样的方式来进行传输,不同的应用程序,就可以用不同的应用层协议,在实际开发的过程中,需要程序员自制应用层协议 应用层协议本质上就是对…

python: 多进程实例

1. 实例一 主进程跟子进程的通过两个队列实现全双工通信;如有需要主进程会提示窗口输入信息传输给子进程;如果子进程收到主进程的消息,会弹窗提示收到的消息;子进程弹窗提示进程即将结束; 详细代码如下 # -*- coding…

独立站+TikTok达人:自主营销与创意内容的完美结合

在全球电商市场迅猛发展的今天,独立站和TikTok达人的结合正在创造一种全新的电商营销模式。独立站作为电商平台,其自主性和灵活性为商家提供了广阔的发展空间;而TikTok达人凭借其独特的内容创作能力和庞大的粉丝基础,成为推动销售…

OpenStack;异构算力网络架构;算力服务与交易技术;服务编排与调度技术

目录 OpenStack 一、OpenStack概述 二、OpenStack的主要组件及功能 三、OpenStack的架构 四、OpenStack的应用场景 异构算力网络架构 算力服务与交易技术 服务编排与调度技术 OpenStack 是一个开源的云计算管理平台项目,由NASA(美国国家航空航天局)和Rackspace合作…

「AI绘画Stable Diffusion 零基础入门 」AI 绘画SD原理与工具介绍,万字详解新手入门必看!

大家好,我是设计师阿威 AI 绘画原理 想要入门 AI 绘画,首先需要了解它的原理是什么样的。 其实很早就已经有人基于深度学习模型展开了对图像生成的研究了,但在那时,生成的图像分辨率和内容都非常抽象。 直到近两年&#xff0c…

C++必修:STL之vector的模拟实现

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 为了让我们更加深入理解vector,接下来我们将模拟实现一个简易版的vect…

二叉树链式结构的实现(递归的暴力美学!!)

前言 Hello,小伙伴们。你们的作者菌又回来了,前些时间我们刚学习完二叉树的顺序结构,今天我们就趁热打铁,继续我们二叉树链式结构的学习。我们上期有提到,二叉树的的底层结构可以选为数组和链表,顺序结构我们选用的数…

将YOLOv8模型从PyTorch的.pt格式转换为OpenVINO支持的IR格式

OpenVINO是Open Visual Inference & Neural Network Optimization工具包的缩写,是一个用于优化和部署AI推理模型的综合工具包。OpenVINO支持CPU、GPU和NPU设备。 OpenVINO的优势: (1).性能:OpenVINO利用英特尔CPU、集成和独立GPU以及FPGA的强大功能提…

PHP学习:PHP基础

以.php作为后缀结尾的文件&#xff0c;由服务器解析和运行的语言。 一、语法 PHP 脚本可以放在文档中的任何位置。 PHP 脚本以 <?php 开始&#xff0c;以 ?> 结束。 <!DOCTYPE html> <html> <body><h1>My first PHP page</h1><?php …

3千米以上音视频键鼠延长解决方案:KVM光纤延长器

KVM光纤延长器​​​​​​​是什么&#xff1f; KVM光纤延长器是一种使用光纤来传输键盘、视频和鼠标&#xff08;KVM&#xff09;信号的设备&#xff0c;由发送端和接收端组成&#xff0c;一般成对使用。它可以让用户在远离电脑的地方如同在本地一样方便快捷的操作电脑。 KV…

mysql数据库基础语法(未完)

数据库的超级用户是root 一、注释 &#xff08;1&#xff09;“-- ”减号减号空格 注意不要省略空格 &#xff08;2&#xff09;“#” 井号 二、数据库操作 1、创建 CREATE DATABASE [IF NOT EXISTS] <数据库名> [CHARACTER SET utf8] 2、删除 DROP DATABASE …

MySQL —— 初始数据库

数据库概念 在学习数据库之前&#xff0c;大家保存数据要么是在程序运行期间&#xff0c;例如&#xff1a;在学习编程语言的时候&#xff0c;大家写过的管理系统&#xff0c;运用一些简单的数据结构&#xff08;例如顺序表&#xff09;来组织数据&#xff0c;可是程序一旦结束…

硬盘数据丢失不再怕,四大恢复工具帮你轻松逆转局面!

硬盘故障、误删文件、病毒攻击等原因导致数据丢失的情况时有发生。面对这种情况&#xff0c;如何高效、快速地进行硬盘数据恢复呢&#xff1f;接下来几款好用的数据恢复软件推荐给大家。 一、福昕数据恢复&#xff1a;全方位恢复&#xff0c;让数据无遗漏 链接&#xff1a;ww…