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

📄 timedivision.java

📁 用于multivariate时间序列分类
💻 JAVA
字号:
/** * Another "hack class" that will be used to test how well a Naive Bayes  * does on straight time division.  *  * @author Waleed Kadous * @version $Id: TimeDivision.java,v 1.1.1.1 2002/06/28 07:36:16 waleed Exp $ */package tclass;   import tclass.util.*; import tclass.learnalg.*; import java.io.*; // Divides each channel into 10 equal values and then averages them. // A useful baseline for comparison. I'm hoping that this one does not work// too well. But I bet you it will.public class TimeDivision {    DomDesc domDesc;     int numDivs;     TimeDivision(DomDesc d, int numDivs){	domDesc = d; 	this.numDivs = numDivs;     }    AttDescVecI makeDescription(){	AttDescVec adv = new AttDescVec(); 	int numChans = domDesc.numChans(); 	DataTypeMgr dtm = DataTypeMgr.getInstance(); 	for(int i=0; i < numChans; i++){	    String chanName = domDesc.getChannel(i).getName(); 	    for(int j=0; j < numDivs; j++){				DataTypeI dt = dtm.getClone("continuous"); 		adv.add(new AttDesc(chanName +"_"+j, dt)); 	    }	}	// Debug.dp(Debug.PROGRESS, "Returning ADV as: " + adv); 	return adv;     }        StreamAttValI convert(StreamI stream){	int numChans = domDesc.numChans(); 	StreamAttVal retval = new StreamAttVal(numDivs*numChans); 	for(int i=0; i < numChans; i++){	    int baseIndex = i*numDivs; 	    ChannelI thisChannel = stream.chanAt(i);	    int numFrames = thisChannel.numFrames(); 	    int currentPos = 0; 	    for(int j=0; j < numDivs; j++){		float sum=0; 		int count=0; 		int stop = numFrames*(j+1)/numDivs; 		for(int k = currentPos; k < stop ; k++){		    sum += thisChannel.valAt(k); 		    count++; 		    currentPos++; 		}		retval.setAtt(baseIndex+j,sum/count); 	    }	}	return retval;     }    ClassStreamAttValVecI timeDivide(ClassStreamVecI input){	ClassStreamAttValVecI retval = new ClassStreamAttValVec(); 	retval.setClassVec(input.getClassVec()); 	StreamAttValVec outputData = new StreamAttValVec(); 	StreamVecI inputData = input.getStreamVec(); 	outputData.setDescription(makeDescription()); 	int numStreams = input.size(); 	for(int i=0; i < numStreams; i++){	    StreamAttValI savi = convert(inputData.elAt(i));	    // Debug.dp(Debug.PROGRESS, "Added: " + savi); 	    outputData.add(savi); 	    	}	retval.setStreamAttValVec(outputData); 	return retval;     }}

⌨️ 快捷键说明

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