精华内容
下载资源
问答
  • Python 进行病毒样本特征分析

    千次阅读 2014-06-03 21:39:08
    这几天一直在做有关病毒样本特征提取的工作,

    这几天一直在做有关病毒样本特征提取的工作,解析出了一个样本病毒特征,今天用python进行了相似样本的检验,想和大家一同分享。

    开始是这么写的:

     #!/usr/bin/python
     import os
     import os.path
     rootdir = "./sample_Backdoor_Linux"

      for filenames in os.walk(rootdir):
      for filename in filenames[2]:
      
       record = open(rootdir+"/"+filename,"rb")
       link = open("bad virus.txt","r")

       str_find = record.read()
       print str_find
       str_text = link.read()
       print str_text
     #  if str_find.index(str_text) < 0:
     #    break
     #  print filenam

    运行之后发现根本无法找到病毒样本,为什么(⊙o⊙)?

    后来发现了这个让我想揍自己的问题所在,文本中读取出的二进制,并非内存中的二进制,所以根本根本没有可比性,please 记住

    于是就有了下面的版本:

    #!/usr/bin/python
    import os
    import os.path
    import binascii
    rootdir = "./sample_Backdoor_Linux"

    def loaddb(dbname):
     fd = open(dbname, "r")
     signs = fd.readlines()
     return signs

    def process_sign(signs):
     signatures = []
     for line in signs:
       a=line.strip()
       print a
       signatures.append(binascii.a2b_hex(line.strip()))
     return signatures

    def compare_sign(signatures,rootdir):

     for filenames in os.walk(rootdir):
      file_count = 0
      found = 0
      for filename in filenames[2]:
       file_count = file_count + 1
       filepath = rootdir+"/"+filename
       content = open(filepath,"rb").read()
       i=0
       for sign in signatures:
        i = i+1
        if content.find(sign) != -1:
         found = found + 1
         print filepath, "Found Virus[%d]"%i
         break  
      print "detect objects: %d/%d"%(found, file_count)


    signs_txt_list = loaddb('bad virus.txt')
    signatures = process_sign(signs_txt_list)
    compare_sign(signatures,rootdir)

     后来成功的完成了检验工作,感觉自己真的还要踏踏实实的提高自己才行。

    上面主要用了binascii.a2b_hex来对二进制数据转化为内存数据,这样才能与病毒样本进行比较。还有一点就是要无论何时都要记住函数的封装性,这样不仅仅容易分析,当有错误时也更加容易进行分析。

     

    分享一句自己很喜欢的话:

    强者不是没有眼泪的人,而是含着眼泪奔跑的人!

    转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢


    展开全文
  • 通过编写YARA规则,我们可以基于文本或二进制模式对已掌握的恶意样本特征进行检测匹配,从而帮助我们更好的识别和分类恶意样本。 支持平台 Windows,Linux和Mac OS 官方文档 yara.readthedocs.io/en/v3.7.0/...

    YRAR规则

    通过编写YARA规则,我们可以基于文本或二进制模式对已掌握的恶意样本特征进行检测匹配,从而帮助我们更好的识别和分类恶意样本。

    支持平台

    Windows,Linux和Mac OS

    官方文档

    yara.readthedocs.io/en/v3.7.0/writingrules.html

    规则组成

    1. 规则名

    常用规则名的例子:恶意样本类型_家族

    1. 描述 meta

    该区域主要是对规则进行描述,详细的规则描述能够大大的降低后续维护规则的成本。

    1. 文本字符串区域

    支持类型有三种:

    • 十六进制字符串
    //通配符:可以代替某些未知字节,与任何内容匹配
    rule WildcardExample
    {
        strings:
           //使用‘?’作为通配符
           $hex_string = { 00 11 ?? 33 4? 55 }
     
        condition:
           $hex_string
    }
     
    //跳转:可以匹配长度可变的字符串
    rule JumpExample
    {
            strings:
               //使用‘[]’作为跳转,与任何长度为0-2字节的内容匹配
               $hex_string1 = { 00 11 [2] 44 55 }
               $hex_string2 = { 00 11 [0-2] 44 55 }
               //该写法与string1作用完全相同
               $hex_string3 = { 00 11 ?? ?? 44 55 }
     
            condition:
               $hex_string1 and $hex_string2
    }
     
    //也可以使用类似于正则表达式的语法
    rule AlternativesExample1
    {
        strings:
           $hex_string = { 00 11 ( 22 | 33 44 ) 55 }
           /*
            可以匹配以下内容:
            00 11 22 55
            00 11 33 44 55
           */
     
        condition:
           $hex_string
    }
     
    //还可以将上面介绍的方法整合在一起用
    rule AlternativesExample2
    {
        strings:
           $hex_string = { 00 11 ( 33 44 | 55 | 66 ?? 88 ) 99 }
     
        condition:
           $hex_string
    }
    
    • 文本字符串
    //转义符:
        \"        双引号
        \\        反斜杠
        \t        制表符
        \n        换行符
        \xdd      十六进制的任何字节
    
    //修饰符:
        nocase:  不区分大小写
        wide:    匹配2字节的宽字符
        ascii:   匹配1字节的ascii字符
        xor:     匹配异或后的字符串
        fullword:匹配完整单词
        private: 定义私有字符串
    
    rule CaseInsensitiveTextExample
    {
        strings:
            //不区分大小写
            $text_string = "foobar" nocase
            //匹配宽字符串
            $wide_string = "Borland" wide
            //同时匹配2种类型的字符串
            $wide_and_ascii_string = "Borland" wide ascii
            //匹配所有可能的异或后字符串
            $xor_string = "This program cannot" xor
            //匹配所有可能的异或后wide ascii字符串
            $xor_string = "This program cannot" xor wide ascii
            //限定异或范围
            $xor_string = "This program cannot" xor(0x01-0xff)
            /*
            全词匹配
            匹配:www.domain.com  
            匹配:www.my-domain.com  
            不匹配:www.mydomain.com
            */
            $wide_string = "domain" fullword
            //私有字符串可以正常匹配规则,但是永远不会在输出中显示
            $text_string = "foobar" private
        condition:
            $text_string
    }
    
    • 正则表达式
    1. 条件区域

    常见的匹配条件:

    • all of them // 匹配规则中的所有字符串
    • any of them // 匹配规则中的任意字符串
    • all of ($a*) // 匹配标识符以$a开头的所有字符串
    • any of ($a,$b,$c) // 匹配a, b,c中的任意一个字符串
    • 1 of ($*) // 匹配规则中的任意一个字符串

    其他匹配条件:

    • 根据匹配字符串在文件或内存中出现的次数
    rule CountExample
    {
        strings:
            $a = "dummy1"
            $b = "dummy2"
    
        condition:
            //a字符串出现6次,b字符串大于10次
            #a == 6 and #b > 10
    }
    
    • 根据匹配字符串在文件或内存中的偏移
    rule AtExample
    {
        strings:
            $a = "dummy1"
            $b = "dummy2"
    
        condition:
            //a和b字符串出现在文件或内存的100和200偏移处
            $a at 100 and $b at 200
    }
    
    • 根据文件大小匹配
    rule FileSizeExample
    {
        condition:
           //filesize只在文件时才有用,对进程无效
           //KB MB后缀只能与十进制大小一起使用
           filesize > 200KB
    }
    

    规则例子

    rule Rule_Name
    {
        meta:
            description = "描述"
        strings:
            $str1 = "xxx" // 字符串区域
        condition:
            $str1   // 条件区域
    }
    
    展开全文
  • 在机器学习特征工程这一步,笔者最常用到的是假设检验中的卡方检验去做特征选择,因为卡方检验可以做两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。但是笔者今天想介绍一下通过T检验做机器学习中的...

    最近在做数据分析方面的工作,经常需要检验两组样本之间是否存在差异,所以会遇到统计学中假设检验相关的知识。在机器学习特征工程这一步,笔者最常用到的是假设检验中的卡方检验去做特征选择,因为卡方检验可以做两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。但是笔者今天想介绍一下通过T检验做机器学习中的特征工程,希望能够让大家初步了解到各种假设检验是如何在机器学习项目的特征工程发挥作用。

    假设检验简介

    统计学中,常见的假设检验有:T检验(Student's t Test),F检验(方差齐性检验),卡方验证等。无论任何假设检验,它们都遵循如下图所示的流程:

    • 做两个假设:一般如果假设对象是两组样本的话,都会假设这两组样本均值相等(T检验的假设),方差满足齐次性(F检验的假设)等。而另一个假设其实就是两组样本均值不相等(T检验的假设),方差不满足齐次性(F检验的假设)等,其实这两个假设就是一对非此即彼的选项。这两个假设在教科书上就叫做原假设 ,和备择假设 。
    • 设置一个显著性值:通俗点理解,就是如果真实的情况偏离原假设的程度。
      1.如果真实情况和原假设差异不大(P值高于显著性值),那证明原假设是对的,接受原假设。
      2.如果真实情况和原假设差异太大(P值低于显著性值),那证明原假设错了,我们得拒绝原假设,接受备择假设。
      显著性值的选择是个经验值:一般和样本量有关,样本量越大,显著性值越大,一般几百左右的样本量P值一般选择0.05,样本量在两千左右时P值一般选择0.001,样本量再大,P值就没有作用了,所以做假设检验时样本量一般不会超过5千,样本量超过5千时P值就没什么意义了。
    • 收集证据:用手头的数据去验证第一步定义的假设。这一步就是对样本进行统计计算等操作。
    • 得到结论:结论一般不外乎这两种:
      1.如果P>0.05(上方第二步设定的显著性的值),原假设成立;
      2.如果P< 0.05(上方第二步设定的显著性的值),原假设不成立,备择假设成立。

      假设检验

    假设检验与特征相关性分析

    熟悉机器学习的同学都知道,特征X和目标Y的数值类型经常会出现两类:1. 连续型数值,2. 离散性数值(类别特征可以编码成离散型特征)。
    特征X和目标Y在不同数值类型的组合下,应该采用不同的假设检验手段去做特征相关性分析。下图罗列了特征X和目标Y在各种数值类型组合时最适合的假设检验方法。

     

    假设检验和特征相关分析对照表

    T检验简介

    T检验分单样本T检验和双样本T检验,单样本T检验检验的是样本的均值是否能代表总体的均值。双样本T检验检验的是两个独立样本所代表的总体数据均值差异是否显著。换句话说就是检验两个总体是否是存在差异。双样本T检验适用条件如下:

    • 两样本均来自于正态总体
    • 两样本相互独立
    • 满足方差齐性,方差齐次性指的是样本的方差在一个数量级水平上(通过方差齐性检验)

    接下来按照假设检验流程:
    1.原假设:两个独立样本所代表的总体数据均值相同( ),备择假设:两个独立样本所代表的总体数据均值不相同( );
    2.P值定为0.05;
    3.计算两组样本的均值,标准差然后带入下图所示的公式后求得t值,然后查T检验表得到P值。其中  和  分别指这两组样本的均值,  和 分别代表两组样本的标准差,   和 分别代表两组样本的样本量;
    4.如果P< 0.05,则两组数据均值不同,数据间存在差异,如果P> 0.05,则两组数据均值相同。

    双样本T检验

     

    双样本T检验特征相关性分析实战

    数据载入

    导入必要的python包和数据集,这里笔者用的是boston房价预测的数据集。

     

    from scipy import stats
    import pandas as pd
    from sklearn.datasets import load_boston
    data_value = load_boston().data
    data_target = load_boston().target
    feature = load_boston().feature_names
    data = pd.DataFrame({ i:j  for  i, j  in  zip(feature, [data_value[:,index] for  index in range(len(feature))])})
    data["Price"] = data_target
    

    数据大致如下图所示,其中Price列是预测值Y,其他列都是特征X列,根据上文假设检验和特征相关分析对照表,我们发现如果X和Y中一个为二分类数值类型时,一个为连续数值类型时即可以使用双样本T检验。

    data

     

    下图显示CHAS这列是二分类数值类型,506个样本中CHAS = 0的有471个样本,CHAS = 1的有35个样本,而boston 房价预测数据中Price是连续数值类型,所以我们可以采用双样本T检验去检验CHAS(0或者1)的不同是否会对房价有影响,换句话说就是去检验CHAS这列特征和房价是否有关联。

     

    CHAS的统计结果

    准备样本

    将CHAS = 0 的房价Price 样本 和 将CHAS = 1 的房价Price 样本 分别抽取出来。

     

    CHAS_0 = list(data[data["CHAS"]==0].Price)
    CHAS_1 = list(data[data["CHAS"]==1].Price)
    

    方差齐次性检验

    按照T检验的步骤,首先做方差齐次性检验,下方代码就是在做方差齐次性检验,一行代码,so easy。

     

    stats.levene(CHAS_0,CHAS_1)
    

    得到的结果如下所示:
    LeveneResult(statistic=4.590342218715871,pvalue=0.03263097600633006)
    这里我们只需要关注p value(上文提到的P值),P=0.03小于0.05,证明方差齐次性检验的原假设不成立,说明两组样本方差不满足齐次性。

    双样本T检验

    接着做双样本T检验,依然是一行代码。注意由于两组样本之间的方差不满足齐次性,需要加一个参数equal_var=False。此API默认为equal_var=Ture。

     

    stats.ttest_ind(CHAS_0,CHAS_1,equal_var=False)
    

    结果如下:
    Ttest_indResult(statistic=-3.113291312794837,pvalue=0.003567170098137517)
    P=0.003小于0.05,证明双样本T检验的原假设不成立,即两个总体之间的均值存在差异。

    结论

    下面结果显示:CHAS = 0的这一波房子的房价均值为22,而CHAS = 1的这一波房价的均值为26,说明CHAS = 1的房子比CHAS = 0的房子要贵。所以CHAS这列特征和房价还是很相关。而且T检验也证明其相关性还是很显著,所以这列特征,不能随意扔掉。

     

    结果

    但是不知道读者发现没有,采用T检验去做相关性分析,条件十分苛刻——需要一组样本是二分类数值,另一组特征为连续数值。其他类型的数值类型情况就无法采用此法。所以,卡方检验和方差分析应该是最值得推荐的做特征相关性方式。

     

    展开全文
  • 原始语言特征信号文件,可用于样本分析
  • 样本数据的分析,主要用来分析样本数据的每个特征是否有缺失值,单个特征变量的均值,方差,最大最小值,分布情况。以及变量之间的相关性。 2. 样本数据分析的意义 1. 根据对样本数据的分析,来决定如何对数据...

     

    1.样本数据分析的内容
    在开始应用各种机器学习方法训练样本数据时,首先要对样本数据进行各种处理,使得样本数据符合机器学习算法的要求。
    对样本数据的分析,主要用来分析样本数据的每个特征是否有缺失值,单个特征变量的均值,方差,最大最小值,分布情况。以及变量之间的相关性。

    2. 样本数据分析的意义
    1. 根据对样本数据的分析,来决定如何对数据进行处理,选择哪种机器学习算法来训练样本。

    2. 图表汇总数据能更好地帮助我们把握数据的特点。

     

    3. 样本数据分析的基本步骤。 

           (1)导入必要的工具包。

           (2)读取数据。

           (3)数据整体信息分析,观察是否有缺失值。

           (4)查看数据各特征的分布,特征与标签之间的关系、以及特征之间相关性(是否存在冗余)。

                    数据表的特征类型通常有两种:

                   数值型特征(int64和float64)

                   类别型特征(categorical features)或离散型特征。离散型特征具有固定数目的值。如果特征只有两个取值,也成为二元(binary)变量。如果类别型变量的值具有顺序,称为有序(ordinal)类别型变量。

                     我们可以借用可视化工具来直观感觉数据的分布。 在Python中,有很多数据可视化途径。 Matplotlib非常强大,但很复杂,不易于学习。 Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。

    在Boston房价预测数据集中,所有特征均为数值型特征(RAD为高速公路便利指数,亦可视为类别型特征;CHAS为0/1编码,为类别型特征)。

    对数值型特征,describe方法可以特征的基本统计学特性:未缺失值的数值、均值、标准差、范围、四分位数。 查看非数值特征的统计数据时,需要通过include参数显式指定包含的数据类型(后续例子)

    对于连续型变量,主要用直方图来观察特征对应的样本的分布情况,对于离散型变量,主要用条形图来分析特征对应样本的分布情况。 

    条形图countplot和直方图distplot看起来很像,都用于观察特征的分布,不同点:
    直方图用于查看数值变量的分布,而条形图用于类别特征。
    直方图的X轴是数值;条形图的X轴可能是任何类型:数字、字符串、布尔值。
    直方图的X轴是笛卡尔坐标轴;条形的顺序没有事先定义。不过条形经常按照高度排序,也就是值的频率。如果是有序变量,条形通常按照变量的值排序。 

     

     

                                                                             特征变量与对应样本之间的关系 

     

    特征变量与对应样本之间的关系

          (5)分析两两特征之间的相关性。

    两两特征之间的关系探索与要分析特征的类型有关。

    数值特征——数值特征 1.1 相关矩阵:两个数值特征之间的关系可用相关矩阵来查看它们之间的相关性。这一信息很重要,因为有有些机器学习算法(如普通最小二乘线性回归)不能很好地处理高度相关的输入变量。如果特征之间高度相关,可考虑进行PCA降维(特征层面)或加正则项(模型层面)。 可用DataFrame的corr()方法先计算出每对特征间的相关矩阵,然后将所得的相关矩阵传给seaborn的heatmap()方法,渲染出一个基于色彩编码的矩阵。 1.2 散点图(scatter)将两个数值变量的值显示为二维空间中的笛卡尔坐标。

    数值特征——类别特征 散点图中的数据点可以通过色彩或尺寸进行编码,以便在同一张图像中包括第三个类别变量的值。 也可以用lmplot()函数的hue参数来指定感兴趣的类别特征。 violinplot/boxplot可表示输入两个特征,用于表示在一个特征取值下(类别型特征),另一个特征(数值特征)的分布或统计量。

    类别特征——类别特征 通过设置参数hue,在图形中加入类别维度 除了使用图形进行类别分析之外,还可以使用统计学的传统工具:列联表(contingency table),又称为交叉制表(cross tabulation),使用表格形式表示多个类别变量的频率分布。我们可以通过查看一列或一行来得知某个变量在另一变量的作用下的分布。

     
    1_EDA_BostonHousePrice
    Last Checkpoint: 16 小时前
    (autosaved)
     
    Logout 
    
    Python 3  
    
    Trusted
    File
    Edit
    View
    Insert
    Cell
    Kernel
    Widgets
    Help
    
    
    
    
    
    
    
    Run
    
    
    
    
    
    
    
    二级标题
    #二级标题
    
    标题练习
    
    三级标题
    ###三级标题
    In [1]:
    
    
    # -*- coding:utf-8 -*-
    import sys
    #reload(sys)
    #sys.setdefaultencoding("utf-8")
    
    
    
    波士顿房价数据探索
    该数据集来自UCI机器学习知识库。波士顿房屋这些数据于1978年开始统计,共506个数据点,涵盖了麻省波士顿不同郊区房屋13种特征和房价中位数的信息。 本项目将原始数据集存为csv格式,方便调用pandas做数据分析。
    在开始一项新任务时,通过可视化手段探索数据往往是任务的第一步,从而根据数据特点选择合适的数据预处理方式和机器学习模型。 相比直接阅读许多行原始数据,图表汇总数据能更好地帮助我们把握数据的要点。
    
    导入必要的工具包
    In [1]:
    
    
    import numpy as np # linear algebra
    import pandas as pd # data processing, CSV file I/O
    ​
    import matplotlib.pyplot as plt #对数据结果可视化
    import seaborn as sns #对matplotlib文件的进一步封装
    ​
    %matplotlib inline
    
    
    
    
    Pandas提供了大量数据分析的方法,可以使用类似SQL的方式非常方便地加载、处理、分析这些表格形式的数据。 搭配Matplotlib和Seaborn效果更好。
    Pandas的主要数据结构是Series和DataFrame类。 Series是一个包含某种固定类型数据的一维数组。 DataFrame是一个二维数据表格,其中每列包含相同类型的数据。
    
    读取数据
    In [2]:
    
    
    #dpath = "./data/"
    df = pd.read_csv("boston_housing.csv")
    ​
    #显示前5行
    df.head()
    
    
    Out[2]:
    
    CRIM
    ZN
    INDUS
    CHAS
    NOX
    RM
    AGE
    DIS
    RAD
    TAX
    PTRATIO
    B
    LSTAT
    MEDV
    0
    0.00632
    18
    2.31
    0
    0.538
    6.575
    65.2
    4.0900
    1
    296
    15
    396.90
    4.98
    24.0
    1
    0.02731
    0
    7.07
    0
    0.469
    6.421
    78.9
    4.9671
    2
    242
    17
    396.90
    9.14
    21.6
    2
    0.02729
    0
    7.07
    0
    0.469
    7.185
    61.1
    4.9671
    2
    242
    17
    392.83
    4.03
    34.7
    3
    0.03237
    0
    2.18
    0
    0.458
    6.998
    45.8
    6.0622
    3
    222
    18
    394.63
    2.94
    33.4
    4
    0.06905
    0
    2.18
    0
    0.458
    7.147
    54.2
    6.0622
    3
    222
    18
    396.90
    5.33
    36.2
    
    数据总体信息
    In [4]:
    
    
    df.info()
    
    
    
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 506 entries, 0 to 505
    Data columns (total 14 columns):
    CRIM       506 non-null float64
    ZN         506 non-null int64
    INDUS      506 non-null float64
    CHAS       506 non-null int64
    NOX        506 non-null float64
    RM         506 non-null float64
    AGE        506 non-null float64
    DIS        506 non-null float64
    RAD        506 non-null int64
    TAX        506 non-null int64
    PTRATIO    506 non-null int64
    B          506 non-null float64
    LSTAT      506 non-null float64
    MEDV       506 non-null float64
    dtypes: float64(9), int64(5)
    memory usage: 55.4 KB
    
    一、样本数N:506
    二、特征维数:13,每个特征的数据类型,非空值的样本数目
    CRIM:人均犯罪率 ;
    ZN:住宅用地的比例(对超过两万五千平方英尺的区域) ;整数
    INDUS:城镇中非零售营业比例;
    CHAS:是否靠近Charles河的边界;整数
    NOX:一氧化氮浓度 ;
    RM:住宅平均房间数;
    AGE:1940年之前建造的自住房屋的比例;
    DIS:距离波士顿五个中心的加权距离;
    RAD:高速公路的便利指数(索引);整数
    TAX :每一万美元财产的全额财产税率; 整数
    PTRATIO :城乡师生比例;PTRATIO
    B :黑人比例
    LSTAT :低收入人群比例
    三、标签y MEDV :自住房屋价格的中值
    In [5]:
    
    
    # 样本数目和特征维数
    print(df.shape)
    
    
    
    (506, 14)
    In [6]:
    
    
    #列的名字
    print(df.columns)
    
    
    
    Index(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX',
           'PTRATIO', 'B', 'LSTAT', 'MEDV'],
          dtype='object')
    
    数据探索
    
    查看数据各特征的分布,特征与标签之间的关系、以及特征之间相关性(是否存在冗余)。 数据表的特征类型通常有两种:
    数值型特征(int64和float64)
    类别型特征(categorical features)或离散型特征。离散型特征具有固定数目的值。如果特征只有两个取值,也成为二元(binary)变量。如果类别型变量的值具有顺序,称为有序(ordinal)类别型变量。
    我们可以借用可视化工具来直观感觉数据的分布。 在Python中,有很多数据可视化途径。 Matplotlib非常强大,但很复杂,不易于学习。 Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。
    
    在Boston房价预测数据集中,所有特征均为数值型特征(RAD为高速公路便利指数,亦可视为类别型特征;CHAS为0/1编码,为类别型特征)。
    
    对数值型特征,describe方法可以特征的基本统计学特性:未缺失值的数值、均值、标准差、范围、四分位数。 查看非数值特征的统计数据时,需要通过include参数显式指定包含的数据类型(后续例子)
    In [7]:
    
    
    # 对数值型特征,得到每个特征的描述统计量
    df.describe()
    
    
    Out[7]:
    
    CRIM
    ZN
    INDUS
    CHAS
    NOX
    RM
    AGE
    DIS
    RAD
    TAX
    PTRATIO
    B
    LSTAT
    MEDV
    count
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    506.000000
    mean
    3.613524
    11.347826
    11.136779
    0.069170
    0.554695
    6.284634
    68.574901
    3.795043
    9.549407
    408.237154
    18.083004
    356.674032
    12.653063
    22.532806
    std
    8.601545
    23.310593
    6.860353
    0.253994
    0.115878
    0.702617
    28.148861
    2.105710
    8.707259
    168.537116
    2.280574
    91.294864
    7.141062
    9.197104
    min
    0.006320
    0.000000
    0.460000
    0.000000
    0.385000
    3.561000
    2.900000
    1.129600
    1.000000
    187.000000
    12.000000
    0.320000
    1.730000
    5.000000
    25%
    0.082045
    0.000000
    5.190000
    0.000000
    0.449000
    5.885500
    45.025000
    2.100175
    4.000000
    279.000000
    17.000000
    375.377500
    6.950000
    17.025000
    50%
    0.256510
    0.000000
    9.690000
    0.000000
    0.538000
    6.208500
    77.500000
    3.207450
    5.000000
    330.000000
    19.000000
    391.440000
    11.360000
    21.200000
    75%
    3.677082
    12.000000
    18.100000
    0.000000
    0.624000
    6.623500
    94.075000
    5.188425
    24.000000
    666.000000
    20.000000
    396.225000
    16.955000
    25.000000
    max
    88.976200
    100.000000
    27.740000
    1.000000
    0.871000
    8.780000
    100.000000
    12.126500
    24.000000
    711.000000
    22.000000
    396.900000
    37.970000
    50.000000
    
    此处得到各属性的样本数目、均值、标准差、最小值、1/4分位数(25%)、中位数(50%)、3/4分位数(75%)、最大值 可初步了解各特征的分布
    
    单变量分布分析 对单个变量,可用直方图、箱体图等方式查看其大致分布、是否存在噪声数据点等
    
    数值型特征
    
    直方图
    seaborn的distplot方法可以对数值型特征绘制直方图(distribution plot)
    In [8]:
    
    
    # 目标y(房屋价格)的直方图/分布
    fig = plt.figure()
    sns.distplot(df["MEDV"], bins=30, kde=True)
    plt.xlabel("Median value of owner-occupied homes", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    
    可以看出,标签y主要集中在20附近,和正态分布比较接近。但较小的值比较密集,较大的值比较散(长尾),取值为最大值50的样本数较多(猜测是对大值做了截断),在模型训练时也可以考虑将y等于50的样本当成outliers(离群点)去掉。 纵轴为归一化后的值(概率密度)
    另外对价格类特征,统称人对数值的敏感程度不是线性,可考虑对其进行log变换(Numpy的log1p)
    In [9]:
    
    
    #使用DataFrame的hist()方法也可以绘制直方图(histogram)
    #distplot绘图的纵轴为样本的比例,hist方法绘图的纵轴为样本数目
    features = ["MEDV", "CRIM"]  #可以一次指定多个特征
    df[features].hist()
    
    
    Out[9]:
    array([[<matplotlib.axes._subplots.AxesSubplot object at 0x0000028B043ECDD8>,
            <matplotlib.axes._subplots.AxesSubplot object at 0x0000028B0448A860>]],
          dtype=object)
    
    
    
    箱体图 boxplot& 提琴形图Violinplot
    箱形图可以可视化特征的分位数等统计量,主要用于离群点的发现。其主要组成部分是箱子(box),须(whisker)和一些单独的数据点(离群值)。
    箱子显示了分布的四分位距;它的长度由25%(Q1,下四分位数)和75%(Q3,上司分位数)决定。箱中的水平线表示中位数(50%)。
    从箱子处延伸出来的线被称为须,表示数据点的总体散布,即位于区间(Q1 - 1.5xIQR, Q3 + 1.5xIQR)的数据点,其中IQR是四分位距:IQR= Q3 - Q1。
    离群值是须之外的数据点,它们作为单独的数据点,沿着中轴绘制。
    Violinplot结合了箱线图(boxplot)与核密度估计图的特点,可用于一个或多个分类变量情况下,连续变量数据的分布并进行了比较。 Violinplot还可以用于观察多个数据分布(如观察某个变量和标签之间的关系,本notebook最后部分)。
    In [10]:
    
    
    _, axes = plt.subplots(1, 2, sharey=True, figsize=(6, 4))
    sns.boxplot(data=df["MEDV"], ax=axes[0]); 
    sns.violinplot(data=df["MEDV"], ax=axes[1]);
    
    
    
    
    
    输入属性的直方图/分布
    In [11]:
    
    
    fig = plt.figure()
    sns.distplot(df["CRIM"], bins=30, kde=False)
    plt.xlabel("crime rate", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    
    犯罪率特征的分布是长尾分布,和指数分布比较接近。大部分城镇的犯罪率很低,极少数样本的犯罪率高。 可以考虑对该特征进行log(x+1)变换
    In [12]:
    
    
    fig = plt.figure()
    sns.distplot(df["ZN"], bins=30, kde=False)
    plt.xlabel("proportion of residential land zoned", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    In [13]:
    
    
    fig = plt.figure()
    sns.distplot(df["INDUS"], bins=30, kde=False)
    plt.xlabel("proportion of non-retail business acres", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    
    离散型特征(类别型特征)
    对离散型特征,可用频率表value_counts给出每个特征取值的样本数目。 或者采用countplot方法绘制直方图。 
    
    频率表 value_counts()
    默认情况下,频率由高到低排列。
    In [14]:
    
    
    df["CHAS"].value_counts()
    
    
    Out[14]:
    0    471
    1     35
    Name: CHAS, dtype: int64
    
    条形图 countplot
    频率表的图形化表示是条形图
    seaborn中还有一个函数,起了一个令人困惑的名字(barplot()),barplot()绝大部分情况下用于表示以某个类别特征分组的数值变量的一些基本统计数据。
    In [15]:
    
    
    #离散型/类别型特征的分布可用countplot(纵轴为样本数目)
    sns.countplot(df["CHAS"], order=[0, 1]);
    plt.xlabel("Charles River");
    plt.ylabel("Number of occurrences");
    
    
    
    
    
    条形图countplot和直方图distplot看起来很像,都用于观察特征的分布,不同点:
    直方图用于查看数值变量的分布,而条形图用于类别特征。
    直方图的X轴是数值;条形图的X轴可能是任何类型:数字、字符串、布尔值。
    直方图的X轴是笛卡尔坐标轴;条形的顺序没有事先定义。不过条形经常按照高度排序,也就是值的频率。如果是有序变量,条形通常按照变量的值排序。
    In [16]:
    
    
    fig = plt.figure()
    sns.distplot(df["NOX"], bins=30, kde=False)
    plt.xlabel("nitric oxides concentratio", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    In [17]:
    
    
    fig = plt.figure()
    sns.distplot(df["RM"], bins=30, kde=False)
    plt.xlabel("average number of rooms per dwelling", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    In [18]:
    
    
    fig = plt.figure()
    sns.distplot(df["AGE"], bins=30, kde=False)
    plt.xlabel("proportion of owner-occupied units built prior to 1940", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    In [19]:
    
    
    fig = plt.figure()
    sns.distplot(df["DIS"], bins=30, kde=False)
    plt.xlabel("weighted distances to five Boston employment centres", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    In [20]:
    
    
    fig = plt.figure()
    sns.countplot(df["RAD"])
    plt.xlabel("index of accessibility to radial highways", fontsize=12)
    plt.show()
    
    
    
    
    In [21]:
    
    
    sns.countplot(df["RAD"])
    plt.xlabel("index of accessibility to radial highways")
    
    
    Out[21]:
    Text(0.5,0,'index of accessibility to radial highways')
    
    
    In [22]:
    
    
    fig = plt.figure()
    sns.distplot(df["TAX"], bins=20, kde=False)
    plt.xlabel("full-value property-tax rate per $10,000", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    In [23]:
    
    
    sns.countplot(df["PTRATIO"]);
    plt.xlabel("pupil-teacher ratio by town");
    
    
    
    
    In [24]:
    
    
    fig = plt.figure()
    sns.distplot(df["B"], bins=30, kde=False)
    plt.xlabel("proportion of blacks", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    In [25]:
    
    
    fig = plt.figure()
    sns.distplot(df["LSTAT"], bins=30, kde=False)
    plt.xlabel("lower status of the population", fontsize=12)
    plt.show()
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    
    两两特征之间的相关性
    两两特征之间的关系探索与要分析特征的类型有关。
    数值特征——数值特征 1.1 相关矩阵:两个数值特征之间的关系可用相关矩阵来查看它们之间的相关性。这一信息很重要,因为有有些机器学习算法(如普通最小二乘线性回归)不能很好地处理高度相关的输入变量。如果特征之间高度相关,可考虑进行PCA降维(特征层面)或加正则项(模型层面)。 可用DataFrame的corr()方法先计算出每对特征间的相关矩阵,然后将所得的相关矩阵传给seaborn的heatmap()方法,渲染出一个基于色彩编码的矩阵。 1.2 散点图(scatter)将两个数值变量的值显示为二维空间中的笛卡尔坐标。
    数值特征——类别特征 散点图中的数据点可以通过色彩或尺寸进行编码,以便在同一张图像中包括第三个类别变量的值。 也可以用lmplot()函数的hue参数来指定感兴趣的类别特征。 violinplot/boxplot可表示输入两个特征,用于表示在一个特征取值下(类别型特征),另一个特征(数值特征)的分布或统计量。
    类别特征——类别特征 通过设置参数hue,在图形中加入类别维度 除了使用图形进行类别分析之外,还可以使用统计学的传统工具:列联表(contingency table),又称为交叉制表(cross tabulation),使用表格形式表示多个类别变量的频率分布。我们可以通过查看一列或一行来得知某个变量在另一变量的作用下的分布。
    
    相关矩阵
    In [26]:
    
    
    #get the names of all the columns
    cols = df.columns 
    ​
    # Calculates pearson co-efficient for all combinations,通常认为相关系数大于0.5的为强相关
    data_corr = df.corr()
    sns.heatmap(data_corr,annot=True)
    
    
    Out[26]:
    <matplotlib.axes._subplots.AxesSubplot at 0x28b056a51d0>
    
    
    In [27]:
    
    
    data_corr.shape
    
    
    Out[27]:
    (14, 14)
    In [28]:
    
    
    # 得到相关系数的绝对值,通常认为相关系数的绝对值大于0.5的特征为强相关
    data_corr = data_corr.abs()
    plt.subplots(figsize=(13, 9))
    sns.heatmap(data_corr,annot=True)
    ​
    # Mask unimportant features,突出重要信息
    sns.heatmap(data_corr, mask=data_corr < 0.5, cbar=False)
    ​
    #plt.savefig("house_coor.png" )
    plt.show()
    
    
    
    
    In [29]:
    
    
    #Set the threshold to select only highly correlated attributes
    threshold = 0.5
    # List of pairs along with correlation above threshold
    corr_list = []
    #size = data.shape[1]
    size = data_corr.shape[0]
    ​
    #Search for the highly correlated pairs
    for i in range(0, size): #for 'size' features
        for j in range(i+1,size): #avoid repetition
            if (data_corr.iloc[i,j] >= threshold and data_corr.iloc[i,j] < 1) or (data_corr.iloc[i,j] < 0 and data_corr.iloc[i,j] <= -threshold):
                corr_list.append([data_corr.iloc[i,j],i,j]) #store correlation and columns index
    ​
    #Sort to show higher ones first            
    s_corr_list = sorted(corr_list,key=lambda x: -abs(x[0]))
    ​
    #Print correlations and column names
    for v,i,j in s_corr_list:
        print ("%s and %s = %.2f" % (cols[i],cols[j],v))
    
    
    
    RAD and TAX = 0.91
    NOX and DIS = 0.77
    INDUS and NOX = 0.76
    AGE and DIS = 0.75
    LSTAT and MEDV = 0.74
    NOX and AGE = 0.73
    INDUS and TAX = 0.72
    INDUS and DIS = 0.71
    RM and MEDV = 0.70
    NOX and TAX = 0.67
    ZN and DIS = 0.66
    INDUS and AGE = 0.64
    CRIM and RAD = 0.63
    RM and LSTAT = 0.61
    NOX and RAD = 0.61
    INDUS and LSTAT = 0.60
    AGE and LSTAT = 0.60
    INDUS and RAD = 0.60
    NOX and LSTAT = 0.59
    CRIM and TAX = 0.58
    ZN and AGE = 0.57
    TAX and LSTAT = 0.54
    DIS and TAX = 0.53
    ZN and INDUS = 0.53
    ZN and NOX = 0.52
    AGE and TAX = 0.51
    PTRATIO and MEDV = 0.51
    
    散点图
    matplotlib库的scatter()方法 或 seaborn库的jointplot方法(kind参数为scatter)
    In [30]:
    
    
    plt.scatter(df["RM"], df["MEDV"]);
    
    
    
    
    In [31]:
    
    
    sns.jointplot(x="RM", y="MEDV",
    ​
                  data=df, kind="scatter");
    
    
    
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    C:\Users\dell\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
      warnings.warn("The 'normed' kwarg is deprecated, and has been "
    
    
    In [32]:
    
    
    # Scatter plot of only the highly correlated pairs
    # 使用SVG格式可能导致pairplot变得非常慢
    %config InlineBackend.figure_format = "png"
    for v,i,j in s_corr_list:
        sns.pairplot(df, x_vars=cols[i],y_vars=cols[j] )
        plt.show()
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    参数hue表示类别
    In [33]:
    
    
    sns.lmplot('RM', 'MEDV', data=data, hue='CHAS', fit_reg=False);
    
    
    
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-33-f69d438ea83b> in <module>()
    ----> 1 sns.lmplot('RM', 'MEDV', data=data, hue='CHAS', fit_reg=False);
    
    NameError: name 'data' is not defined
    
    In [34]:
    
    
     _, axes = plt.subplots(1, 2, sharey=True, figsize=(10, 4)) 
    sns.boxplot(x="CHAS", y="MEDV", data=data,ax=axes[0]) 
    sns.violinplot(x="CHAS", y="MEDV", data=data, ax=axes[1]);
    
    
    
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-34-23a94446d967> in <module>()
          1 _, axes = plt.subplots(1, 2, sharey=True, figsize=(10, 4))
    ----> 2 sns.boxplot(x="CHAS", y="MEDV", data=data,ax=axes[0])
          3 sns.violinplot(x="CHAS", y="MEDV", data=data, ax=axes[1]);
    
    NameError: name 'data' is not defined
    
    
    
    
    可以看出,不同CHAS取值,目标MEDV的分布不同,初步断定CHAS和目标MEDV有关系。
    

     

     

     

     

     

    
     
    
     
    
     
    
     
    
     
    
     
    
     

     

     

    读取数据

    展开全文
  • Virut样本取证特征

    2018-05-09 01:15:00
    1、网络特征 ant.trenz.pl ilo.brenz.pl 2、文件特征 通过对文件的定位,使用PEID...【病毒分析】Virut.ce-感染型病毒分析报告 http://www.cnblogs.com/17bdw/p/7776877.html 4、证明正常进程空间里含有恶意代码...
  • Python特征分析- 相关性分析

    千次阅读 2020-05-12 10:35:16
    Python特征分析- 相关性分析相关性分析引入库图示初判变量之间的线性相关性散点图矩阵初判多变量间关系Pearson相关系数创建样本数据正态性检验 → pvalue >0.05制作Pearson相关系数求值表求出rPearson相关系数 - ...
  • 异常特征样本清洗

    千次阅读 2018-07-30 00:01:30
    第一种是聚类,比如我们可以用KMeans聚类将训练样本分成若干个簇,如果某一个簇里的样本数很少,而且簇质心和其他所有的簇都很远,那么这个簇里面的样本极有可能是异常特征样本了。我们可以将其从训练集过滤掉。 ....
  • 南极陆地冰面光谱特征分析,牛牧野,刘婷婷,地物的光谱特征在影像解译、地物分类等遥感研究中有着重要的作用。本研究在南极中山站附近选取不同物理特征的陆地冰样本,使用SVC
  • 正是基于此,本文着重关注手部运动特征,通过对运动特征分析来实现人机交互。本文提出一种基于样本回归分析的手部动作识别算法,新颖之处在于:(1)基于最大连通域的图像分割可有效降低背景光对识别准确率的影响...
  • 最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如 K 最近邻(KNN)和 K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。一般而言,定义一个距离函数 d(x,y), 需要满足下面几个...
  • 发动机动态特性测试样本柴油机零部件振动特征分析试验(发动机动态测试分析)
  • 针对一类高维少样本数据的特点,给出了广义小样本概念,对广义小样本进行信息特征压缩:特征提取(降维)和特征选择(选维)。首先介绍基于主成分分析(PCA)的无监督与基于偏最小二乘(PLS)的有监督的特征提取方法...
  • 为判别突水水源提供理论依据,将多元对应分析方法应用于潘一煤矿各含水层水质特征区分以及同一含水层内垂向上水质变化的分析,并将分析结果和Piper图进行比较,结果表明:多元对应分析法可以分析水样样本之间、水质指标...
  • 编写者特征等.IP溯源家常便饭. 2金山火眼式 基本信息 火焰点评 危急行为 其他行为 行为描写叙述 附加信息 注冊表监控 网络监控 值得注意的是火眼使用最多两种哈希来确定一个样本.当然你能够使用其一. 3...
  • parite家族样本分析

    千次阅读 2016-11-22 00:50:42
    parite家族,此家族属于蠕虫系列,在这次发现的样本中使用了多态变形技术进行躲避传统杀毒软件的特征码查杀。启动后通过开启全局钩子的方式将恶意DLL文件注入到多个进程,在注入DLL对进程进行判断,如果不是explorer...
  • 3,分位数:设0,则样本数据有p分位数的概念。事实上,p=0.5时,0.5分位数就是中位数,由此,可以推出分位数的概念。常见的分位数有 0.25分位数、0.5分位数(即中位数)、0.75分位数。其中 0.75分位数和 0.25分位数又...
  • 利用基于样本训练的统计学习原理,在分析各类图像样本特征上的差异和相关性的基础上,提取图像共同特征和显著特征参数集合,并加入人为启发式思想,结合先验知识的指导和计算机特征分析结果来制订特征提取规则,应用...
  • 特征选择过滤法之方差选择、双样本t检验、方差分析、相关系数法、卡方检验、互信息法 目录 特征选择过滤法之方差选择、双样本t检验、方差分析、相关系数法、卡方检验、互信息法 方差选择 双样本t检验 方差分析 ...
  • 对此提出一种基于特征样本的KPCA(SKPCA) ,其基本思想是, 首先利用非线性映射函数将输入空间映射到特征子空间, 然后在特征子空间中计算主元.将SKPCA 应用于监控Tennessee Eastman 过程,并与基于全体样本的KPCA作比较....
  • 风控信贷模型(一):特征分析

    千次阅读 2018-08-28 19:50:22
    特征工程 1、初步分析阶段 数据的探索分析EDA,是对数据进行初步的统计分析,统计数据的分布、...2、查看样本集中样本总个数、特征总个数 3、查看正负样本个数,如果正负样本相差不多,则属于样本均衡的建模...
  • 特征 支持AMD64,ARM,AArch64和MIPS64架构(其中MIPS64需要内核的微小树外补丁才能正常工作) 支持脱机和联机堆栈跟踪展开 支持不带任何调试信息的二进制文件性能分析(不带.debug_frame节) 使用基于.eh_frame的...
  • 针对核主元分析(KPCA)监控模型由于建模样本不纯而导致故障检测失效问题,提出基于改进特征样本方法的KPCA故障检测模型并应用于变压器故障检测中。利用特征值变化信息,设计出异常样本剔除算法以避免异常样本被选入...
  • 把求解大规模对称矩阵端部特征对问题的基本方法-Lanczos算法应用于核主成分分析模型的求解,设计了大样本核主成分分析模型求解的实用算法。在clapack和nu-TRLan两个软件包的基础上,开发了大样本核主成分分析模型...
  • 首先将我们需要分析的实验数据进行itd分解,可以自己设置分解的个数,在通过相关系数帅选分量,并求出他们的样本特征,你指的拥有,可以的话,希望给一个好评。
  • 由于传统的鉴别主分量分析 (DKL)算法中,主分量分析(PCA)基于全局特征,难以提取人脸的局部特性,该文提出鉴别局部特征分析算法。该算法中,局部特征分析(LFA)代替 PCA作为线性鉴别分析(LDA)的前端。一方面,LFA在保留大...
  • 对此提出一种基于特征样本的KPCA(SKPCA),其基本思想是,首先利用非线性映射函数将输入空间映射到特征子空间,然后在特征子空间中计算主元。将SKPCA应用于监控TennesseeEastman过程,并与基于全体样本的KPCA作比较...
  • 行特性分析特征提取的研究已经取得了重大的进展和成果。本文是在广泛研读国内外有 关脑电研究现状和分析方法的相关资料基础上,采用样本熵、双谱、1.5维谱等现代信号处 理方法来研究脑电信号中蕴藏的丰富信息,...
  • 本文讲的是Windows恶意软件API调用特征分析, 1.背景 目标: 1)找到病毒调用概率高的API 2)找到病毒调用概率不高,但是当调用频次高的时候,是病毒概率高的API。 通常对病毒使用API的认识都是基于病毒工程师的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,159
精华内容 1,663
关键字:

样本特征分析