智算多多联系我们

官方邮箱:service@zsdodo.com

公司地址:北京市丰台区南四环西路188号总部基地三区国联股份数字经济总部
关注我们

公众号

视频号
◎2025 北京智算多多科技有限公司版权所有 京ICP备 2025150592号-1
在开始解析前,我们需要搭建一个既能快速探索数据又能支持机器学习建模的环境。推荐使用conda创建专属环境:
conda create -n netsec python=3.8
conda activate netsec
pip install pandas scikit-learn matplotlib plotly dask[complete] seaborn
UNSW-NB15的完整数据集超过4GB,直接用pandas读取可能导致内存溢出。这里推荐两种解决方案:
方案一:分块读取(适合中等配置机器)
import pandas as pd
chunk_size = 100000
train_chunks = pd.read_csv('UNSW-NB15_training-set.csv', chunksize=chunk_size)
train_data = pd.concat([chunk for chunk in train_chunks])
方案二:使用Dask并行处理(适合超大文件)
import dask.dataframe as dd
dask_df = dd.read_csv('UNSW-NB15_*.csv', assume_missing=True)
train_data = dask_df.compute() # 转换为pandas DataFrame
数据集包含49个特征,这些是最值得关注的10个核心特征:
提示:实际分析时建议先关注这10个特征,待建立baseline后再扩展其他特征。
原始数据通常包含缺失值、异常值和需要转换的类别特征。这个阶段的质量直接影响后续模型表现。
不同特征需要不同的缺失值处理方式:
from sklearn.impute import SimpleImputer
# 数值特征用中位数填充
num_imputer = SimpleImputer(strategy='median')
