forked from Eshe/competition-vd
ADD file via upload
This commit is contained in:
parent
cb718f96f0
commit
065c17d087
|
@ -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
|
Loading…
Reference in New Issue