zoukankan      html  css  js  c++  java
  • 数据转图像、表征学习、均值编码、转换目标变量

    原文:https://www.toutiao.com/i6597192035214557710/

    几种新的特征转换思维:

    1.数据转换成图像

      Kaggle上有一个微软恶意软件分类挑战,它的数据集包含一组已知的恶意软件文件,对于每个文件,原始数据包含文件二进制内容的十六进制表示。此前,参赛者在网上从没接触过类似的数据集,而他们的目标是开发最优分类算法,把测试集中的文件放到各自所属的类别中。比赛冠军的特征方法:

      将恶意文件的字节文档看成黑白图像,其中每个字节的像素强度在0-255之间。然而,标准图像处理技术与n-gram等其他特征不兼容。所以之后,我们从asm文件而不是字节文件中提取黑白图像。

      下图是同一恶意软件的字节图像、asm图像对比(左边是字节图像,右边是asm图像):

       

      asm文件是用汇编语言写成的源程序文件。这个团队发现把asm文件转成图像后,图像的前800-1000个像素的像素强度可以作为分类恶意软件的一个可靠特征。单独使用这个特征并不会给分类器性能带来明显变化,但当它和其他n-gram特征一起使用时,性能提升效果就很显著了。 

    2.表征学习特征

      自编码器能从数据样本中进行无监督学习,这意味着算法直接从训练数据中捕捉最显著的特征,无需其他特征工程。

    3.均值编码

      用平均数这样的统计量度来对分类值进行编码,这就叫均值编码。

      

      feature_label是scikit-learn编码的标签,feature_mean就是莫斯科标签下的真实目标数量/莫斯科标签下的目标总数,也就是2/5=0.4;

      对于Tver标签—m=Tver标签下的真实目标数量=3,n=Tver标签下的目标总数=4,相应的,Tver编码就是m/n=3/4=0.75(约等于0.8);

      数据分析中经常会遇到类别属性,比如日期、性别、街区编号、IP地址等。绝大部分数据分析算法是无法直接处理这类变量的,需要先把它们先处理成数值型量。如果这些变量的可能值很多,也就是高基数,那么在这种情况下,使用label encoding会出现一系列连续数字,在特征中添加噪声标签和编码会导致精度不佳,使用one-hot编码,随着特征不断增加,数据集的维数也在不断增加,这会阻碍编码。因此,这时均值编码是最好的选择之一。但它也有缺点,就是容易过拟合,所以使用时要配合适当的正则化技术:CV 、Regularization Smoothing、Regularization Expanding mean。

    4.转换目标变量

      当我们拿到一个高度偏斜的数据时,如果我们不做任何处理,最后模型的性能肯定会受影响。

      

      如上图所示,这里的数据高度偏斜,如果我们把目标变量转成log(1+目标)格式,那么它的分布就接近高斯分布了。

      

     

      需要注意的是,提交预测值时,我们需要进行转换回来。

     

  • 相关阅读:
    IOS 动画的各种实现方法
    多视图控制器--自动布局 3.5 4.0英寸的应用程序
    IOS 多线程编程之Grand Central Dispatch(GCD)介绍和使用 多线程基础和练习
    TableView--通讯录--开篇
    UI 网络程序
    XML JSON解析--基本功能
    通讯录CoreData数据库实现版
    CoreData的使用入门到精通
    sqlite 数据类型详解
    189. Rotate Array
  • 原文地址:https://www.cnblogs.com/wzdLY/p/9591075.html
Copyright © 2011-2022 走看看