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
本文介绍了一种使用高斯分布生成向量样本的方法,详细解释了算法的实现过程,包括平均值、方差计算以及高斯随机数生成。适用于需要对现有向量进行大量采样的场景。

被折叠的 条评论
为什么被折叠?



