没有合适的资源?快使用搜索试试~ 我知道了~
⃝可在www.sciencedirect.com在线获取ScienceDirectICTExpress 8(2022)124www.elsevier.com/locate/icte用于基于机器学习的恶意软件检测的紧凑特征散列Damin Moon,JaeKoo Lee,MyungKeun Yoon大韩民国汉城国民大学计算机工程系接收日期:2020年12月11日;接受日期:2021年在线预订2021年摘要机器学习可以检测可以逃避基于签名的检测的变体恶意软件文件。要素哈希用于转换要素变成一个固定长度的向量在本文中,我们研究了一个大型恶意软件文件数据集的特征散列适当的向量大小。通过对超过280,000个真正的恶意软件和良性文件进行详尽的实验,我们首次发现当前特征散列实践的默认向量大小不必要地大。我们实验探索适当的向量大小,这不仅减少了70%的内存空间,但也增加了检测精度,与国家的最先进的计划相比c2021韩国通信和信息科学研究所(KICS)。出版社:Elsevier B.V.这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。关键词:特征哈希;特征向量;机器学习;恶意软件检测1. 介绍根据反病毒公司的数据,全球独特恶意软件文件的数量正在迅速增加,从2008年的不到100万增加到2014年的超过10亿。Virus- Total是潜在恶意软件文件的实际收集点,报告称每天收集超过一百万个可疑可执行文件[2]。最近的研究表明,在良性和恶意软件文件的集合中反复观察到类似的文件[1,3]。这些变体恶意软件文件可以逃避传统的基于签名的恶意软件检测方案,同时保持与其原始文件相似的功能。独特的恶意软件文件的数量已经使从事恶意软件检测和分析的人力资源不堪重负。由于没有防病毒公司或安全机构可以人工检测和分析大量独特的恶意软件文件,因此在过去几十年中,机器学习已被广泛研究并用于检测变体恶意软件文件[4最近,由于图像处理和自然语言处理的深度学习的巨大成功,机器学习的恶意软件检测再次受到大量关注;例如,卷积神经网络(CNN)或递归神经网络(RNN)[7*通信地址:大韩民国汉城国民大学计算机工程系,邮编:02707电子邮件地址:vmfn0401@gmail.com(D.Moon),jaekoo@kookmin.ac.kr(J.Lee),mkyoon@kookmin.ac.kr(M.Yoon)。同行评审由韩国通信和信息科学研究所(KICS)负责https://doi.org/10.1016/j.icte.2021.08.005恶意软件文件具有几个可用于训练机器学习模型的功能。可以从恶意软件文件中提取静态特征,而无需执行这些文件。文件头信息、反汇编代码、字符串和字节n-gram都属于静态特性的范畴.动态特征在文件运行时生成。例如,应用程序编程接口(API)调用序列、传出数据包和修改的注册表都是动态特性[1]。静态和动态特征各有优缺点。提取静态特征需要较少的计算资源,但混淆,如包装和加密,导致功能消失。相比之下,动态特性需要昂贵的可执行环境,通常是虚拟机和沙箱[10]。在本文中,我们专注于从Windows可移植可执行(PE)文件中提取的静态特征,这些文件仍然构成了大多数恶意软件文件[1]。然而,本文的思想同样适用于动态功能,甚至非PE文件。在本文中,我们专注于使用良性和恶意软件文件的标记数据集进行监督学习,例如随机森林,支持向量机,深度学习算法[6从良性和恶意软件文件中提取特征后,它们应该表示为固定长度的向量,作为输入向量输入机器学习算法。有些特征很容易转换成固定长度的向量,如文件大小和节数,因为它们表示为一个数字或一个向量,固定数量的元素。然而,一些特征是2405-9595/2021韩国通信和信息科学研究所(KICS)。出版社:Elsevier B.V.这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。D. Moon,J.李和M。YoonICT Express 8(2022)124125表示为具有不同数量元素的集合或列表;例如,不容易固定向量大小表示从PE文件中的导入地址表(IAT)中提取的一组导入函数名,因为新的函数名可能会首次出现在测试数据集中,而这些函数名在训练数据集中是不存在的,或者该集合可能会变得太大而无法在固定长度的向量中编码[8,11,12]。由于特征散列可以将这些可变长度的特征机械地转换为固定长度的向量,因此它被广泛用于基于机器学习的恶意软件检测[12特征散列被设计为在表示各种特征时节省空间。它的有效性被确认为垃圾邮件过滤器和恶意软件检测应用程序。例如,Ember由多个特征哈希向量组成,用于基于机器学习的恶意软件检测[12]。在基于机器学习的恶意软件检测的文献中,特征散列向量的适当大小尚未得到充分研究,尽管特征散列的主要目的是节省内存和存储空间[16]。在本文中,我们首次研究了特征哈希向量的适当大小及其对基于机器学习的恶意软件检测的影响。我们发现,在国家的最先进的方案中的特征哈希向量的默认大小被配置为不必要的大。我们提出了一种新的调整方案来调整特征哈希向量的大小。通过对大量真实恶意软件文件数据集的实验,我们提出的方案不仅减少了70%的内存空间,而且提高了检测精度,与最先进的方案相比。本文的其余部分组织如下。第二部分是相关的工作。我们在第三节中介绍了问题和动机。我们将在第4节中解释紧凑特性散列。第5节给出了实验结果,第6节给出了结论。2. 相关工作全 球 范 围 内 生 成 了 许 多 独 特 的 恶 意 软 件 文 件 ,VirusTotal报告称,每天收集超过一百万个可疑的可执行文件[2]。最近的研究表明,恶意软件和良性文件都有类似的文件[1,3]。由于没有安全机构可以手动分析如此大量的独特恶意软件文件,因此基于机器学习的恶意软件检测已经研究了几十年[4随着Microsoft Windows在全球范围内的广泛使用,恶意PE文件构成了恶意软件的最大部分[2]。存在两种类型的恶意软件分析方法:静态分析和动态分析,其中每种方法生成静态特征和动态特征。可以从PE文件中提取静态特征,而无需运行该文件。例如,文件字节流中的头信息、反汇编代码和人类可读的字符串都是静态特性。由于静态特征可以使用相对较少的计算资源轻松获得,因此许多研究都使用它们来训练机器学习[5最近的一研究揭示了在应用打包或加密时静态特征的局限性[17]。相反,动态特征是在恶意文件被执行时获得的[14]。动态分析通常需要昂贵的虚拟机,其中执行PE文件以生成动态特征,例如API调用序列。深度学习由于其在图像处理和自然语言处理方面的成功而在恶意软件检测中引起了人们的关注。从PE文件的静态特征进行图像转换,使CNN能够使用来区分恶意文件和良性文件[7]。具有两个隐藏层的简单深度神经网络[8]或通过字节级馈送的深度端到端学习然而,Pendlebury等人证明,这种高预测精度是由于过度拟合或有偏差的数据集[6]。从PE文件中提取静态或动态特征后,应将其转换为固定长度的矢量。这是为了确保大多数机器学习算法读取固定长度的向量。特征散列广泛用于基于机器学习的恶意软件检测,因为任何特征都可以通过特征散列编码成固定长度的向量[12特征散列的目的是节省空间[16];然而,据我们所知,基于机器学习的恶意软件检测的适当向量大小尚未得到彻底研究。3. 问题和动机由于独特但相似的恶意软件文件的数量正在增加,基于机器学习的恶意软件检测被广泛用于检测恶意软件变体。特征散列是一种简单但有效的方法,可以将各种恶意软件特征编码为固定长度的向量,最终输入机器学习算法。为了简单起见,我们专注于PE文件的静态特征和Ember [12]在本文中提出的特征哈希方案;然而,我们的主要思想可以应用于其他特征和不同的文件类型。可以从恶意软件或良性PE文件中提取一系列静态特征,例如文件大小,时间戳,映像版本,操作系统版本,头大小,支持的机器类型[18]。固定长度的向量很容易表示这些特征,并且可以在此向量上训练和测试机器学习模型[6例如,[11]和[19]中给出的特征向量的维数分别为184和44特征散列在从任何特征类型的PE文件[12然而,某些特征不容易在固定长度的向量中编码。例如,尚未从训练数据集中观察到的新特征值可能首次出现在测试数据集中,或者不同特征值的数量可能太大而无法适应固定长度的向量。如果我们将向量大小设置得足够大以包含所有可能的特征值,则计算资源可能会耗尽。特征散列的优点是允许对参数向量进行显著的存储压缩[16]。图1描述了功能哈希如何从PE文件中导入的一组DLL名称D. Moon,J.李和M。YoonICT Express 8(2022)124126−++++−= ×Fig. 1. PE文件的一组DLL的特性散列。 哈希函数h表示索引,而哈希函数h决定索引值增加或减少1 [16]。图二. 基于特征散列的向量构造及子部分大小 对于Ember中PE文件的静态特性[12]。阴影区域表示部件对其应用特征散列。对于每个名称,特征散列应用两个散列函数h和h。向量大小设置为m。函数h返回一个从0到m的值1,它从向量中确定一个插槽或者索引。函数f2返回1或1,即添加到索引槽的当前值。因此,每个DLL名称通过将当前值增加或减少1而仅在一个插槽中保留其存在,这可以抵消冲突影响并导致无偏估计[16]。特征散列可以单独应用于PE文件的每个特征,并且所得到的向量可以很容易地连接成一个用于机器学习算法的大输入向量。Ember是一个著名的开放基准数据集,它通过生成和组合多个特征哈希向量来概述机器学习算法的集成输入向量的构建[12]。图2演示了Ember采用的静态特性。我们观察到节信息、导入地址表(DLL和函数)和导出地址表的三个特征分别被转换成大小为250、1280和128的基于特征散列的向量。头部信息的某些部分也被转换为基于特征散列的向量,但它们的大小适中。请注意,特征散列主要用于节省空间。这三个特征构成了整个矢量的70%以上尺寸,(250 256 1024 128)/2381。据我们所知,在基于机器学习的恶意软件检测的文献中,还没有充分研究特征散列生成的向量的适当大小。4. 压缩特征散列我们研究了特征散列的适当向量大小 基于机器学习的恶意软件检测。我们提出了一个新的调整方案的特征哈希向量大小考虑不同的功能的平均数量。我们使用一个包含超过280,000个恶意软件和良性文件的真实数据集。我们提出的方案相比,Ember,流行的基于特征散列的恶意软件检测模型,可以支持一系列的机器学习算法,在向量大小和各种预测指标,如准确性,精度和召回。4.1. 特征散列和机器学习模型我们使用与Ember相同的特征向量格式,以关注不同向量大小的特征哈希的效果。Ember的默认设置如图2所示,其中三个特征被转换为八个子向量。有关每个功能的更多信息,请参见[12]。(1) 从节信息中,选择五个特定特征:文件大小、熵、虚拟大小、条目名称和特性。每个特征通过特征散列编码成50个槽的向量。因此,有250个插槽(5 50)对于图中的区段信息,2中的每个条目,表示为(2) 从导入的地址表(IAT)信息中,选择两个功能:DLL和函数。DLL名称被编码为256个插槽的向量,函数名称被编码为大小为1024的向量。注意,这些向量构成整个向量中的最大空间(3) 根据导出地址表(EAT)信息,通过特征散列将函数名编码为大小为128的向量。Ember的最终特征向量包括2381个插槽,遵循其默认设置[12]。虽然特征哈希的主要目的是节省空间,但以前没有研究过特征哈希的适当向量大小以及其大小如何影响机器学习算法。在此,我们提出了一种新的调整方案来设置通过特征散列生成的八个子向量的大小,这在上面进行了解释。请注意,在Ember的默认设置中,超过70%的空间被这八个子向量占用。 我们的想法是,应通过考虑调整大小不同特征的平均数量。例如,如果PE文件中DLL名称的平均数量约为因此,我们详细分析了来自PE文件的真实数据集的八个特征,其中包括恶意软件和良性文件。构造固定长度的特征向量的目的是训练和测试机器学习模型,D. Moon,J.李和M。YoonICT Express 8(2022)124127+−∼=-≥×(1−m)图3.第三章。 已被k个不同特征值命中的插槽数。特征向量。许多机器学习算法都是可用的,包括简单的决策树,随机森林,支持向量机,深度神经网络,如CNN和RNN。在这项研究中,我们使用随机森林的特征散列生成的输入向量。我们选择随机森林有两个原因:第一,其他算法的实验结果表现出类似的性能模式。其次,随机森林显示出最佳的性能和稳定的结果,这已经在以前的工作中得到了证实,例如[17,20]。4.2. 矢量大小和碰撞在特征散列中,向量大小是固定的,并且使用两个散列函数。对于给定的特征值,第一散列函数选择一个槽来编码该特征。第二散列函数选择1或1来增加或减少由第一散列函数选择的槽的当前值假设向量大小固定为m,并且用于特征散列的不同特征值的数量为n。为了简单起见,我们假设每个特征值仅计数一次。然后,我们可以如下计算已经被k个不同特征值命中表1恶意软件和良性文件的数据集数据类型(收集期间)恶意软件文件良性文件总计培训(2017 2018)117,173 82,705 199,878测试(2019)30,686 51,857 82,5432017 - 2019年度总计147,859 134,562 282,421表2Ember向量大小与数据集平均值。特征Ember默认大小数据集平均值部分504导入(DLL)2564进口(功能)102480出口(功能)12818如图2所示。该数据集包括2017年至2019年收集的真实恶意软件和良性文件我们总共使用了282,421个PE文件作为数据集; 2017年至2018年的数据文件用作训练数据集,2019年的数据文件表1总结了不同实验用途的恶意软件和良性文件我们观察到,从PE文件中提取的不同特征值的平均数量远远小于Ember的默认向量大小。例如,Ember forImports(DLL)的默认向量大小为256,而数据集中PE文件的平均数量为4,如图所示。3和表2。这意味着导入(DLL)的大多数向量槽甚至一次都没有被触及,这表明空间被浪费了。我们在表2中展示了每个特征的不同特征值的平均数量。考虑到特征散列的主要目的是节省空间,Ember的默认向量大小可能不是最佳配置。然而,空间利用效率应该与机器学习算法的性能一起考虑.如果一个小的矢量导致无法容忍的不准确性,该方案将是不可接受的。在这项研究中,我们探索了一个实际上最佳的特征哈希向量大小,并将向量大小和机器学习性能放在一起考虑。通过对数据集的详尽实验,我们观察到Ember的默认设置浪费了(n)(1)kKM1n−k实现机器学习算法的最佳性能-在准确性方面我们提出了一种新的调谐方案我们假设一个不同的特征值对于一个给定PE文件的每个特征类型只出现一次,这对于图2中所示的八个特征是正确的。例如,PE文件具有IAT,其中导入(DLL)功能是一组DLL名称。在Ember中,此功能的m设置为256。图3显示了f(256,16,k)的曲线图。当k为0时,不使用插槽当k1,该槽仅专用于一个特征值。当k2,k个特征共享一个时隙,并且发生冲突。如果碰撞发生严重,则会发生信息丢失4.3. 数据集和特征统计在本文中,我们研究了真实数据集上特征哈希的适当向量大小,特别关注八个其中向量大小被设置为平均值许多不同的特征。例如,我们可以将导入(DLL)的向量大小设置为c 4,因为PE文件数据集中不同DLL的平均数量为4。注意,c可以被设置为正整数。根据经验,将c设置为2到4会导致我们实验中机器学习模型的高准确性,同时与Ember的默认设置我们在第5节中详细地通过实验证明了这一点。5. 实验我们探索适当的向量大小的功能散列,通过详尽的实验与数据集的真正的恶意软件和良性文件。实验结果表明f( m, n, k)=m×pk= m×(一)D. Moon,J.李和M。YoonICT Express 8(2022)124128∼×=- 产品介绍表3十大重要特征。特征重要性FH科(一般):没有。内存写入部分0.020X数据目录:虚拟地址0.014X电子邮件字节熵直方图:第253个值0.012X数据目录:文件头的大小0.012X字节熵直方图:第245个值0.011X进口(函数):1011第一值0.010O字符串信息:第76个值0.010X字节熵直方图:第244个值0.010X字节熵直方图:第251个值0.010X截面(尺寸):第5个值0.009OEmber的当前向量大小被配置为不必要的大,并且从空间利用率和分类精度两方面5.1. 实验装置该数据集包含从2017年到2019年收集的147,859个恶意软件PE文件和134,562个良性PE文件。我们使用2019年收集的文件作为测试数据集,其他文件作为训练数据集。恶意软件文件是从VirusTotal收集的,该网站为学术研究提供恶意软件样本[2]。我们收集从大学校园的PC中提取的良性文件,并通过网络爬行。所有收集的文件都通过VirusTotal进行检查,该工具使用60多种防病毒扫描程序检查文件。我们定义的规则来标记一个文件为恶意或良性如下:一个文件被标记为良性的,如果这是没有检测到恶 意 软 件 的 任 何 防 病 毒 扫 描 程 序 。 如 果 该 文 件 被VirusTotal中的40多个防病毒扫描程序检测为恶意软件,则该文件被标记为恶意。Ember采用了相同的标记规则[12]。为了实现特征散列,我们使用Ember的开源代码,可以从[12]获得。这段代码的默认设置生成一个大小为2381的特征向量,如图1和图2所示。1和2.我们选择一个随机森林算法作为一个二元分类器。我们使用Scikit-learn版本0.23.1的随机森林,并且使用默认参数,没有任何更改[21]。随机森林在安装了Windows 10的PC上运行,Windows 10安装在Intel i7-7700上,64 GBRAM和4 TB HDD。表4Ember向量大小与数据集平均值。见图4。Ember中存在2381个特征的特征重要性比较。5.2. 特征重要性我们首先分析提供的特征重要性 随机森林算法。这里的特征重要性通过随机森林算法来衡量,以评估每个特征在分类任务中的重要性。每个特征的重要性主要基于杂质[22]。图4按降序显示特征重要性。Ember的默认设置用于实验。我们观察到,未通过特征散列编码的特征比应用特征散列的特 征排名更高, 在图中分别表 示为“ 非FH”和“FH”。请注意,有723个非FH特征和1658个FH特征,如图所示。二、我们根据表3中总结的特征重要性选择前10个特征。我们使用与Ember中相同的功能名称。前十名中只有两个属于FH。这意味着非FH特征比FH特征贡献更多。5.3. 向量大小与机器学习精度在本文中,我们通过考虑来自训练数据集的特征的不同数量来确定用于特征散列的适当向量大小。表2显示了当前设置其中子向量大小看起来与数据集的平均值不密切相关。我们将向量的大小改变c(平均大小)。针对每个不同的向量大小训练单独的机器学习模型。我们用c其中k是整数,4k 4;表4只显示了六种情况,包括c 0,这足以比较机器学习模型精度精度召回F1评分向量大小总计/余烬(%)节导入(DLL)进口(功能)出口(功能)合计平均值×0 93.56 87.44 96.56 91.77 0 0 0 0 0.00平均值×1 95.24 91.05 96.74 93.81 4× 5 4 80 18 122 7.36平均值×2 96.11 92.80 97.09 94.90 8× 5 8 160 36 244 14.72平均值×4 96.19 93.12 96.95 95.00 16× 5 16 320 72 488 29.43平均值×8 95.86 92.24 97.06 94.59 32× 5 32 640 144 976 58.87平均值×16 95.82 92.29 96.90 94.54 64× 5 64 1280 288 1952 117.73余烬95.1290.6996.8793.6850× 5 256 1024 128 1658 100.00D. Moon,J.李和M。YoonICT Express 8(2022)124129×××=××不同的向量大小。我们将这六种情况记为C0、1、2、4、8和16。我们比较了准确率,精度,召回率和F1分数,同时改变特征散列的向量大小。实验结果总结见表4。方面的F1评分,AVG4代表F1最好成绩。此外,委员会认为,总向量大小为424,是Ember默认大小的五分之一。即使AVG 1也表现出比Ember更好的预测性能,Ember的向量大小仅为106,即,不到5%的灰烬。这证实了默认大小的Ember是太大,和更好的性能和显着节省空间,可以通过我们提出的计划。我们观察到这些特征确实有助于预测准确性,因为AVG 0的性能下降; AVG 0意味着这些特征不用于机器学习。6. 结论在本文中,我们研究了在训练和测试机器学习模型以检测恶意软件文件时,特征哈希的适当向量大小我们发现,国家的最先进的计划的默认向量大小太大,因此,空间没有得到有效利用。通过真实恶意软件和良性文件的数据集,我们探索了可以有效节省内存空间的适当向量大小。竞合利益作者声明,他们没有已知的可能影响本文所报告工作致谢本研究由韩国科学部ICT未来计划(NRF-2020 R1 A2C1006135)资助的韩国国家研究基金会(NRF)的基础科学研究计划支持。这项工作得到了韩国政府(MSIT)资助的信息通信技术促进研究所(IITP)的资助(编号2018-0-00429,安全大数据自动分析的实时相似性测量基础研究)。本研究得到了韩国科学和信息通信技术部(MSIT)的支持,并在IITP(信息通信技术规划评估研究所)监督的ICAN(ICT挑战和高级人力资源开发网络)计划(IITP-2020-0-01826)下进行。引用[1] X. Ugarte-Pedrero,M. Graziano,D. Balzarotti,仔细看看恶意软件样本的每日数据集,ACM Trans.Priv.Secur。22(1)(2019)6:1-6:30.[2] [Online].可用:https://www. 我很高兴。com/en/statics/.[3] B. Li,K.朗迪角盖茨,Y. Vorobeychik,恶意单例文件的大规模识别,在:CODASPY,2017年。[4] 卡巴斯基,用于恶意软件检测的机器学习方法,2020。[5] X. Hu,S.巴特卡尔湾Griffin,S. Kang,Mujiang X-S:基于静态特征的可扩展恶意软件集群,见:USENIX年度技术会议,2013年。[6] F. Pendlebury,F.皮耶拉齐河Jordaney,K.约翰内斯湖Cavallaro,TESSERACT:消除跨空间和时间的恶意软件分类的实验偏差,在:USENIX安全研讨会,2019年。[7] Z. Cui,F. Xue,X.蔡,Y. Cao,G. Wang,J. Chen,基于深度学习的恶意代码变体检测,IEEE Trans. Ind. Inf. 14(7)(2018)3187-3196。[8] J. Saxe,K.柏林,基于深度神经网络的恶意软件检测使用二维二进制 程 序 功 能 , 在 : 恶 意 和 不 想 要 的 软 件 国 际 会 议(MALWARE),2015年。[9] E.作者:J.布兰登湾卡坦扎罗角尼古拉斯,通过吃整个exe进行恶意软件检测,在:AAAI研讨会,2018年。[10] 布 谷 鸟 沙 盒 , [Online] 。 可 通 过 以 下 网 址 获 得 :https://cuckoosandbox.org/。[11] M. Shafiq , S. Tabish , F. Mirza , M. Farooq , PE-Miner :MiningStructural Information To Detect Malicious Executables inRealtime,RAID,2009.[12] H.S. Anderson,P. Roth,Ember:An open dataset for training staticpe malware machine learning models,2018,arXiv preprint arXiv:1804. 04637.[13] J. Jang,D.张德广,中国地质大学生. Brumley,S. Venkataraman,BitShred : feature hashingmalwarefor scalable triage and semanticanalysis,in:CCS '11 ,2011 .[14] Z. Zhang , P. Qi , W. Wang , Dynamic malware analysis withfeatureengineeringand feature learning,AAAI,2019。[15] E.拉夫角尼古拉斯,恶意软件分类和类不平衡通过随机散列LZJD,在:AISec,2017年。[16] K. Weinberger , A. Dasgupta , J. Langford , A. Smola , J.Attenberg,大规模多任务学习的特征散列,ICML,2009。[17] H. Aghakhani , F. Gritti , F. 麦 加 湾 Lindorfer , S. Ortolani , D.Balzarotti,G.维尼亚角Kruegel,When malware is packin' he a t ;li m i tsofma c h in ele a r ni n gcl a ss i fi e r sba s e donst a t i c an a l y si s fe a t u re s , 20 20 年,NDS S 。[18] “Pe格式”,Microsoft,2019,[在线]。可用:https://docs. 我很高兴。com/en-us/windws/win32/debug/pe-format。[19] Z. M. a. M. Bilzor,建立一个关于反恶意软件测试研究的机器学习研讨会(水),2014年。[20] R. Caruana,N. Karampatziakis,A. Yessenalina,Anempiricalevaluationof supervised learning in high dimensions,ICML,2008。[21] Scikit-Learn,[Online]. Available:https://scikit-learn. 或g/stable/。[22] 功能重要性与森林的树木,[在线]。Available:https://scikit-learn.org/stable/auto_exmple/ensemble/plot_forest_imptances. HTML.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功