主要工作

本周主要是跑了下n-gram模型,并调了下参数。大概看了几篇论文,有几个处理方法不错,准备下周代码实现一下。

xgboost参数设置为:

param = {'max_depth': 6, 'eta': 0.1, 'eval_metric': 'mlogloss', 'silent': 1, 'objective': 'multi:softprob',

'num_class': 8, 'subsample': 0.5, 'colsample_bytree': 0.85}

n-gram模型,CountVectorizer

为了训练速度考虑,采用两折校验,对ngram_range参数,start=end,即只用某元:

ngram train-mean val-mean
1 0.113553 0.376238
2 0.086720 0.331593
3 0.085156 0.338862
4 0.102556 0.347408
5 0.090270 0.366249
import matplotlib.pyplot as plt
import numpy as np train_mean = [0.113553, 0.086720, 0.085156, 0.102556, 0.090270]
val_mean = [0.376238, 0.331593, 0.338862, 0.347408, 0.366249] # 绘制对比柱状图
plt.bar(x=range(1, 6), height=train_mean, label="train mean", alpha=0.8, width=bar_width)
plt.legend()
plt.xlabel("ngram_range(start=end)")
plt.ylabel("mean")
plt.title('result')
plt.show() plt.bar(x=np.arange(1, 6), height=val_mean, label="val mean", alpha=0.8, width=bar_width)
plt.legend()
plt.xlabel("ngram_range(start=end)")
plt.ylabel("mean")
plt.title('result')
plt.show()

绘图可得:

可以看到,二元、三元关系的拟合效果比较好。

所以在api序列中,依赖关系主要以短链为主,长链为辅,同时单个api也有一些价值。

而后,同样是2折校验,对start != end的情形做了一下训练。

可以看到,start=1得到的结果比start=2得到的效果要好一些,

同时当start=1, end从2至6,拟合效果都有提升,当end=7之后又会变差。

所以n-gram模型,二元、三元的拟合效果比较好,加上一元,四元,五元,六元之后,效果都有提升,这几元都很有用。

此外,将2折改为5折,计算开销增大,但结果会更好一些。

将5折得到的这几个结果,提交到线上,测试结果如下:

10折提交,结果如下:

在同学的基础上优化:

使用参数ngram_range=(1, 3),xgboost中subsample=0.8,

【新人赛】阿里云恶意程序检测 -- 实践记录11.3 - n-gram模型调参的更多相关文章

  1. 【新人赛】阿里云恶意程序检测 -- 实践记录11.10 - XGBoost学习 / 代码阅读、调参经验总结

    XGBoost学习: 集成学习将多个弱学习器结合起来,优势互补,可以达到强学习器的效果.要想得到最好的集成效果,这些弱学习器应当"好而不同". 根据个体学习器的生成方法,集成学习方 ...

  2. 【新人赛】阿里云恶意程序检测 -- 实践记录 11.24 - word2vec模型 + xgboost

    使用word2vec训练词向量 使用word2vec无监督学习训练词向量,输入的是训练数据和测试数据,输出的是每个词的词向量,总共三百个词左右. 求和:然后再将每行数据中的每个词的词向量加和,得到每行 ...

  3. 【新人赛】阿里云恶意程序检测 -- 实践记录10.13 - Google Colab连接 / 数据简单查看 / 模型训练

    1. 比赛介绍 比赛地址:阿里云恶意程序检测新人赛 这个比赛和已结束的第三届阿里云安全算法挑战赛赛题类似,是一个开放的长期赛. 2. 前期准备 因为训练数据量比较大,本地CPU跑不起来,所以决定用Go ...

  4. 【新人赛】阿里云恶意程序检测 -- 实践记录10.20 - 数据预处理 / 训练数据分析 / TF-IDF模型调参

    Colab连接与数据预处理 Colab连接方法见上一篇博客 数据预处理: import pandas as pd import pickle import numpy as np # 训练数据和测试数 ...

  5. 【新人赛】阿里云恶意程序检测 -- 实践记录10.27 - TF-IDF模型调参 / 数据可视化

    TF-IDF模型调参 1. 调TfidfVectorizer的参数 ngram_range, min_df, max_df: 上一篇博客调了ngram_range这个参数,得出了ngram_range ...

  6. 阿里云小程序云应用环境DIY,延长3倍免费期

    阿里云清明节前刚刚推出了小程序云应用扶持计划一期活动 (活动链接见文章底部).假期研究了下以后,发觉不太给力.基本上就是给了2个月的免费测试环境,和平均2个月的基础版生产环境.而如果选用标准版生产环境 ...

  7. Android手机安全软件的恶意程序检测靠谱吗--LBE安全大师、腾讯手机管家、360手机卫士恶意软件检测方法研究

    转载请注明出处,谢谢. Android系统开放,各大论坛活跃,应用程序分发渠道广泛,这也就为恶意软件的传播提供了良好的环境.好在手机上安装了安全软件,是否能有效的检测出恶意软件呢?下边针对LBE安全大 ...

  8. 阿里云centos安装docker-engine实践

    近日在阿里云ECS服务器(centos系统)中安装docker,参考官方指南 https://docs.docker.com/engine/installation/linux/centos/  大概 ...

  9. 阿里云负载均衡配置https记录

    配置前端协议是443,后端是80 问题1记录: 例如访问https://www.xxx.com,在后端服务器上面获取是http还是https请求协议实际上是http: 因为我们先请求负载均衡,负载均衡 ...

随机推荐

  1. Servlet乱码问题解决

    对于请求参数的编码处理基本上分为get和post两种情况. 1.POST index.html <!DOCTYPE html> <head> <meta http-equ ...

  2. docker nginx 实现图片预览

    一.实现 nginx http图片预览 1.创建本地配置文件目录以及配置文件 两种方式: 1.1.docker nginx将配置文件抽离到了/etc/nginx/conf.d,只需要配置default ...

  3. 最小生成树(二)prim

    今天为大家带来最小生成树的第二种实现方式,比起kruskal来说,prim相对要复杂一些,在稠密图的表现中表现较好,最优情况下也是nlogn级别. 描述: 1).输入:一个加权连通图,其中顶点集合为V ...

  4. 机器学习总结-bias–variance tradeoff

    bias–variance tradeoff 通过机器学习,我们可以从历史数据学到一个\(f\),使得对新的数据\(x\),可以利用学到的\(f\)得到输出值\(f(x)\).设我们不知道的真实的\( ...

  5. ARTS Week 1

    Oct 28,2019 ~ Nov 3,2019 Algorithm 本周的学习的算法是二分法.二分法可以用作查找即二分查找,也可以用作求解一个非负数的平方根等.下面主要以二分查找为例. 为了后续描述 ...

  6. [Effective Java 读书笔记] 第二章 创建和销毁对象 第五条

    第五条 避免创建不必要的对象 书中一开始举例: String s = new String("stringette"); // don't do this //应该使用下面,只会创 ...

  7. post 两种方式 application/x-www-form-urlencoded和multipart/form-data

    本次主要涉及 application/x-www-form-urlencoded方式. postman访问方式如图: java代码实现: 首先使用maven作为第三方依赖管理: <depende ...

  8. Effective Java, Third Edition

    https://github.com/jbloch/effective-java-3e-source-code 网址是 Effetive java的源码 effective-java-3e-sourc ...

  9. Django请求过程

  10. delphi制作res文件

    第一步:将brcc32.exe拷贝到某个目录,如“res文件”第二步:制作rc文件1.在“res文件”中新建一个文本文件resources.rc:2.文本文件中每一行写一个资源,资源格式为:资源标识名 ...