人工智能中数据组合采样、特征层、算法层的讲解(图文详解)

简介: 人工智能中数据组合采样、特征层、算法层的讲解(图文详解)

一、数据组合采样

欠采样和过采样都是只针对某一类样本,第三种采样就是把过采样和欠采样技术结合起来同时进行,即组合重采样,其基本思想是增加样本集中少数类样本的个数,同时减少多数类样本的个数,以此来降低不平衡度,有两个典型的组合方法:SMOTE+Tomeklinks和SMOTE+ENN,下面对它们分别进行讲解

1:SMOTE + Tomek Link Removal

首先,利用SMOTE方法生成新的少数类样本,得到扩充后的数据集T。然后剔除T中的Tomek links对

为什么需要这两者的组合呢?避免SMOTE导致原本属于多数类样本的空间被少数类“入侵”(invade),由Tomek links去除噪声点或者边界点

2:SMOTE+ENN

和SMOTE+Tomek links方法的思路相似,包含两个步骤

1) 利用SMOTE方法生成新的少数类样本,得到扩充后的数据集T

2) 对T中的每一个样本使用kNN(一般k取3)方法预测,若预测结果和实际类别标签不符,则剔除该样本

二、特征层的不平衡数据分类

在网络安全中,某些类别的网络数据难以获得而导致了非平衡问题,多数类通常是正常的,而少数类是攻击行为,各个类别的样本数量分布虽然具有不平衡性,但这种非平衡性并非在所有特征上都存在

特征层解决不平衡数据分类的思路就是选择最合适的特征表示空间,再进行分类

最合适”是指提高少数类及整体的分类正确性。把数据样本投影到这个“最合适”的子空间中,多数类可能聚集在一起或重叠在一起,那么就有利于减小数据的非平衡性

根据机器学习的特征理论,在特征空间的构造方面,存在两大类方法,即特征选择和特征提取

三、算法层面的非平衡数据分类

1:代价敏感方法

代价敏感:设置损失函数的权重,使得少数类判别错误的损失大于多数类判别错误的损失

以分类错误总代价最低为优化目标,能更加关注错误代价较高类别的样本,使得分类性能更加合理

实现方法:

一是,改变原始的数据分布来得到代价敏感的模型;

二是,对分类的结果进行调整,以达到最小损失的目的;

三是,直接构造一个代价敏感的学习模型

优化目标 最优的Bayes预测就是把x分为使得R(i|x) 最小化的类别k,即: K= argmin R(i|x), i=1,2,…N 其中R(i|x)是某个类别i的样本x的分类风险

对于一个给定的训练数据集((x1,Y1,),…,(xn,yn)),标准的非代价敏感支持向量机学习出一个决策边界

普通SVM

偏置惩罚支持向量机(BP-SVM)

代价敏感教练损失支持向量机(CSHL-SVM)

2:单分类器方法

单类分类器方法:仅对少数类进行训练,例如运用SVM算法

密度估计法 基于聚类的方法 基于支持域的方法

单类支持向量机(OneclassSVM) 支持向量数据描述(Support Vector Data Description,SVDD)

当多数类中存在明显簇结构时,使用聚类方法获得聚类结构有利于提高多数类轮廓描述的精度

3:集成学习

典型的集成学习方法有Bagging、 Boosting、Stacking

Over Bagging:每次迭代时应用随机过采样在小类数据

Under Bagging:每次迭代时应用随机下采样在大类数据

SMOTEBagging:结合了SMOTE与bagging,先使用SMOTE生成更加全面的小类数据,然后应用bagging

Asymmetric bagging:每次迭代时,全部小类数据保留,从大类数据中分离一个与小类数据一样大的子集

SMOTEBoost : 结合了SMOTE方法代替简单的增加小类观察点的权重

BalanceCascade : 是典型的双重集成算法,采用Bagging作为基本的集成学习方法,并在训练每个Boostrap数据时,使用AdaBoost作为分类算法

相关文章
|
18天前
|
存储 监控 NoSQL
Redis处理大量数据主要依赖于其内存存储结构、高效的数据结构和算法,以及一系列的优化策略
【5月更文挑战第15天】Redis处理大量数据依赖内存存储、高效数据结构和优化策略。选择合适的数据结构、利用批量操作减少网络开销、控制批量大小、使用Redis Cluster进行分布式存储、优化内存使用及监控调优是关键。通过这些方法,Redis能有效处理大量数据并保持高性能。
38 0
|
3天前
|
机器学习/深度学习 人工智能 算法
中草药识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
中草药识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
17 0
|
4天前
|
算法 NoSQL Python
开山之作!Python数据与算法分析手册,登顶GitHub!
若把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。 Python是一把利刃,数据结构与算法则是兵法。只有熟读兵法,才能使利刃所向披靡。只有洞彻数据结构与算法,才能真正精通Python
|
5天前
|
机器学习/深度学习 人工智能 监控
人工智能在图像识别中的应用:基于深度学习的算法实现
人工智能在图像识别中的应用:基于深度学习的算法实现
20 1
|
8天前
|
机器学习/深度学习 算法
m基于GA-GRU遗传优化门控循环单元网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,一个基于遗传算法优化的GRU网络展示显著优化效果。优化前后的电力负荷预测图表显示了改进的预测准确性和效率。GRU,作为RNN的一种形式,解决了长期依赖问题,而遗传算法用于优化其超参数,如学习率和隐藏层单元数。核心MATLAB程序执行超过30分钟,通过迭代和适应度评估寻找最佳超参数,最终构建优化的GRU模型进行负荷预测,结果显示预测误差和模型性能的提升。
26 4
|
13天前
|
机器学习/深度学习 人工智能 算法
食物识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
食物识别系统采用TensorFlow的ResNet50模型,训练了包含11类食物的数据集,生成高精度H5模型。系统整合Django框架,提供网页平台,用户可上传图片进行食物识别。效果图片展示成功识别各类食物。[查看演示视频、代码及安装指南](https://www.yuque.com/ziwu/yygu3z/yhd6a7vai4o9iuys?singleDoc#)。项目利用深度学习的卷积神经网络(CNN),其局部感受野和权重共享机制适于图像识别,广泛应用于医疗图像分析等领域。示例代码展示了一个使用TensorFlow训练的简单CNN模型,用于MNIST手写数字识别。
38 3
|
17天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】聚类算法中,如何判断数据是否被“充分”地聚类,以便算法产生有意义的结果?
【5月更文挑战第14天】【机器学习】聚类算法中,如何判断数据是否被“充分”地聚类,以便算法产生有意义的结果?
|
17天前
|
机器学习/深度学习 运维 算法
【机器学习】可以利用K-means算法找到数据中的离群值吗?
【5月更文挑战第14天】【机器学习】可以利用K-means算法找到数据中的离群值吗?
|
18天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于DCT变换和位平面分解的数字水印嵌入提取算法matlab仿真
这是一个关于数字水印算法的摘要:使用MATLAB2022a实现,结合DCT和位平面分解技术。算法先通过DCT变换将图像转至频域,随后利用位平面分解嵌入水印,确保在图像处理后仍能提取。核心程序包括水印嵌入和提取,以及性能分析部分,通过PSNR和NC指标评估水印在不同噪声条件下的鲁棒性。