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