项目数据处理与统计学分析 | 使用Jupyter Notebook和PaddlePaddle进行实战操作

释放双眼,带上耳机,听听看~!
本文介绍了使用Jupyter Notebook和PaddlePaddle框架进行项目数据处理和统计学分析的方法。包括了构造新字段、数据类型转换、相关性分析等操作。文章还介绍了项目的数据集、数据处理流程和使用的依赖库。通过本文的学习,读者可以为后续的网络模型搭建和训练做好准备。

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

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

运行结果如下图所示:

项目数据处理与统计学分析 | 使用Jupyter Notebook和PaddlePaddle进行实战操作

# 查看列索引
train_data.columns

运行结果如下图所示:

项目数据处理与统计学分析 | 使用Jupyter Notebook和PaddlePaddle进行实战操作

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

项目数据处理与统计学分析 | 使用Jupyter Notebook和PaddlePaddle进行实战操作

3.1.3 查看数据类型

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

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

运行结果如下图所示:

  • 经过字段类型查看,我们发现有些字段是int64类型
  • 在后续数据处理中,我们还需要将int64类型转换为float类型,方可传入模型进行训练

项目数据处理与统计学分析 | 使用Jupyter Notebook和PaddlePaddle进行实战操作

3.1.4 查看数据统计学描述

# 查看各字段的基本统计学数据描述
train_data.describe()

运行结果如下图所示:

  • 可以观察基本统计学信息
  • 比如均值、最大值、中位数等

项目数据处理与统计学分析 | 使用Jupyter Notebook和PaddlePaddle进行实战操作

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

项目数据处理与统计学分析 | 使用Jupyter Notebook和PaddlePaddle进行实战操作

4. 总结

本文主要完成了基本数据处理部分以及统计学分析部分,为后续搭建神经网络做准备。因为数据集特征并不是很多,我们构造了一些新字段进行相关性分析,合适的新字段也可作为特征传入神经网络进行训练。另外,我们拿到数据的时候,还需要对各个字段的数据类型进行查看,有时候需要转换相应的字段类型才可用于后续模型训练。

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

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

Claude-100k更新:模型记忆力原地起飞,一次性处理10万token

2023-12-22 9:24:14

AI教程

阿里云机器学习平台PAI团队推出面向PyTorch的GPU加速分布式GNN框架GraphLearn-for-PyTorch(GLT)

2023-12-22 9:34:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索