Передача значений из CSV-файла в переменную Apache OLSMultiLinearRegression X

Я пытаюсь запустить регрессию OLS, я передаю параметр для обеих переменных Y, X, поскольку это многолинейная регрессия. Я использую Apache OLSMultiLinearRegression api. Он работает нормально, но я еще не смог передать переменные X, это его несколько переменных. Любой способ обойти передачу переменных?

@Component
public class AppRunner implements CommandLineRunner{
    private static final String datafile = "/path/to/datafile.csv";
    @Override
    public void run(String... args) throws Exception {
        buildModel(datafile, 2304);
    }

    public static OLSMultipleLinearRegression buildModel( String data, int SIZE ) throws IOException, NumberFormatException, CsvValidationException {

        double[] Y = new double[SIZE];
        double[][] X = new double[SIZE][];
        CSVReader csvReader = null;
        try {
            Reader reader = Files.newBufferedReader(Paths.get(data).toRealPath());
            csvReader = new CSVReader(reader);

            String[] nextRecord;
            int index=0;
            while ((nextRecord = csvReader.readNext()) != null) {
                String tokens = nextRecord[1];
                Y[index] = Double.parseDouble(nextRecord[0]);
                X[0] = new double[]{Double.parseDouble(nextRecord[1])};

                System.out.println("Shoe : " + Y[index]);
                System.out.println("height : " + X[0]);
                System.out.println("length : " + nextRecord[2]);
                System.out.println("color : " + nextRecord[3]);
                System.out.println("==========================");
            }

        } finally {
            csvReader.close();
        }
        OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
        regression.newSampleData(Y, X);
        regression.setNoIntercept(false);
        System.out.println(regression);
        return regression;
    }
}

Он отлично работает, передавая переменную Y из файла csv. Когда я передал X, он передает идентификатор, а не реальное значение.

0 ответов

Другие вопросы по тегам