From 33266785b42f4a990c5522a6b2744b52e1084437 Mon Sep 17 00:00:00 2001 From: "@t2652009480" <2652009480@qq.com> Date: Thu, 29 Aug 2024 17:12:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E5=AD=97=E8=90=A5=E9=94=80=E5=AE=9E?= =?UTF-8?q?=E8=AE=AD=E7=AE=97=E6=B3=95=E7=AC=AC7=E8=BD=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stu/StuDigitalMarketingModelController.java | 17 ++++++++++++++++- .../util/algorithm/LogisticRegression.java | 15 +++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sztzjy/marketing/controller/stu/StuDigitalMarketingModelController.java b/src/main/java/com/sztzjy/marketing/controller/stu/StuDigitalMarketingModelController.java index 0f03920..48d72a8 100644 --- a/src/main/java/com/sztzjy/marketing/controller/stu/StuDigitalMarketingModelController.java +++ b/src/main/java/com/sztzjy/marketing/controller/stu/StuDigitalMarketingModelController.java @@ -241,7 +241,7 @@ public class StuDigitalMarketingModelController { LogisticRegression lr = new LogisticRegression(x, y); double[] coefficients = lr.fit(); - DecimalFormat df = new DecimalFormat("#.0"); + DecimalFormat df = new DecimalFormat("#.00"); RAnalysisDTO rAnalysisDTO=new RAnalysisDTO(); rAnalysisDTO.setIntercept(Double.parseDouble(df.format(coefficients[0]))); @@ -250,6 +250,21 @@ public class StuDigitalMarketingModelController { return new ResultEntity(HttpStatus.OK,"成功",rAnalysisDTO); } + @ApiOperation("回归分析--走势图") + @PostMapping("/trendChart") + @AnonymousAccess + public ResultEntity trendChart(@RequestBody LogisticDTO logisticDTO) { + double[] x = logisticDTO.getX(); + double[] y = logisticDTO.getY(); + + LogisticRegression lr = new LogisticRegression(x, y); + double[][] coefficients = lr.getCoordinatesOnLine(); + + + + return new ResultEntity(HttpStatus.OK,"成功",coefficients); + } + @ApiOperation("线性回归/逻辑回归--预测") @PostMapping("/prediction") diff --git a/src/main/java/com/sztzjy/marketing/util/algorithm/LogisticRegression.java b/src/main/java/com/sztzjy/marketing/util/algorithm/LogisticRegression.java index 656e449..165bc59 100644 --- a/src/main/java/com/sztzjy/marketing/util/algorithm/LogisticRegression.java +++ b/src/main/java/com/sztzjy/marketing/util/algorithm/LogisticRegression.java @@ -1,5 +1,7 @@ package com.sztzjy.marketing.util.algorithm; +import java.util.Arrays; + public class LogisticRegression { private double[] x; @@ -39,6 +41,19 @@ public class LogisticRegression { return new double[] { intercept, slope }; } + public double[][] getCoordinatesOnLine() { + double[] parameters = fit(); + double intercept = parameters[0]; + double slope = parameters[1]; + + double[][] coordinates = new double[x.length][2]; + for (int i = 0; i < x.length; i++) { + coordinates[i][0] = x[i]; + coordinates[i][1] = slope * x[i] + intercept; + } + + return coordinates; + } } \ No newline at end of file