Guest User

Untitled

a guest
Mar 18th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. private PolynomialFunction getPolynomialFitter(List<List<Double>> pointlist) {
  2. final PolynomialCurveFitter fitter = PolynomialCurveFitter.create(2);
  3. final WeightedObservedPoints obs = new WeightedObservedPoints();
  4. for (List<Double> point : pointlist) {
  5. obs.add(point.get(0), point.get(1));
  6. }
  7.  
  8. double[] fit = fitter.fit(obs.toList());
  9. System.out.printf("nCoefficient %f, %f, %f", fit[0], fit[1], fit[2]);
  10. final PolynomialFunction fitted = new PolynomialFunction(fit);
  11. return fitted;
  12. }
  13. private double getRSquare(PolynomialFunction fitter, List<List<Double>> pointList) {
  14. final double[] coefficients = fitter.getCoefficients();
  15. double[] predictedValues = new double[pointList.size()];
  16. double residualSumOfSquares = 0;
  17. final DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics();
  18. for (int i=0; i< pointList.size(); i++) {
  19. predictedValues[i] = predict(coefficients, pointList.get(i).get(0));
  20. double actualVal = pointList.get(i).get(1);
  21. double t = Math.pow((predictedValues[i] - actualVal), 2);
  22. residualSumOfSquares += t;
  23. descriptiveStatistics.addValue(actualVal);
  24. }
  25. final double avgActualValues = descriptiveStatistics.getMean();
  26. double totalSumOfSquares = 0;
  27. for (int i=0; i<pointList.size(); i++) {
  28. totalSumOfSquares += Math.pow( (predictedValues[i] - avgActualValues),2);
  29. }
  30. return 1.0 - (residualSumOfSquares/totalSumOfSquares);
  31. }
  32. final PolynomialFunction polynomial = getPolynomialFitter(trainData);
  33. System.out.printf("nPolynimailCurveFitter R-Square %f", getRSquare(polynomial, trainData));
Add Comment
Please, Sign In to add comment