Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private PolynomialFunction getPolynomialFitter(List<List<Double>> pointlist) {
- final PolynomialCurveFitter fitter = PolynomialCurveFitter.create(2);
- final WeightedObservedPoints obs = new WeightedObservedPoints();
- for (List<Double> point : pointlist) {
- obs.add(point.get(0), point.get(1));
- }
- double[] fit = fitter.fit(obs.toList());
- System.out.printf("nCoefficient %f, %f, %f", fit[0], fit[1], fit[2]);
- final PolynomialFunction fitted = new PolynomialFunction(fit);
- return fitted;
- }
- private double getRSquare(PolynomialFunction fitter, List<List<Double>> pointList) {
- final double[] coefficients = fitter.getCoefficients();
- double[] predictedValues = new double[pointList.size()];
- double residualSumOfSquares = 0;
- final DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics();
- for (int i=0; i< pointList.size(); i++) {
- predictedValues[i] = predict(coefficients, pointList.get(i).get(0));
- double actualVal = pointList.get(i).get(1);
- double t = Math.pow((predictedValues[i] - actualVal), 2);
- residualSumOfSquares += t;
- descriptiveStatistics.addValue(actualVal);
- }
- final double avgActualValues = descriptiveStatistics.getMean();
- double totalSumOfSquares = 0;
- for (int i=0; i<pointList.size(); i++) {
- totalSumOfSquares += Math.pow( (predictedValues[i] - avgActualValues),2);
- }
- return 1.0 - (residualSumOfSquares/totalSumOfSquares);
- }
- final PolynomialFunction polynomial = getPolynomialFitter(trainData);
- System.out.printf("nPolynimailCurveFitter R-Square %f", getRSquare(polynomial, trainData));
Add Comment
Please, Sign In to add comment