本文主要完结项目的数据处理以及统计学剖析部分,包含构造新字段,数据类型转化、相关性剖析等等。为后续的网络模型建立及练习做准备。
本项目运用Jupyter Notebook进行操作,运用PaddlePaddle框架进行实战操作
1 项目介绍 ✅
为了有效维护企业敏感数据,践行企业安全操作行为准则,杜绝由反常操作行为导致的企业敏感数据走漏安全事件发生,用户反常行为剖析与识别成为重难点技术之一。
本项目将运用Paddle建立人工神经网络,通过机器学习的手段猜测用户上网反常评分,本项目包含数据处理与剖析、数据预处理、模型建立、模型练习、模型猜测、模型点评等完好流程,测验建立三种不同的网络处理该问题。
2. 数据集介绍 ✅
练习数据集保存在csv文件中,数据样本量较大,包含528690条数据,其中ret字段为需求猜测的标签值。
具体表头字段及字段意义如下表所示:
字段名称 | 字段说明 |
---|---|
id | 日志数据记录编号 |
account | 用户账号,已脱敏 |
group | 用户归属部分 |
IP | 终端IP |
url | 终端上网网址 |
port | 终端上网应用端口 |
vlan | 终端所在虚拟网域编号 |
switchIP | 终端衔接交换机IP |
time | 终端上网行为发生时间 |
ret | 反常行为点评得分 |
# 3. 数据处理 |
3.1 导入数据集及依靠库
解压数据集
! unzip -o /home/aistudio/data/data147183/train_data.zip
导入依靠库
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
3.1.1 读取数据
- 本项目运用的数据集已通过脱敏处理,也是网络上开源的数据集。
直接读取数据会呈现中文乱码或者报错问题,需求指定:encoding='gbk'
train_data = pd.read_csv("train_data.csv", encoding='gbk')
train_data.head()
运转成果如下图所示:
# 检查列索引
train_data.columns
运转成果如下图所示:
3.1.2 构造新字段
练习集中的time字段为datetime64类型,能够将其别离拆分成年、月、日、周、小时等字段,考虑将其作为练习特征(features)。
train_data['time'] = pd.to_datetime(train_data['time'])
train_data['hour'] = train_data['time'].dt.hour
train_data['weekday'] = train_data['time'].dt.weekday
train_data['year'] = train_data['time'].dt.year
train_data['month'] = train_data['time'].dt.month
train_data['day'] = train_data['time'].dt.day
这样,新表中就生成了hour、weekday、year等相关字段数据。
3.1.3 检查数据类型
检查数据集中各个字段的数据类型,对于object字段,咱们需求对其进行特征编码。
# 检查练习集中各字段的数据类型
train_data.dtypes
运转成果如下图所示:
- 通过字段类型检查,咱们发现有些字段是int64类型
- 在后续数据处理中,咱们还需求将int64类型转化为float类型,方可传入模型进行练习
3.1.4 检查数据统计学描绘
# 检查各字段的根本统计学数据描绘
train_data.describe()
运转成果如下图所示:
- 能够调查根本统计学信息
- 比如均值、最大值、中位数等
3.2 重复值检测
运用如下办法判别数据集中是否存在重复值,回来False说明不存在重复值。
train_data.duplicated().any()
3.3 缺失值检测
运用如下办法检查数据集是否存在缺失值(NaN空值),回来True说明非空,即不存在缺失值。
pd.notnull(train_data).all()
3.4 相关性剖析
corr = train_data.corr()
# 调用热力求绘制相关性关系
plt.figure(figsize=(15,15),dpi=100)
sns.heatmap(corr, square=True, linewidths=0.1, annot=True)
运转成果如下图所示:
- 能够调查特征变量与标签目标值(ret)的相关性
- 发现两者之间相关性并不是很强,hour特征与其存在一些相关性
- 因而,网络结构建立也无需太复杂
4. 总结
本文主要完结了根本数据处理部分以及统计学剖析部分,为后续建立神经网络做准备。因为数据集特征并不是很多,咱们构造了一些新字段进行相关性剖析,适宜的新字段也可作为特征传入神经网络进行练习。别的,咱们拿到数据的时候,还需求对各个字段的数据类型进行检查,有时候需求转化相应的字段类型才可用于后续模型练习。
本文正在参加「金石计划 . 分割6万现金大奖」