日志特征选择汇总(基于天池比赛)
数据是基于第三届阿里云磐久智维算法大赛,
官方地址:第三届阿里云磐久智维算法大赛赛题与数据-天池大赛-阿里云天池 (aliyun.com)
亚军方案gihub:AI-Competition/3rd_PanJiu_AIOps_Competition at main · yz-intelligence/AI-Competition · GitHub
本赛题提供了故障工单与日志数据,分析msg的结构,根据|
可以将其分解。根据实际的业务场景,在故障发生的前后5/10/15/30分钟或更久产生的日志信息,都可能与此故障有关。
sn代表服务器序列号,故障工单中共有13700+个sn;
服务器型号server_model和服务器序列号sn是一对多的关系;
将msg经过TF-IDF编码,输入到线性模型中,使用eli5得出每个类别下,msg单词的贡献程度,权重越高表示区分该类别的贡献越大。
0类和1类表示CPU相关故障,processor的权重都是最高的,且区分度不是很高;
2类表示内存相关故障,权重较高的是memory、mem、ecc;
3类表示其他类型故障,权重较高的是hdd、fpga、bus,可能是和硬件相关的故障。
主要步骤:数据预处理,特征工程,特征选择,模型训练,模型融合。
数据预处理:按照距离故障发生时间的间隔,将日志分成不同的时间区间;msg根据特殊符号进行标准化。
特征工程:主要构建关键词特征、时间差特征、TF-IDF词频统计特征、W2V特征、统计特征、New Data特征。
特征选择:对抗验证进行特征选择,保证训练和测试集的一致性,提高模型在测试集的泛化能力。
模型训练:CatBoost与LightGBM使用伪标签技术进行模型训练。
模型融合:CatBoost与LightGBM的预测结果以8:2进行加权融合得到最终的模型预测结果。
根据实际业务场景,故障发生之前可能会有预警日志产生,故障发生之后可能会产生日志风暴,对每一条故障工单数据,按照不同的时间切分构造新的日志数据,按照日志聚合之后构造统计特征。
特征工程:
时间差特征
反映故障日志与正常日志发生的间隔。特征构造方法:
获取日志时间和故障发生时间的时间差,结合
sn, server_model
进行分组特征衍生。时间差的统计特征:
[max, min, median, std, var, skw, sum, mode]
时间差的分位数特征:
[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
时间差差分:
[max, min, median, std, var, skw, sum]
关键词特征
关键词对各类别的影响。构造关键词特征首先要找到关键词,两种方法确定关键词:
方案1:msg 做TF-IDF编码,输入到线性模型中,计算每个类别下关键词的权重,取每个类别的TOP20。
方案2:根据' | '对 msg 分词,统计每个类别的词频占比,取每个类别的TOP20。
方法1与方法2取并集,得到最终的关键词。
将每个关键词在msg中出现与否作为特征。
统计特征:根据类别特征分组构造统计特征,使类别特征隐藏的信息充分暴露出来。
根据
sn
分组,server_mode
统计特征:[count,nunique,freq,rank]
根据
sn
分组,日志统计特征:msg, msg_0, msg_1, msg_2:[count,nunique,freq,rank]
W2V特征:反映msg
的语义信息
根据
sn
分组,按照时间对msg
进行排序,对于每一个sn
,将排序好的msg
作为一个序列,提取embedding
特征。
TFIDF特征
根据 fault_id(sn+fault_time)
分组,根据fault_id
将msg
拼接作为一个序列,提取TF-IDF特征。
特征选择
特征选择环节主要是使用对抗验证进行特征选择,将训练集与测试集删除label重新打标,训练集为1,测试集为0,数据集合并进行模型训练计算AUC,如果AUC大于设定好的阈值,将特征重要性最高的特征删除,重新训练模型。直至AUC小于阈值。
在模型训练的时候,使用伪标签技术,具体是将A、B榜测试集的预测结果,选取置信度>0.85的样本作为可信样本,加入到训练集中,达到增大样本量的目的。
参考:
天池算法大赛项目:基于大规模日志的故障诊断亚军方案!
日志特征选择汇总(基于天池比赛)相关推荐
- 【机器学习】实战系列五——天文数据挖掘实验(天池比赛)
系列文章目录 学习笔记: [机器学习]第一章--机器学习分类和性能度量 [机器学习]第二章--EM(期望最大化)算法 [机器学习]第六章--概率无向图模型 实战系列: [机器学习]实战系列一--波士顿 ...
- 姿态估计算法汇总|基于RGB、RGB-D以及点云数据
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Tom Hardy@知乎 来源丨https://zhuanlan.zhihu.com/p/305 ...
- 阿里天池比赛——街景字符编码识别
文章目录 前言 一.街景字符编码识别 1. 目标 2. 数据集 3. 指标 总结 前言 之前参加阿里天池比赛,好久了,一直没有时间整理,现在临近毕业,趁论文外审期间,赶紧把东西整理了,5月底学校就要让 ...
- 阿里天池比赛——地表建筑物识别
阿里天池比赛--地表建筑物识别 记录一下之前参加的阿里天池比赛,方便以后查看. 策略: 1.多模型训练 2.多模型测试 3.数据增强 4.预训练/冻结训练 5.迁移学习 6.TTA 7.后处理 8.f ...
- 阿里天池比赛——食物声音识别
阿里天池比赛--食物声音识别 最近写毕业论文无聊之余,再次参加阿里天池比赛,之前一直做CV,第一次尝试做语音识别,记录一下过程. 策略: 1.梅尔频谱和梅尔倒谱以及混合 2.多模型测试 想玩这个项目的 ...
- Docker提交天池比赛流程
一.安装docker 天池大赛入门与docker实践课程: https://tianchi.aliyun.com/course/351 Ubuntu20.04安装docker: https://blo ...
- 天池比赛notebook
天池比赛的链接文档说明 https://tianchi.aliyun.com/notebook/index.htm?spm=5176.9876270.5610778.14.31d1e44axRaA3f ...
- 天池比赛——用户情感可视化分析
天池比赛--用户情感可视化分析 目录 天池比赛--用户情感可视化分析 前言 一.读取数据,查看基本情况并做数据预处理 引入相关库 读取数据,基础分析数据 空值处理,数据映射 对评论进行分词分析 二.词 ...
- 天池比赛——Docker基础镜像搭建,容器导出镜像
天池Docker 文章目录 天池Docker 一. 通过基础的Dockerfile,只有python的镜像 二. 然后build构建镜像,再运行镜像进容器 三. 进入容器,安装环境 四. 退出容器, ...
最新文章
- python raw_input 与 input 的区别
- 在Ubuntu上编写一个开机自启动的Python脚本
- opencv 图像增强_图像增强、锐化,利用 Python-OpenCV 帮你实现 4 种方法!
- JWT令牌创建和解析讲解
- leetcode 543. 二叉树的直径(Java版)
- python图书管理系统增删改查_图书管理系统---增删改查
- 数据挖掘决策树python_机器学习之决策树ID3(python实现)
- BerryBoot实现树莓派多系统切换
- ios android 宏,iOS常用宏(不断更新)
- linux火狐浏览器50版本,firefox 52 下载-Firefox(火狐浏览器)52版下载 v52.0.2官方版--pc6下载站...
- 一二线城市知名 IT 互联网公司名单(新版)
- cwRsync实现windows server文件定时自动同步
- Crosses and Crosses POJ - 3537 (博弈)
- java使用密文链接数据库_Java基础——数据库连接信息使用密文
- 牛熊分界点?技术指标择时 在当前A股指数效果解密
- 谷歌,互联网界的“彩蛋狂魔”
- 网上查信用报告,什么是问题验证?
- 数字后端基本概念介绍——Pin Blockage
- PAT 1051 复数乘法
- 微信小程序(布局适配与物理逻辑像素)