手撕代码之决策树
基于信息熵进行划分选择的决策树算法任务试用python编程实现基于信息熵进行划分选择的决策树算法,并为P84页表4.3 中去掉“含糖率属性和编号为17的西瓜” 以后的数据生成一棵决策树。
算法原理1.信息熵“信息熵”(information entropy)是度量样本集合纯度最常用的一种指标。假定当前样本集合D中第k类样本所占的比例为 $ p_ {k} $ (k=1,2, $ \cdots $ ,|y|),则D的信息熵定义为
Ent(D)=- \sum _ {k=1}^ {|y|} p_ {k} \log _ {2} p_ {k} .Ent(D)的值越小,则D的纯度越高。
2.信息增益假定离散属性a有V个可能的取值{ $ a^ {1} $ , $ a^ {2} $ , $ \cdots $ , $ a^ {V} $ },若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为 $ a^ {v} $ 的样本,记为 $ D^ {v} $ .我们可根据信息熵定义计算出 $ D^ {v} $ 的信息熵,再考虑到不同的分支结点所包含的样本数不同 ...
最长回文子串
难度:中等
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = “babad”输出:”bab”解释:”aba” 同样是符合题意的答案。、
示例 2:
输入:s = “cbbd”输出:”bb”
提示:
1 <= s.length <= 1000s 仅由数字和英文字母组成
暴力求解,列举所有的子串,判断是否为回文串,保存最长的回文串。
1234567891011121314#暴力破解class Solution: def longestPalindrome(self, s: str) -> str: l=len(s) result="" temp="" if l==1: return s for i in range(l): for j in range(i+1,l+1): temp=s[i:j] if temp==temp[::- ...
新编码方式的实现及测试
新编码方式的实现及测试github链接:
新编码方式的实现EBSNN的编码方式
nprint的编码方式12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273### nPrint Regex Filter Help:### All field names follow syntax: proto_field_bit### Each protocol in help follow syntax: proto field numbits# Etherneteth eth_dhost 48eth eth_shost 48eth eth_ethertype 16# IPv4ipv4 ipv4_ver 4ipv4 ipv4_hl 4ipv4 ipv4_tos 8ipv4 ipv4_tl 16ipv4 ipv4_ ...
基于openPGP实现本地加密文件夹
任务目标一、设计一个本地文件处理协议,基于open PGP实现本地加密文件夹:
1.对目标文件实现对存储者和调阅者的基于pgp的真实性认证和文件加密;
2.上述文件安全性不依赖于本地系统,即
a)本地其他非授权用户(即便是系统管理员)无法以可理解的方式读出该文件夹中文件内容;
b)对处理过程中可能涉及的临时存储至少实现可靠的敏感信息残留覆盖;
二、选择linux或MS windows,实现该协议的一个C++实现实例。包括软件设计文档、源代码及注释、可执行安装包、自测用例和测试分析报告、第三方资源及其说明。
OpenPGP介绍OpenPGP定义一种协议,定义了加密消息、签名、私钥和用于交换公钥的证书统一标准。
OpenPGP的加密与解密原理 OpenPGP加密过程:随机生成一个的Key,并通过对称加密算法使用这个Key加密数据,最后通过非对称加密算法(RSA)用接收者的公钥加密前者的Key,得到加密的数据。
OpenPGP的数字签名 数字签名是OpenPGP的重要组成部分,数字签名是一个数学过程,与现实世界的签名功能相似,但更严谨、更安全且容易验证。数字签名保证了以下情况: ...
Online Adaptive Anomaly Detection for Augmented Network Flows
Online Adaptive Anomaly Detection for Augmented Network Flows论文链接:https://ieeexplore.ieee.org/document/7033682
Abstract在本文中,我们提出了一种用于增强流的动态异常检测方法。我们在流创建期间绘制网络状态的草图,以实现通用威胁检测。我们设计和开发了一种基于支持向量机的自适应异常检测和关联机制,该机制能够在没有先验警报分类和在线进化模型的情况下聚合警报。我们开发了一种置信转发机制,用于识别用于额外处理的一小部分预测。我们展示了我们的方法在企业和主干轨迹上的有效性。实验结果表明,该算法能够在不需要离线训练的情况下保持高精度。
关键字:基于流的异常检测,在线自适应,支持向量机,动态输入标准化
Introduction在本文中,我们提出并开发了一个自主数据收集和异常检测系统,以实现以下目标:
(1)判断流记录,其信息能够区分各种异常类,适合用于高速网络,而不需要有效负载检查。
(2)实时在线识别异常。
(3)为操作员提供设置置信度阈值的能力,以便转发低置信度的预测,以最大化资源效 ...
The Case for Learned Index Structures
论文地址:The Case for Learned Index Structures | Papers With Code
文章解读Introduction当我们需要查询数据库中的某条数据时,这数据在数据库中的 index 就是我们想要的答案,数据库对我们的重要性不言而喻。
现有的索引结构中,B+ 树对于范围查询无疑是最佳的,哈希表对于 kv 查询是最合适的,而布隆过滤器更多用于查询 key 是否存在于某个数据集中,但是这些索引结构的优化大多是基于数据最差的情况,并且读写相对均匀进行优化,这里作者举了一个极端的例子来说明,比如我们的数据集就是1-100M,那么这时候如果使用 B+ 树其实不是最合理的,因为 key 值本身就可以作为偏移量使用,如果使用 B+ 树的话,无疑是把 O(1) 的时间复杂度变成了 O(logn),并且由于索引的存在,所以内存空间也会由 O(1) 变成 O(n)。换句话说,当我们了解数据分布的情况下,其实可以优化数据库的索引。
基于这个想法,在这篇 paper 中,作者认为索引结构也可以视作模型,因为它们同样“预测”了给定 key 的 position,同时探索了 ...
字节编码和K-S检验新改进
本周主要进行了K-S检验,字节编码(结合nprint和ESBNN)的改造,有一些不成熟的有意思的结论和想法。
K-S检验论文《Efficient Cyber Attack Detection in Industrial Control Systems Using Lightweight Neural Networks and PCA》的基本思路是将sensor收集到的feature经过K-S*检验,stable feature经过DFFT基于频域提取频域特征和unstable feature一起进行模型训练。
模型结构如下图:
因此K-S检验是必要的第一步,K-S检验是用来检验两组样本的数学分布。
参考:K-S检验的数学理解在:K-S检验数学理解
在mawilab 10w数据集中对IPv4 header:len这个属性进行K-S检验。用K-S检验测试训练集9w条和测试集合1w条。使用了python中的scipy.stats的ks_2samp函数。
下面是CDF和PDF图,左边的图片是使用了train data和test data中的良性流量集合;右边的图片是使用了train data ...
Byte Segment Neural Network for Network Traffic
论文地址:
Byte Segment Neural Network for Network Traffic Classification(2018-5-24)
EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification(2021-8-2)
两篇论文,一篇是正常的字节编码,一篇是拓展字节编码。
EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification关键词:Recurrent neural network, traffific classifification, application identifification, website identifification
EBSNN结构
处理步骤Preprocessing每个数据包是由Ethernet II header、the IPv4 header、 the TCP/UDP header and the payload构成的。
数据包的构成 ...
Efficient Cyber Attack Detection in Industrial Control Systems Using Lightweight Neural Networks and PCA
论文地址:Efficient Cyber Attack Detection in Industrial
摘要Industrial control systems (ICSs) are widely used and vital to industry and society. Their failure can have severe impact on both the economy and human life. Hence, these systems have become an attractive target for physical and cyber attacks alike. In this paper, we examine an attack detection method based on simple and lightweight neural networks, namely, 1D convolutional neural networks and autoencoders. We apply these networks to both th ...
关于文本对抗攻击FGPM的思考
关于文本对抗攻击FGPM的思考《基于同义词替换的快速梯度映射(FGPM)文本对抗攻击方法》阅读笔记
《Adversarial Training with Fast Gradient Projection Method against Synonym Substitution based Text Attacks》
论文链接:https://arxiv.org/pdf/2008.03709.pdfarxiv.org/pdf/2008.03709.pdf
代码地址:JHL-HUST/FGPM: Adversarial Training with Fast Gradient Projection Method against Synonym Substitution based Text Attacks (github.com)
对抗攻击在提升模型鲁棒性方面获得了巨大成功。然而,对于文本任务而言,基于同义词替换的对抗攻击方法有用但效率不高;而效率较高的基于梯度(Gradient-based)的对抗方法,在样本空间连续的图像领域应用广泛,但受限于文本的离散特性以及语法、语义的约束,很难直接应用 ...