zoukankan      html  css  js  c++  java
  • 【新人赛】阿里云恶意程序检测 -- 实践记录11.3

    主要工作

    本周主要是跑了下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,

  • 相关阅读:
    DevExpress VCL for Delphi 各版本收集下载
    Delphi XE 5,Rad Studio XE 5 官方下载(附破解),更新 Update 1,Help Update 1
    PostMessage 向Windows窗口发送Alt组合键
    Windows XP UDF 2.5 补丁,播放蓝光ISO光盘必备
    60个开发者不容错过的免费资源库
    [转]游戏多开的原理
    Delphi加载驱动
    窗口截图
    Drectx 3D窗口后台截图
    利用进程ID获取主线程ID
  • 原文地址:https://www.cnblogs.com/yanqiang/p/11788592.html
Copyright © 2011-2022 走看看