sax-vsm_classic, SAX VSM public 发布,请访问我们的网站了解详情

分享于 

12分钟阅读

GitHub

  繁體 雙語
SAX-VSM public release, visit our website for detail
  • 源代码名称:sax-vsm_classic
  • 源代码网址:http://www.github.com/jMotif/sax-vsm_classic
  • sax-vsm_classic源代码文档
  • sax-vsm_classic源代码下载
  • Git URL:
    git://www.github.com/jMotif/sax-vsm_classic.git
    Git Clone代码到本地:
    git clone http://www.github.com/jMotif/sax-vsm_classic
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/jMotif/sax-vsm_classic
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    sax-vsm-public-代码发布

    Build Statuscodecov.ioLicense

    这里代码支持我们的发布:

    Senin,Pavel和 Malinchik,Sergey, sax向量空间: Interpretable时间系列ClassiCfication使用SAX和向量空间模型,数据挖掘( ICDM ),2013,IEEE国际会议,pp.1175, 1180,7 -10 2013年12月。

    注意,sax-vsm堆栈也在 R 中提供。 我们的算法基于以下的工作:

    [1] 林,J,Keogh,m,m,m。 还有 Lonardi。S。 遇到 SAX: 时间序列的一种符号表示。 DMKD日志,2007.

    [2],G,Wong,Yang,Yang,,,,,。 通讯,18,11,613,1975.

    [3] Jones,D。R。Perttunen,C。 D。和 Stuckman,B。 在不考虑lipschitz常数的情况下,对进行了二次优化,并给出了优化理论和应用,并给出了相应的。 79,1,。 157 -181,1993

    [4] 直接实现源代码部分基于 JCOOL

    0.0简介

    提出的可以解释时间序列分类算法由两步--训练和分类。

    针对训练,通过滑动窗口离散化带标记的时间序列,并针对每一个训练类分别构建了一种。 用 TFIDF 处理包yields一类类特征向量( 每类一个矢量。 实际上,该向量的每个元素是输入时间序列的加权离散 fragment,它的权重值反映它的"类特征功率"和类特异性。

    对于分类,采用基于滑动窗口的滑动窗口离散无标签时间序列,将它的转化为一个术语频率向量,并对它的进行。 然后,在训练(。例如,表示训练类的向量)的向量之间计算出余弦相似度。 分配给具有角度最小的类的无标签输入时间序列,换句话说,的余弦值最大。 这是智能表示法中的ltc.nnn 模式。

    很容易看出哪些模式对余弦相似值有所影响,以及在训练之后,该算法自然解释。

    整个过程如下所示:

    SAX-VSM in a nutshell

    1.0建筑

    代码是用Java编写的,我使用 Maven 来构建它:

    
    $ mvn package -P single
    
    
    [INFO] Scanning for projects...
    
    
    [INFO] ------------------------------------------------------------------------
    
    
    [INFO] Building sax-vsm
    
    
    [INFO] task-segment: [package]
    
    
    ...
    
    
    [INFO] Building jar:/media/Stock/git/sax-vsm_classic.git/target/sax-vsm-0.0.1-SNAPSHOT-jar-with-dependencies.jar
    
    
    [INFO] ------------------------------------------------------------------------
    
    
    [INFO] BUILD SUCCESSFUL
    
    
    
    

    2.0运行分类器

    SAXVSMClassifier 从 命令行 运行;不带参数运行它可以打印用法帮助。 以下是运行 gun/点数据集的sax vsm的跟踪:

    
    $ java -cp"target/sax-vsm-0.0.1-SNAPSHOT-jar-with-dependencies.jar" net.seninp.jmotif.SAXVSMClassifier 
    
    
     -train src/resources/data/Gun_Point/Gun_Point_TRAIN -test src/resources/data/Gun_Point/Gun_Point_TEST 
    
    
     -w 33 -p 17 -a 15 
    
    
    trainData classes: 2, series length: 150
    
    
     training class: 2 series: 26
    
    
     training class: 1 series: 24
    
    
    testData classes: 2, series length: 150
    
    
     test class: 2 series: 74
    
    
     test class: 1 series: 76
    
    
    classification results: strategy EXACT, window 33, PAA 17, alphabet 15, accuracy 1.00, error 0.00
    
    
    
    

    3.0运行参数采样器( 优化器)

    带 SAX --的符号离散化算法--的第一步需要用户指定 hyperparameters。 不幸的是,他们的最佳选择并不简单。 我们提出使用划分矩形优化方案来加速最优参数值的选择。

    代码实现了直接采样器,可以从 命令行 调用。 下面是对枪/点数据集运行采样器的跟踪。 这个数据集中的序列长度为 150,因此我定义滑动窗口范围为 [10-150],PAA大小为 [5-75],字母表 [2-18] 为:

    
    $ java -jar target/sax-vsm-0.0.1-SNAPSHOT-jar-with-dependencies.jar 
    
    
     -train src/resources/data/Gun_Point/Gun_Point_TRAIN -test src/resources/data/Gun_Point/Gun_Point_TEST 
    
    
     -wmin 10 -wmax 150 -pmin 5 -pmax 75 -amin 2 -amax 18 --hold_out 1 -i 3
    
    
    trainData classes: 2, series length: 150
    
    
     training class: 2 series: 26
    
    
     training class: 1 series: 24
    
    
    testData classes: 2, series length: 150
    
    
     test class: 2 series: 74
    
    
     test class: 1 series: 76
    
    
    running sampling for MINDIST strategy...
    
    
     iteration: 0, minimal value 0.18 at 80, 40, 10
    
    
     iteration: 1, minimal value 0.04 at 80, 17, 10
    
    
     iteration: 2, minimal value 0.04 at 80, 17, 10
    
    
    min CV error 0.04 reached at [80, 17, 10], will use Params [windowSize=80, paaSize=17, alphabetSize=10, nThreshold=0.01, nrStartegy=MINDIST]
    
    
    running sampling for EXACT strategy...
    
    
     iteration: 0, minimal value 0.0 at 80, 40, 10
    
    
     iteration: 1, minimal value 0.0 at 80, 40, 10
    
    
     iteration: 2, minimal value 0.0 at 80, 40, 10
    
    
    min CV error 0.00 reached at [80, 40, 10], [33, 17, 15], will use Params [windowSize=33, paaSize=17, alphabetSize=15, nThreshold=0.01, nrStartegy=EXACT]
    
    
    running sampling for NONE strategy...
    
    
     iteration: 0, minimal value 0.0 at 80, 40, 10
    
    
     iteration: 1, minimal value 0.0 at 80, 40, 10
    
    
     iteration: 2, minimal value 0.0 at 80, 40, 10
    
    
    min CV error 0.00 reached at [80, 40, 10], [64, 40, 10], [33, 17, 15], will use Params [windowSize=33, paaSize=17, alphabetSize=15, nThreshold=0.01, nrStartegy=NONE]
    
    
    classification results: strategy MINDIST, window 80, PAA 17, alphabet 10, accuracy 0.92667, error 0.07333
    
    
    classification results: strategy EXACT, window 33, PAA 17, alphabet 15, accuracy 1.00, error 0.00
    
    
    classification results: strategy NONE, window 33, PAA 17, alphabet 15, accuracy 0.97333, error 0.02667
    
    
    
    

    就像我们的工作所示,与网格搜索相比,直接提供了显著的加速。 下面是SyntheticControl数据集直接驱动参数优化的说明。 左侧面板显示在空间中直接采样的所有点 PAA ∗ W ndow ∗ Alphabet :红点对应于高误差值,而绿色点对应于交叉验证实验中的低误差值。 注意 W=42 ( 最佳值是) 中绿色点的浓度。 中间面板显示了所有超立方体切片的全部磅点的分类误差映射,当W=42出现在 slice slice。 右面板显示了当参数搜索优化时相同切片的分类误差图,用点( 例如,densily采样切片的速度为 10X ) 点的采样找到最优解( P=8,A=4 )。

    An example of the DiRect sampler run

    4.0可以解释分类

    名为 SAXVSMPatternExplorer的类打印最显著的类特征模式。它们的权重和包含这些属性的时间序列。 best_words_heat.R 脚本允许 plot。 以下是枪械/点数据的示例:

    An example of class-characteristic patterns localization in Gun/Point data

    注意,由方法突出显示的时间序列范围与独特的类特征相对应: 类枪是针对支杆检索和目标的最大特征,具有'超调'现象和简单( 与枪相比) 运动的特点。

    5.0注释

    注意,测试数据的最佳参数选择是对应于最短滑动窗口的参数集。

    还要注意,代码实现了可以计算 TF ( 术语频率值)的5种方法:

    
    double tfValue = Math.log(1.0D + Integer.valueOf(wordInBagFrequency).doubleValue());
    
    
    //double tfValue = 1.0D + Math.log(Integer.valueOf(wordInBagFrequency).doubleValue());
    
    
    //double tfValue = normalizedTF(bag, word.getKey());
    
    
    //double tfValue = augmentedTF(bag, word.getKey());
    
    
    //double tfValue = logAveTF(bag, word.getKey());
    
    
    
    

    对于许多数据集,这些结果的准确性非常差。

    标准化阈值( 用于SAX离散化) 也是非常重要的隐藏参数 --,从 0.001到 0.01可以显著改变数据的分类精度。

    最后,注意,在分类过程中计算余弦相似度时,所有类的值可能会相同。 在这种情况下,当前的实现认为时间序列是 missclassified,但你可以能希望将它的分配给它的中的一个类。

    6.0分类精度表

    下表是在使用直接驱动参数优化方案时自动获得的。 注意,最小的CV误差与许多参数组合相同,采取最小滑窗选择参数集。

    数据集类长度欧几里德 1NN DTW 1NN sax向量空间
    50words502700.36920.30990.3736
    Adiac371760.38870.3960.4169
    箭头3495-6250.50290.53140.3429
    ARSim25000.48900.40350.4405
    牛肉54700.46670.50000.2333
    CBF31280.14780.00330.0044
    ChlorineConcentration31660.35000.35160.3354
    CinC_ECG_torso41,6390.10290.34930.2913
    Coffee22860.25000.17860.0000
    蟋蟀23080.05100.01020.0910
    Cricket_X123000.42560.22310.3077
    Cricket_Y123000.35640.20770.3180
    Cricket_Z123000.37950.20770.2974
    DiatomSizeReduction43450.06540.03270.1209
    地震25120.30220.2950.2518
    ECG2002960.12000.23000.1400
    ECGFiveDays21360.20330.23230.0012
    ElectricDevices7960.45590.32980.3739
    FaceAll141310.28640.19230.2450
    FaceFour43500.21590.17050.11364
    FacesUCR141310.23070.09510.1088
    小鱼74630.21710.16570.0171
    FordA25000.31360.27580.18561
    FordB25000.40370.34070.3309
    以枪口方式21500.08670.09330.0133
    HandOutlines22,7090.13780.11890.0703
    触觉51,0920.62990.62340.5844
    InlineSkate71,8820.65820.61640.5927
    ItalyPowerDemand2240.04470.04960.0894
    Lighting226370.24590.13110.2131
    Lighting773190.42470.27400.3973
    MALLAT81,0240.08570.06610.1992
    槌锤82560.03460.02360.0351
    MedicalImages10990.31580.26320.5158
    MoteStrain2840.12140.16530.1246
    NonInvasiveFetalECG_Thorax1427500.17100.20970.2921
    OliveOil45700.13330.13330.1333
    OSULeaf64270.48350.40910.0744
    Passgraph23640.37400.29010.3053
    屏蔽31,1790.13950.13950.1085
    SonyAIBORobotSurface2700.30450.27450.3062
    SonyAIBORobotSurfaceII2650.14060.16890.08919
    StarLightCurves31,0240.15120.20800.0772
    SwedishLeaf151290.21120.05030.2784
    符号63980.10050.00670.1085
    SyntheticControl6600.12000.00000.0167
    跟踪42750.24000.00000.0000
    Two_Patterns41280.09330.09570.0040
    TwoLeadECG2820.25290.09570.0141
    uWaveGestureLibrary_X83150.2607480.2724730.3230
    uWaveGestureLibrary_Y83150.3383580.3659970.3638
    uWaveGestureLibrary_Z83150.3503630.34170.3565
    晶圆21520.00450.02010.0010
    WordsSynonyms252700.38240.35110.4404
    瑜珈24260.16970.16370.1510

    Cite please!

    使用Aloha制作的

    Made with Aloha!


    WEB  vis  REL  网站  Public  Detail  
    相关文章