本文主要完结项目的数据处理以及统计学剖析部分,包含构造新字段,数据类型转化、相关性剖析等等。为后续的网络模型建立及练习做准备。

本项目运用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()

运转成果如下图所示:

【机器学习】人工神经网络实现用户上网异常行为分析(1)

# 检查列索引
train_data.columns

运转成果如下图所示:

【机器学习】人工神经网络实现用户上网异常行为分析(1)

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等相关字段数据。

【机器学习】人工神经网络实现用户上网异常行为分析(1)

3.1.3 检查数据类型

检查数据集中各个字段的数据类型,对于object字段,咱们需求对其进行特征编码。

# 检查练习集中各字段的数据类型
train_data.dtypes

运转成果如下图所示:

  • 通过字段类型检查,咱们发现有些字段是int64类型
  • 在后续数据处理中,咱们还需求将int64类型转化为float类型,方可传入模型进行练习

【机器学习】人工神经网络实现用户上网异常行为分析(1)

3.1.4 检查数据统计学描绘

# 检查各字段的根本统计学数据描绘
train_data.describe()

运转成果如下图所示:

  • 能够调查根本统计学信息
  • 比如均值、最大值、中位数等

【机器学习】人工神经网络实现用户上网异常行为分析(1)

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特征与其存在一些相关性
  • 因而,网络结构建立也无需太复杂

【机器学习】人工神经网络实现用户上网异常行为分析(1)

4. 总结

本文主要完结了根本数据处理部分以及统计学剖析部分,为后续建立神经网络做准备。因为数据集特征并不是很多,咱们构造了一些新字段进行相关性剖析,适宜的新字段也可作为特征传入神经网络进行练习。别的,咱们拿到数据的时候,还需求对各个字段的数据类型进行检查,有时候需求转化相应的字段类型才可用于后续模型练习。

本文正在参加「金石计划 . 分割6万现金大奖」