您的位置:首页 > 新闻 > 资讯 > JAVA中的多项式回归

JAVA中的多项式回归

2024/10/11 21:27:42 来源:https://blog.csdn.net/u012440725/article/details/140495975  浏览:    关键词:JAVA中的多项式回归
  某天在摸鱼的焱童鞋写,被领导抓取给其他部门做一个c#平台功能的迁移工作,不用1天基本框架都迁移完毕,有余下:c#的回归分析和out参数方法 需要新增使用gpt了解了可以用commons-math3中的相关方法来模拟c#中mathNet库里的fix方法,java没有out参数,使用相关数组进行转化,步骤如下1.导入依赖

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-math3</artifactId><version>3.6.1</version></dependency>
2.相关代码
public static Double[] PolyFitAndEvaluate(Double[] x, Double[] y, int degree, Double[] para) {WeightedObservedPoints points = new WeightedObservedPoints();for (int i = 0; i < x.length; i++) {points.add(x[i], y[i]);}PolynomialCurveFitter fitter = PolynomialCurveFitter.create(degree);double[] coefficients = fitter.fit(points.toList());// 将 coefficients 数组转换为 Double 类型并复制到 para 数组中for (int i = 0; i < coefficients.length; i++) {para[i] = coefficients[i];}// 创建 PolynomialFunction 对象PolynomialFunction polynomialFunction = new PolynomialFunction(coefficients);// 评估多项式Double[] y0 = new Double[x.length];for (int i = 0; i < x.length; i++) {y0[i] = polynomialFunction.value(x[i]);}return y0;
}

3.测试

测试数据: public static void main(String[] args) {Double[] x = { 1d, 2d, 3d };Double[] y = { 2d, 4d, 6d };int degree = 2;Double[] para = new Double[degree + 1];Double[] y0 = PolyFitAndEvaluate(x, y, degree, para);for (double val : y0) {System.out.println(val);}// 输出 para 数组for (double val : para) {System.out.println(val);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com