ADD file via upload

This commit is contained in:
G13844710775 2024-09-24 19:01:24 +08:00
parent cb718f96f0
commit 065c17d087
1 changed files with 36 additions and 0 deletions

36
README_V2.md Normal file
View File

@ -0,0 +1,36 @@
我们小组采用python语言解决赛题一漏洞严重等级CVSS研判
以下为对python文件的作用的具体解释:
所有代码包含于文件cvss_project中
在cvss_project文件中,共有五部分:数据集部分(data_1),数据分析部分(pictures,data_process.py),训练好的模型(Changed_ESC_random_forest_model.joblib,Changed_ISC_gbt_model.joblib等共六个模型),训练模型的python代码(one_hot_changed.py,one_hot_unchanged等),以及真正用来预测cvss分数的代码部分(final.py)
第一部分:
data_1:包含赛题中给定的标准数据集,以及需要预测的测试集
第二部分:
pictures:通过观察数据集以及查阅官方文档,发现决定cvss分数的几个指标似乎可以拆开来看.也就是说我可以将这个大任务分成几个板块.部分板块合乎常理,即对用户设备以及系统可以造成的伤害越高,威胁就越大,那么,理所当然地,它的评分就应该越高.pictures文件中,有各指标的关系初解.jpg,用图解的方式,清晰解释数据分析的结果
data_process.py:通过pyecharts中的有关动态折线图的库,将数据间的关系可视化.
第三部分:
Changed_ESC_random_forest_model.joblib:以AV,AC,PR,UI,S(changed)为特征,以exploitabilityScore为输出构建的随机森林模型
Changed_ISC_gbt_model.joblib:以C,I,A,S(changed)为特征,以impactScore为输出构建的GBDT模型
Changed_BSC_linear_regression_model.joblib:以exploitabilityScore,impactScore,S(changed)为特征,以baseScore为输出构建的线性回归模型
Unchanged_ESC_random_forest_model:以AV,AC,PR,UI,S(unchanged)为特征,以exploitabilityScore为输出构建的随机森林模型
Unchanged_ISC_random_forest_model.joblib:以C,I,A,S(unchanged)为特征,以impactScore为输出构建的随机森林模型
Unchanged_BSC_linear_regression_model.joblib:以exploitabilityScore,impactScore,S(unchanged)为特征,以baseScore为输出构建的线性回归模型
第四部分:
one_hot_changed.py:用来训练数据集中S为changed的数据,将字符串部分的特征用独热编码编码后,再作为特征输入,同时还以数据集中的impactScore和exploitabilityScore为特征,以baseScore为输出构建线性回归模型
one_hot_unchanged.py:用来训练数据集中S为unchanged的数据,将字符串部分的特征用独热编码编码后,再作为特征输入,同时还以数据集中的impactScore和exploitabilityScore为特征,以baseScore为输出构建线性回归模型
linear_regression.py:以数据集中的impactScore和exploitabilityScore为特征,以baseScore为输出构建线性回归模型(此为没有考虑数据集中Scope特征的废案)
find_optimal_b.py:通过穷举,来找到最你和模型的偏置项b(穷举后,没有找到合适的偏置项b,为废案)
第五部分:
final.py:最终cvss评分预测部分的代码,只要向导入data_1文件下导入一个名为"your_data.json",格式与赛题提供的训练集json数据格式一致的数据集,即可对数据集数据进行预测(对赛题提供的SIR_test_set.json数据集预测,均方根误差约为0.0602),需要注意的是,如果数据集格式文件格式,文件名称,数据格式有误,可能导致程序无法成功运行.
************************************************************************************************
************************************************************************************************
************************************************************************************************
若想python代码成功运行,要确保安装以下python库:
pytorch 2.4.0
pytorch-cuda 11.4
pandas 2.2.2
numpy 1.26.4
scikit-learn 1.5.1
joblib 1.4.2
pyecharts 2.0.6
确保python版本为3.12