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