⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 segmentsequence.java

📁 用于multivariate时间序列分类
💻 JAVA
字号:
package tclass.pep;   import tclass.*; import tclass.util.*; import java.util.*; public class SegmentSequence implements Cloneable {    private static final float ln2 = (float) Math.log(2.0);     private Vector segs = new Vector();     private float numBitsLines=0;    private int length = 0;     int getLength(){        return length;     }        void add(Segment s){        segs.addElement(s);        length = s.endFrame;                                                                                  }    /**     * Clone the current object.      *     */     public Object clone()    {        try {            SegmentSequence retval = (SegmentSequence) super.clone();             // But now we add our own magic to fix up the little problem ...            retval.segs = (Vector) segs.clone();             return retval;         }        catch (CloneNotSupportedException e){            // Can't happen, or so the java programming book says            throw new InternalError(e.toString());         }    }    /** Compute the number of bits used in a segment sequence.      * The formula is:      *     * L_ppm(y) = log2(n-1) + log2(Choose(n-1,k)) + sum{i=0..k} Lc(y_i)     *      * This is from Manganaris, eqn 3.6 p 31.      *     * In our case:      * n = endFrame     * k = number of segments = size();      * Lc(y_i) = elAt(i).numBits();      */    public float getNumBits(){        int size = size();         float numBitsSegs = 0;         float numBitsPPM;         for(int i=0; i < size; i++){            numBitsSegs += elAt(i).getNumBits();         }        numBitsPPM = (float) (Math.log(length-1)/FastMath.ln2             + FastMath.log2Choose(length-1,size()));        Debug.dp(Debug.EVERYTHING, "length = " + length + " size = " + size + " l2c = "                 + FastMath.log2Choose(length,size()));        return (numBitsSegs + numBitsPPM);             }        public String toString(){        int size = size();         String retval = "SegSeq has " + size + " segments. Total bits: " + getNumBits() +". These  are: ";         for(int i=0; i < size; i++){            retval += elAt(i).toString() +"\n";         }        return retval;     }    Segment elAt(int i){        return (Segment) segs.elementAt(i);     }    float getTotalError(float sd){        float x = 0.1f;         float totalError = 0;         for(int i=0; i < size(); i++){            totalError += elAt(i).getTotalError();         }        return (float) Math.log(totalError/sd)+x*size();     }        int size(){        return segs.size();     }    EventVec toEventVec(){        EventVec retval = new EventVec();         int size = size();         for(int i=0; i < size; i++){            retval.add(new LineEvent(elAt(i)));         }        return retval;     }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -