天天看点

A sampling method for you all:RWO SAMPLING

public static double[][] generatesample(double[] vector,int k){
	double ave=0.0;
	
	for (int i = 0; i < vector.length; i++) {
		ave+=vector[i];
	}
	ave=ave/vector.length;
	double fang=0;
	for (int i = 0; i < vector.length; i++) {
		fang+=(vector[i]-ave)*(vector[i]-ave);
	}
	fang=fang/vector.length;
	fang=Math.sqrt(fang);
	
	int m=vector.length;
	Random random=new Random();
	double[][] re=new double[k][m];
	for (int i = 0; i < k; i++) {
		for (int j = 0; j < m; j++) {
			double gs=random.nextGaussian();
			re[i][j]=vector[j]-(fang/(Math.sqrt(m)))*gs;
		}
	}
	return re;
	
	
}
           

VECTOR[] : the vector that you want to over sampling

k: the number to generate