如何在Java中进行替换采样时提高运行速度?

时间:2017-03-23 06:46:28

标签: java matrix bootstrapping sampling

我已经处理了数据中大约有超过一百万行的表格数据,它只包含一列。

我尝试使用bootstrap方法,也称为传统的采样方法替换。

由于bootstrap方法只是用替换方法对填充中的值进行采样,因此我以简单的方式编写了如下代码。

public static double[] inelegantSampleWithReplacement(double []someArray,int howmany){
        double result[] = new double[NUMBER_OF_ROWS];
        for(int i=0;i<howmany;++i){
            result[i] =  someArray[(int)(someArray.length * Math.random())];
        }
        return result;
    }

它运行良好,幸运的是,对于具有一百万行的数据,不需要太多时间。对于一个有一百万行的矩阵花了一分钟。

我正在寻找使代码更快的采样方法,因为我将面对容易出现数十亿行的大数据。

正如您所看到的,使用替换进行采样是一种非常直接的方法,我按上述方法编写代码。我试图搜索其他复杂版本的bootstrap并找到了博客(http://www.inquidia.com/news-and-info/solution-bootstrapping-big-data-environments-how-sample-replacement-using-sampling)。我按照博客制作了代码,但结果比上面的代码差。

你有什么好主意可以增加上述bootstrap方法的运行时间吗?

0 个答案:

没有答案