【笔记】机器学习算法在异常网络流量监测中的应用

先从一些相对简单的综述类看起,顺便学学怎么写摘要相关工作的,边译边学

机器学习算法在异常网络流量监测中的应用

原文:Detecting Network Anomalies in NetFlow Traffic with Machine Learning Algorithms

Authors: Quôc Vo, Philippe Ea, Osman Salem, Ahmed Mehaoua

原文链接:Detecting Network Anomalies in NetFlow Traffic with Machine Learning Algorithms | IEEE Conference Publication | IEEE Xplore

Abstract

及早发现网络流量数据中的异常对于强大的网络安全至关重要。本研究调查了各种机器学习和深度学习模型在识别 NetFlow v9 流量中的异常模式方面的有效性。我们解决了数据预处理挑战,并探索了特征工程技术,以优化异常检测系统的性能。我们的研究根据准确性、曲线下面积 (AUC) 和计算效率等关键指标评估了几个模型的性能。结果突出了每种模型的优势和局限性,强调了平衡性能与实际部署可行性的重要性。随机森林成为最有效的模型,准确率为 93.8%,AUC 为 0.99。此外,它还展示了卓越的训练和测试时间,训练时间仅为 0.19 秒,每次预测仅需 0.23 微秒。相反,递归神经网络模型在训练效率和整体性能方面表现出局限性。通过对模型性能和计算考虑因素的细致分析,本研究有助于推进网络安全应用的异常检测技术。

关键词:异常检测、深度学习、逻辑回归、机器学习、朴素贝叶斯、网络流量、随机森林、递归神经网络。

Anomaly Detection, Deep Learning, Logistic Regression, Machine Learning, Naive Bayes, NetFlow Traffic, Random Forest, Recurrent Neural Network

关于AUC:模型评估指标 AUC 和 ROC,这是我看到的最透彻的讲解 (qq.com)

1 Introduce

网络流量异常检测的重要性balabala(略)

传统的异常检测方法是基于规则的,基于静态规则的系统比较死板,越来越难以满足不断变化的网络。机器学习 (ML) 技术已成为在 网络流量中自动检测异常或者恶意流量的强大工具,它利用数据中固有的模式和关系来区分正常和异常行为。

在本文中,介绍了使用多个 ML 模型对网络流量异常检测进行的全面研究。具体来说,我们旨在选择和比较三种广泛使用的传统 ML 算法:逻辑回归 (LR)朴素贝叶斯分类器 (NB)随机森林 (RF),以及深度学习 (DL) 算法递归神经网络 (RNN)。这些算法提供了多种异常检测方法,从概率模型到集成方法和深度学习架构。我们的研究旨在通过评估这些不同的 ML 模型在检测各种类型的网络异常(包括入侵尝试拒绝服务 (DoS) 攻击和内部威胁)方面的性能,为网络安全和异常检测领域做出贡献。通过广泛的实验和比较分析,我们试图确定每个模型在准确性、效率、可扩展性和可解释性方面的优势和劣势,从而为它们在不同网络环境中实际部署的适用性提供有价值的见解。通过利用广泛的数据集并采用相关的评估指标,包括准确率、精度、召回率、F1 分数和 AUC(曲线下面积),并考虑训练和测试持续时间,我们的目标是确定最有希望增强异常检测能力的算法。

本文的其余部分组织如下。第2部分回顾了异常检测和 ML 领域的相关工作。第3部分揭示了我们选择最有效异常检测算法的方法。在第4节中,我们介绍了我们的实验结果和分析,然后讨论了我们的发现。最后,第5节总结了本文的主要发现和未来研究的方向。

2 Related work

近年来,机器学习和深度学习技术在各个领域的使用激增。

这一部分主要概述了机器学习和深度学习在各个学科领域多样化的应用,并且重点关注了网络异常流量检测方面的应用。

Fosic 等人在Anomaly detection in netflow network traffic using supervised machine learning algorithms这篇文章中研究了不同的分类器在检测网络流量异常方面的有效性。通过在 UNSW-NB15 数据集上评估随机梯度下降 (SGD)、支持向量机(SVM)、K最近邻(KNN)、高斯朴素贝叶斯 (GNB)、决策树 (DT)、RF 和 AdaBoost (AB) 等算法,它确定了最佳参数和编码方法。鉴于数据集的分布不平衡,F1 分数和 AUC 等性能指标与标准指标一起使用。RF 分类器是最有效的,通过利用数据集的代表性子集,实现了 97.68% 的 F1 分数和 98.47% 的 AUC 分数。值得注意的是,这项研究比较了各种算法并选择了最适合 NetFlow 数据流的算法。此外,这篇文章还介绍了 ML 流程中的优化,探讨了数据比率、编码方法和特征缩减技术对 NetFlow 数据流的影响。

Pranto 等人在Performance of machine learning techniques in anomaly detection with basic feature selection strategy-a network intrusion detection system中提出了一种使用机器学习将来自网络入侵检测系统 (NIDS)的传入网络流量分类为正常或异常的方法。使用 NSL-KDD 数据集评估了几个分类器,包括 KNN、DT、NB、LR、RF 及其集成方法。为了简化计算复杂性和数据集维度,采用了一种基本的特征选择策略。达到的最高准确率为 99.5%,误报率为 0.6%。

Biswas 等人在 Anomaly detection using ensemble random forest in wireless sensor network中提出了一种用于无线传感器网络 (WSN) 异常检测的集合射频 (ERF)。该集成将 DT、 NB 和 KNN 作为基本学习器,并在 RF 构造采样期间采用 bootstrapping。为了评估 ERF 的有效性,使用了来自基于多传感器数据融合 (AReM) 数据集的活动识别的真实传感器数据。作者采用了各种性能指标,包括准确性、灵敏度、特异性、精度、召回率、F 度量和 G 平均值,以证明 ERF 优于其单个基本学习者。

Manimurugan 等人在Iot-fog-cloud model for anomaly detection using improved naïve bayes and principal component analysis中集成了云计算和雾计算的功能,用于强大的智慧城市基础设施。他们提出的方法利用了云和雾计算的优势:云存储用于海量数据,雾计算用于本地化、实时的服务交付。此外,还引入了改进的 NB (INB) 分类器,结合了主成分分析 (PCA) 用于特征提取。利用 UNSW-NB15 数据集,这种基于 PCA 的特征工程和 INB 分类实现了惊人的 92.4% 准确率和 95.35% 的检出率,显著增强了物联网网络的异常检测能力。

由于 IoT 设备和服务的激增,管理网络安全变得更具挑战性。深度学习技术在 NIDS 中广泛用于识别恶意流量,具有长短期记忆 (LSTM)、双向 LSTM (BiLSTM) 和门控循环单元 (GRU) 等 RNN 变体。Ullah 等人在Design and development of rnn anomaly detection model for iot networks中介绍了一种用于物联网网络异常检测的新型 DL 方法,该方法利用 LSTM、BiLSTM 和 GRU 变体以及混合 CNN-RNN 模型。使用包括 NSL-KDD、BoT IoT、IoT-NI、IoT-23、MQTT、MQTTset 和 IoT-DS2 恶魔在内的数据集进行评估,与现有实施相比,在准确性、精度、召回率和 F1 分数方面具有卓越的性能。

Hooshmand 等人在Network anomaly detection using deep learning techniques中提出了一种使用卷积神经网络 (CNN) 解决网络异常的新方法,CNN 是 ML 和计算机视觉中一种成熟的架构。具体来说,作者提出了一个为这项任务量身定制的一维 CNN 模型。最初,网络流量数据分为 TCP、UDP 和其他协议。随后,每个类别都经过独立处理。在模型训练之前使用卡方技术进行特征选择,然后进行过采样以解决类不平衡问题。使用公共数据集 UNSW-NB15 数据集的实验评估证明了所提出的方法的有效性,TCP、UDP 和其他类别的加权平均 F1 分数分别为 0.85、0.97 和 0.86。

Wong 等人在Real-time detection of network traffic anomalies in big data environments using deep learning models中研究了 DL 在大规模数据环境中自动检测异常谎言。使用在网络流数据上训练的 CNN 和 LSTM 模型,与传统方法相比,所提出的框架实现了卓越的异常检测性能。此外,这些 DL 模型以最小的延迟实时处理流数据。迁移学习和模型压缩等优化技术进一步提高了检测效率。此外,Altulaihan 等人在Anomaly detection ids for detecting dos attacks in iot networks based on machine learning algorithms中研究了一种基于 IDS 的防御机制,该机制采用异常检测和 ML 技术来监控网络流量的异常情况。使用数据集 IoTID20 的评估证明了该方法的有效性,使用 GA 选择的特征训练的 DT 和 RF 分类器显示出前景。这凸显了 ML 在增强 IoT 网络安全以应对 DoS 攻击方面的潜力,并为解决 IoT 环境中新出现的网络安全挑战提供了见解。

Chew 等人在A survey on vehicular traffic flow anomaly detection using machine learning中全面研究了 ML 在车辆交通流异常检测中的应用,以实现有效的交通管理、公共安全和转运优化。快速识别异常交通状况有助于及时响应和做出明智的决策,以缓解拥堵并提高交通效率。他们的调查探讨了利用 ML 检测流量异常的技术复杂性,研究了流量异常检测的各个方面,包括数据源、处理方法、机器学习算法和现场常用的评估指标。此外,它还探索了新兴的研究方向,提供了通过先进的 ML 技术改进异常检测的路线图。

检测和缓解网络攻击至关重要,但分析单个网络数据包的传统方法存在局限性,尤其是对于处理大量流量的路由器。Campazas 等人在Malicious traffic detection on sampled network flow data with novelty-detection based models中旨在使用以 1/1,000 数据包采样率收集的流数据来检测恶意流量。在合成上采用基于异常检测的模型和来自 RedCAYLE 的真实流数据,显示了基于新颖性检测的模型在实现高精度和最小误报方面的有效性。

这些研究展示了 ML 和 DL 技术在各个领域的多功能性和有效性。虽然一些例子揭示了 RF 等传统 ML 模型的优越性,但值得强调的是,根据每个应用程序的特定需求选择最合适的模型才是最重要的。

3 Methodology and experiment design

第三章主要介绍了使用ML算法进行异常流量检测的方法,具体包括预处理网络流量数据,选择适当的参数,训练多个ML模型,以及使用各种指标评估他们的性能,图1说明了本文的方法摘要:

整体思路就是先数据预处理,包括数据清洗、标签编码、归一化、特征选取、类平衡,然后交给不同算法训练,评估比较不同算法的结果。

A. Data Preprocessing

实验从数据预处理开始:

  • 删除缺失值确保数据集没有不完整的条目。

  • 采用异常值检测和删除来确保后续分析的数据完整性和可靠性。

  • 使用标签编码将分类变量(如协议)编码为数字表示。(这种方法涉及为变量中的每个类别分配一个唯一的数值,将分类数据转换为适合 ML 算法的格式。选择标签编码是因为它在保持分类特征中的序数关系方面简单而有效。)

  • 归一化:此外,这些数值特征将被归一化,以标准化它们在数据集中的比例。这种归一化是使用 Min-Max 缩放技术实现的,其中每个特征 X 都转换为 0 到 1 范围内的值。

    其中,Xmin 和 Xmax 分别表示特征 X 的最小值和最大值。

    归一化是预处理中的关键步骤,因为它确保所有数值特征对学习过程的贡献相同,从而防止具有较大尺度的特征在模型中占据主导地位。通过将特征缩放到 uni 形式范围,归一化有助于模型收敛,并在后续分析期间保留特征之间的内在关系。此外,归一化增强了 ML 算法的有效性,尤其是那些对特征尺度敏感的算法,例如基于梯度的优化方法。它可以通过减少异常值的影响并确保优化过程在所有特征上顺利运行来提高模型的稳定性和性能。这种标准化的特征缩放方法有助于提高异常检测系统的整体可靠性和可解释性。

B. Feature Engineering

在这些预处理步骤之后,我们将方法论扩展到特征工程,这是一个关键阶段,旨在选择相关特征来优化模型性能。特征工程涉及各种技术,例如基于重要性排名的特征选择。为了识别有影响力的特征并确定它们对异常检测影响的优先级,进行了特征重要性分析。该分析根据特征对模型性能的贡献对特征进行排名,突出了区分正常网络流量和异常网络流量的最具区分力的属性。图 2 说明了根据特征重要性的特征排名,提供了对驱动异常检测过程的关键因素的见解。

在我们的研究中,我们专注于根据从 RF 模型获得的重要性分数来选择前 10 个最相关的特征。值得注意的是,最相关的特征主要与字节数流持续时间以及与 TCP 窗口相关的一些特征相关。这些属性在捕获网络流量的特征和实现有效的异常检测方面发挥了重要作用。

特征工程在提高异常检测模型的有效性和效率方面起着关键作用。通过根据相关特征的相关性和相关性选择和转换相关特征,特征工程优化了模型性能和可解释性,从而有助于以更高的准确性和可靠性识别网络异常。

在特征工程之后,我们结合了数据重采样技术来解决数据集中的类不平衡问题,确保异常检测模型在平衡的数据集上进行训练。类不平衡是异常检测任务中的一个常见问题,其中少数类明显小于多数类,这可能导致模型性能有偏差。

C. SMOTE(合成少数类过采样技术)

Synthetic Minority Over-sampling Technique (SMOTE)意为合成少数类过采样技术。SMOTE具体功能是为少数类生成合成样本,以实现更均衡的类分布。SMOTE 的工作原理是根据现有少数类样本的特征空间相似性合成新的少数类实例。

SMOTE 算法包括以下步骤balabala(略)

通过应用SMOTE,我们用合成样本增强了少数类实例,有效地平衡了类分布,并使异常检测模型能够从更具代表性的数据集中学习。此预处理步骤对于提高异常检测模型的稳健性至关重要。

D. Models Used

在准备好进行分析的预处理和平衡数据集后,我们采用了一系列 ML 和 DL 模型。每个模型的选择都是根据其处理网络数据特征的适用性及其有效识别异常模式的潜力。下面,我们全面概述了我们研究中使用的 ML 模型,以及它们的优缺点。

首先,我们使用 LR,这是一种用于二元分类任务的基本统计方法。LR 模型使用 logistic 函数估计给定实例属于特定类的概率:

(其中 x 表示输入特征,w 表示模型权重,b 是偏差项。LR 的优势在于其简单性、可解释性以及处理特征和类之间的线性关系的效率。当充分理解特征重要性并且决策边界是线性的时,它特别有效。但是,LR 可能难以捕获数据中复杂的非线性关系,并且受到其线性假设的限制。)

我们的第二个模型 NB 是一个基于贝叶斯定理的概率分类器,特征之间具有很强的独立性假设。NB 高效、可扩展,并且在处理高维数据时表现良好。它对于文本分类任务和特征独立性成立的方案特别有效。然而,NB 的特征独立性假设在实践中可能并不总是成立,导致在相关特征的情况下性能不令人满意。与 RF 和神经网络等更灵活的模型相比,NB 捕获数据中复杂关系的能力也受到限制。

给定输入特征 x 的类 Ck的分类概率可以使用以下公式计算:

RF 是一种集成学习技术,它构建多个 DT 并结合这些树的预测,以改进分类并减少过拟合。随机森林的单个决策树 T 中的决策过程可以表示为:

(RF 的优势在于它能够处理复杂的非线性关系、特征交互和嘈杂的数据。RF 对过拟合很鲁棒,并且在最小的超参数调整下表现良好。然而,与 LR 等更简单的模型相比,RF 的计算成本可能很高,而且更难解释。)

最后,RNN 是一类神经网络,旨在捕获数据中的顺序依赖关系。RNN 适用于时间序列数据和自然语言处理任务,因为它能够保留先前输入的知识。简单的RNN细胞(一个神经单元)中的计算可以表示为:

尽管 RNN 具有捕获复杂模式的潜力,但它们可能需要大量的超参数调整和大量的数据才能有效地泛化。此外,它们可能会遇到梯度消失等挑战,由于梯度更新的乘法性质,长期依赖关系变得难以学习。但是,RNN 对于涉及顺序数据的任务非常有效,并且已经扩展为 LSTMGRU 等变体。

这些模型中的每一个在性能、可解释性和计算复杂性方面都提供了独特的优势和权衡。通过利用各种 ML 技术,我们旨在综合评估不同方法在 NetFlow 流量中异常检测的有效性,同时考虑到网络数据带来的具体特征和挑战。

4 Experimental results

我们实验中使用的网络数据集是使用 Mihailescu 在The proposition and evaluation of the roedunet-simargl2021 network intrusion detection dataset中详述的 NetFlow V9 收集的。该数据集包含网络流的各种属性,包括源地址和目标地址、源端口和目标端口、协议信息、流持续时间以及数据包和字节总数。网络中的异常流量(例如端口扫描、恶意软件活动和 DoS 攻击)被归类为异常,从而深入了解网络内的潜在恶意活动。

The Proposition and Evaluation of the RoEduNet-SIMARGL2021 Network Intrusion Detection Dataset (mdpi.com) RoEduNet-SIMARGL2021 网络入侵检测数据集的提出与评价

为了为异常检测任务准备数据集,我们通过采用重采样技术来平衡正常实例和异常实例的分布,解决了与类不平衡相关的问题。图 5 显示了最终分布。此外,删除了不必要的列,例如 IP 地址和流 ID,以专注于建模的相关特征。此外,对协议信息等分类变量进行编码,以促进 ML 和 DL 模型的训练。

A. Exploratory Data Analysis

在深入研究实验结果的分析之前,我们进行了探索性数据分析 (EDA),以深入了解数据集中特征的特征和分布。通过可视化,我们检查了几个数值特征的分布。

在图 3 中,我们可视化了源端口的分布,这些端口主要集中在超过 30,000 的值附近。相比之下,图 4 显示了目标端口的分布,这些端口更集中在较低的值附近。这一观察表明源端口和目标端口的行为存在潜在差异,其中源端口表现出更高的可变性,而目标端口则更集中。

图 6 说明了网络流量数据中使用的协议的分布。从图中可以明显看出,TCP 是异常样本中使用最常用的协议。这一观察揭示了我们的数据集中大约有 100,000 个实例正在使用 TCP,这表明 TCP 使用情况与异常网络活动之间存在显着关联。相反,正常流量表明 UDP 和 TCP 之间存在可比的使用模式,在这两个类别中观察到大约 40,000 个样本。

ICMP 总体上代表性较低。尽管 ICMP 的使用率较低,但仍在大约 5000 个实例中观察到使用 ICMP 的异常情况。

TCP 在异常中占主导地位,这引发了关于观察到的异常性质的有趣问题。TCP 是一种面向连接的协议,通常与各种基于网络的攻击有关,例如端口扫描、DoS 和恶意软件传播。TCP 在异常中的普遍使用可能表明网络内此类恶意活动的可能性增加。

我们还观察到数据集中与 UDP 使用情况相关的异常流量的缺失,相反,UDP 流量只存在于正常实例中。

B. Evaluation

接下来是进行评估

首先要确定这几个指标:ACC,Pre,Rec,F1,AUC

下边这个表展示了各个模型的性能指标:

图 7 显示了 RF 模型的优势,该模型在所有指标中表现最佳,表现出令人印象深刻的 0.938 准确率和 0.967 的 F1 分数。此外,RF 在区分正常实例和异常实例方面表现出稳健性,其 0.99 的高 AUC 证明了这一点,如图 8 所示。值得注意的是,RF 还具有最短的训练时间,仅需 0.19 秒即可完成训练阶段,并且测试时间最快,单次预测仅需 0.23 微秒。这些计算效率指标突出了 RF 在模型性能和计算速度方面的优势。

相比之下,虽然 RNN 等 DL 模型表现出出色的性能,但它们在对异常实例进行分类方面仍然难以与 RF 的有效性相媲美。RNN 尽管实现了 92.2% 的准确率,总体上展示了值得称道的指标,但未能达到 RF 卓越的整体性能。

此外,RNN 会产生大量的计算成本,训练持续时间为 443.98 秒,每次预测的测试时间为 124.75 微秒。RNN 和 RF 在训练和测试效率方面的鲜明对比从图 9 和图 10 中可以明显看出。这些延长的时间间隔极大地减轻了 RNN 在实际部署场景中的潜在可扩展性挑战,在这些场景中,快速检测和响应网络异常至关重要。

NB 和 LR 等模型表现出较低的时间复杂度,但在性能指标方面未能提供令人满意的结果。尽管它们的训练和测试时间相对较短,NB 训练时间为 0.39 秒,LR 训练时间为 4.06 秒,但这些模型难以在分类任务中实现有竞争力的性能。

C. Discussion

这些结果强调了网络流量中异常检测的复杂性,以及与选择平衡性能和计算效率的适当模型相关的挑战。虽然 RNN 等 DL 模型可能在捕获网络数据中的复杂模式方面提供理论优势,但它们的实际效用受到计算限制。相反,某些传统的 ML 算法(如 NB 和 LR)的计算效率很高,但缺乏有效区分正常实例和异常实例所需的复杂性。然而,RF 模型在所有指标中表现最佳,取得了令人印象深刻的分数,同时展示了卓越的计算效率。因此,要开发能够应对网络安全中不断变化的威胁的具有鲁棒性的异常检测系统,必须采用兼顾模型有效性和计算可行性的细致入微的方法。

在实际的网络安全应用中,对高性能和低复杂性的异常检测系统的需求至关重要。例如,在数千台设备互连的大型企业网络中,每秒都会产生大量的网络流量。在此类环境中,及时检测和响应异常活动对于维护网络完整性和防范潜在的安全漏洞非常重要。因此,部署高效的异常检测模型,能够以最少的计算资源准确识别和分类网络异常变得势在必行。

RNN 模型在我们更新的实验中的性能表明它在对异常实例进行分类方面的有效性。然而,它的计算效率仍然存在一个明显的缺点。RNN 擅长捕获顺序依赖关系,这对于某些异常检测任务是有利的。通过超参数调优和模型架构进行进一步优化可能会提高其性能,但是,这可能会加剧已经相当长的时间复杂性。DL 模型的延长训练和测试时间通常可归因于几个因素。这些模型通常需要通过多层神经元进行迭代计算,涉及矩阵运算和反向传播以进行训练。相反,RF 模型的卓越性能可以归因于它能够在数据中捕获相关船舶,同时需要更少的参数调整工作。RF 模型擅长处理高维数据,与 DL 模型相比,对超参数设置不太敏感。此外,RF 的集成方法减少了过拟合并增强了泛化性能,使其非常适合网络流量数据中的异常检测任务。在我们的研究中,高性能和最小参数调整工作的结合使 RF 成为更好的候选者。

5 Conclusion

总而言之,我们的研究强调了 NetFlow 流量数据中异常检测固有的复杂性和挑战。我们的研究结果强调了选择在性能和计算效率之间取得平衡的适当模型的重要性。虽然 DL 模型在捕获数据中的复杂模式方面很有希望,但它们的实际效用可能会受到计算约束和数据适应能力的限制。相反,传统的 ML 模型在性能和计算效率之间提供了平衡,但可能难以捕获数据中的复杂关系。

在我们的实验中,RF 模型的卓越性能体现了集成学习技术在异常检测任务中的有效性。RF 不仅表现出高准确度、精密度、召回率和 F1 分数值,而且只需最少的参数调整工作,使其非常适合计算资源和时间限制是关键考虑因素的实际部署场景。我们的研究表明,RF 模型为为网络安全应用开发强大且可扩展的异常检测系统提供了一条有前途的途径。

总之,我们的研究为网络流量中的异常检测提供了有价值的见解,并强调了采用细致入微的方法的重要性,该方法在为网络安全挑战开发有效的解决方案时要考虑模型的有效性和计算可行性。展望未来,未来的研究工作应侧重于探索融合 DL 和传统 ML 技术优势的混合方法。通过将 DL 模型的算法与传统 ML 算法的效率相结合,研究人员可以开发更强大且可扩展的异常检测系统,能够解决网络安全中不断变化的威胁。探索在线学习和动态模型适应自身相似的网络流量上下文也会很有趣。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门——类的默认成员函数(构造函数)

文章目录 前言一、构造函数二、栈的构造函数总结 前言 ⼀个类,我们不写的情况下编译器会默认⽣成以下6个默认成员函数 默认成员函数很重要,也⽐较复杂,我们要从两个⽅⾯去学习: 第⼀:我们不写时,编译器默认…

Spring后端直接用枚举类接收参数,自定义通用枚举类反序列化器

在使用枚举类做参数时,一般会让前端传数字,后端将数字转为枚举类,当枚举类很多时,很可能不知道这个code该对应哪个枚举类。能不能后端直接使用枚举类接收参数呢,可以,但是受限。 Spring反序列默认使用的是J…

如何用Shell命令结合 正则表达式 统计文本中的ip地址数量

文章目录 简介问题回答 简介 IP 地址(Internet Protocol Address)是互联网协议地址的简称,是互联网上为联网的设备(如计算机、服务器、路由器、手机等)分配的唯一标识符。IP 地址的主要功能是实现不同网络设备之间的通…

[Python]一、Python基础编程(2)

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\1、人工智能开发入门\1、零基础Python编程 1. 文件操作 把⼀些内容 ( 数据 )存储存放起来,可以让程序下⼀次执⾏的时候直接使⽤,⽽不必重新制作⼀份,省时省⼒ 。 1.1 文件的基本操作 1. 打开文件 2. 读写操作 3. 关闭…

hive-拉链表

目录 拉链表概述缓慢变化维拉链表定义 拉链表的实现常规拉链表历史数据每日新增数据历史数据与新增数据的合并 分区拉链表 拉链表概述 缓慢变化维 通常我们用一张维度表来维护维度信息,比如用户手机号码信息。然而随着时间的变化,某些用户信息会发生改…

【软件工程】需求分析概念

一、定义 二、为什么要进行需求分析? 三、需求分析任务 四、与用户沟通获取需求的方法 五、分析建模 六、软件需求规格说明 例题 选择题

【题解】【枚举,数学】——小 Y 拼木棒

【题解】【枚举,数学】——小 Y 拼木棒 小 Y 拼木棒题目背景题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示数据规模与约定 1.题意简述2.思路解析3.AC代码 前置知识:排列组合,暴力枚举基础知识。 小 Y 拼木棒 通往洛谷的传送门 …

基于SpringBoot+Vue+MySQL的医院信息管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 在当今社会,随着医疗服务需求的不断增长和医疗信息化的快速发展,提升医院管理效率和服务质量成为了医疗行业的核心需求。传统的医院管理模式面临着效率低下、资源分配不均、患者就医体验差等问题。为了应…

图像处理基础知识点简记

简单记录一下图像处理的基础知识点 一、取样 1、释义 图像的取样就是图像在空间上的离散化处理,即使空间上连续变化的图像离散化, 决定了图像的空间分辨率。 2、过程 简单描述一下图象取样的基本过程,首先用一个网格把待处理的图像覆盖,然后把每一小格上模拟图像的各个…

一种求解无人机三维路径规划的高维多目标优化算法,MATLAB代码

在无人机三维路径规划的研究领域,高维多目标优化算法是一个重要的研究方向。这种算法能够同时考虑多个目标,如航迹距离、威胁代价、能耗代价以及多无人机协同性能等,以实现无人机路径的最优规划。 无人机路径规划算法的研究进展表明&#xf…

中国最厉害的改名大师,颜廷利教授的名字来自于国学易经元亨利贞

颜廷利教授,一位源自齐鲁大地山东济南的世界级文化名人,他的名字背后承载着深厚的家族易学传统。在颜廷利教授的童年记忆中,家族长辈常以《易经》中频繁出现的“元、亨、利、贞”四字,寓意四季之变换,将这四个字分别对…

Qt_对话框QDialog的介绍

目录 1、新建项目对话框 2、非模态对话框 3、模态对话框 4、自定义对话框 5、Qt内置对话框 5.1 消息对话框QMessageBox 5.2 颜色对话框QColorDialog 5.3 文件对话框QFileDialog 5.4 字体对话框QFontDialog 5.5 输入对话框QInputDialog 结语 前言: 在Qt中&…

使用Stream实现事件流

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了Flutter中的异步操作,本章回中将介绍Flutter中的事件流.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在上一章回中介绍了异步操作相关的内容,本章回中将介绍如何把…

51.字符串比较实例-用户登录

//已知正确的用户名和密码,请用程序实现模拟用户登录 //总共三次机会,登录之后给出相应的提示 import java.util.Scanner;public class 登录 {public static void main(String[] args) {//1.定义两个变量,记录正确的用户名和密码String righ…

【kaggle竞赛】毒蘑菇的二元预测题目相关信息和思路求解代码

毒蘑菇的二元预测 您提供了很多关于不同二元分类任务的资源和链接,看起来这些都是Kaggle竞赛中的参考资料和高分解决方案。为了帮助您更好地利用这些资源,这里是一些关键点的总结: Playground Season 4 Episode 8 主要关注的竞赛: 使用银行…

深入理解 JavaScript 三大作用域:全局作用域、函数作用域、块级作用域

一. 作用域 对于多数编程语言,最基本的功能就是能够存储变量当中的值、并且允许我们对这个变量的值进行访问和修改。那么有了变量之后,应该把它放在哪里、程序如何找到它们?是否需要提前约定好一套存储变量、访问变量的规则?答案…

【线程池】ThreadPoolExecutor应用

ThreadPoolExecutor应用 每一步的坚持与积累,都是铸就高薪和大牛的必经的修炼 哈哈,不吹牛逼了,今天来分享最近在提升中的学习总结,无论是对在职场还是求职,看完,我相信都会有些许的收获和成长 也难得过了一个悠闲点的周末,哈哈哈,一起奥利给!! 本文总纲: 1.为什么要自定义线程…

java8 常用操作案例【经典版】超赞!

目录 一 案例 1.1 对象转list 1.2 过滤对象 1.3 排序 1.4 匹配 1.5 最大值最小值 1.6 拼接字符串 1.7 求和 1.8 分组 1.9 分组求和 1.10 综合案例 一 案例 1.1 对象转list /*** author admin对象转map ; mapper层实体类获取,到业务层转换为DTO,* return void…

《python语言程序设计》2018版第8章18题几何circle2D类(中部)

第一、重新分析 第一-1、我设计的第一模式第一-1-1、遇到的逻辑分析迷雾第一-1-2、无畏挣扎后的无奈 第二-1、我就把你们两个放到一起,第二-2、我的想法 当我看到了这个2个园并且比对. 第一-1、我设计的第一模式 设计一个最抽象的Circle2D类. 这个类只包含一个x,y和circle 这个…

初始C++中的string与迭代

常用的string构造相关类的接口 string类是一个管理字符串的字符数组,string类的出现方便管理我们日常所遇见的,字符名,字符串等等。下面们介绍一下常见的string类接口。 string(); 默认构造,构造空的string类 int main() { …