From 08192cddf85080b25a38a582f22dbd6140599355 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Fri, 25 Oct 2024 12:59:20 +0530 Subject: [PATCH 01/15] Create LinearRegression.java --- .../machinelearning/LinearRegression.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/java/com/thealgorithms/machinelearning/LinearRegression.java diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java new file mode 100644 index 000000000000..3e40fae64942 --- /dev/null +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -0,0 +1,55 @@ +package com.thealgorithms.machinelearning; + +import java.util.ArrayList; + +class LinearRegression { + private ArrayList dependentX = new ArrayList(); + private ArrayList independentY = new ArrayList(); + private double m; + private double c; + + public LinearRegression(ArrayList dependentX, ArrayList independentY) { + this.dependentX = dependentX; + this.independentY = independentY; + this.Equate(); + } + + private double Sumation(ArrayList arr){ + double sum = 0.0; + + for(int i = 0; i < arr.size(); i++){ + sum += arr.get(i); + } + + return sum; + } + + private ArrayList MultiplyNumber(ArrayList arr1, ArrayList arr2) { + ArrayList temp = new ArrayList(); + for(int i = 0; i < arr1.size(); i++) { + temp.add((arr1.get(i) * arr2.get(i))); + } + return temp; + } + + private void Equate(){ + int n = dependentX.size(); + this.m = (n * Sumation(MultiplyNumber(independentY, dependentX)) - (Sumation(dependentX) * Sumation(independentY))); + this.m = this.m / (n * (Sumation(MultiplyNumber(dependentX, dependentX))) - (Sumation(dependentX) * Sumation(dependentX))); + + this.c = (Sumation(independentY) * Sumation(MultiplyNumber(dependentX, dependentX)) - (Sumation(dependentX) * Sumation(MultiplyNumber(independentY, dependentX)))); + this.c = this.c / (n * (Sumation(MultiplyNumber(dependentX, dependentX))) - (Sumation(dependentX) * Sumation(dependentX))); + } + + public double getM(){ + return this.m; + } + + public double getC(){ + return this.c; + } + + public double PredictForX(double x) { + return (this.m * x) + this.c; + } +} From 73ad49acf5da790d8059c1cab02b2d892f3d4245 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Fri, 25 Oct 2024 13:05:57 +0530 Subject: [PATCH 02/15] Update LinearRegression.java comments added --- .../machinelearning/LinearRegression.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java index 3e40fae64942..445ba986f6ce 100644 --- a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -2,12 +2,25 @@ import java.util.ArrayList; +/** +* Author : Gowtham Kamalasekar +* LinkedIn : https://www.linkedin.com/in/gowtham-kamalasekar/ +* +* Linear Regression Machine Learning Algorithm is a regression algorithm. +* This programs used for computing y = mx + c +* Where m is slope and c is intercept +* We can use this too predict for a given x. +*/ + class LinearRegression { private ArrayList dependentX = new ArrayList(); private ArrayList independentY = new ArrayList(); private double m; private double c; + /** + * @param : X (dependent variable), Y (independent variable) as ArrayList + */ public LinearRegression(ArrayList dependentX, ArrayList independentY) { this.dependentX = dependentX; this.independentY = independentY; From de4768ceafc81c71273d5f9f03ac0142d1122c62 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Fri, 25 Oct 2024 13:08:31 +0530 Subject: [PATCH 03/15] Create LinearRegressionTest.java --- .../machinelearning/LinearRegressionTest.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java diff --git a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java new file mode 100644 index 000000000000..f497a2e36d5e --- /dev/null +++ b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java @@ -0,0 +1,37 @@ +package com.thealgorithms.machinelearning; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; + +class LinearRegressionTest { + + @Test + void testLinearRegression() { + ArrayList dependentX = new ArrayList<>(); + ArrayList independentY = new ArrayList<>(); + + dependentX.add(1.0); + independentY.add(2.0); + dependentX.add(2.0); + independentY.add(3.0); + dependentX.add(3.0); + independentY.add(4.0); + dependentX.add(4.0); + independentY.add(5.0); + dependentX.add(5.0); + independentY.add(6.0); + + // Create LinearRegression object + LinearRegression lr = new LinearRegression(dependentX, independentY); + + // Check the slope (m) and intercept (c) + assertEquals(1.0, lr.getM(), 0.001); + assertEquals(1.0, lr.getC(), 0.001); + + // Check prediction for X = 6 + double predictedY = lr.PredictForX(6.0); + assertEquals(7.0, predictedY, 0.001); + } +} From fbf7a773ab717faedaf5cebd8ef9c7653fc3a3e6 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Mon, 28 Oct 2024 11:05:46 +0530 Subject: [PATCH 04/15] Update LinearRegression.java with clang format Clang formatted --- .../machinelearning/LinearRegression.java | 100 +++++++++--------- 1 file changed, 51 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java index 445ba986f6ce..98f56bf768cc 100644 --- a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -3,66 +3,68 @@ import java.util.ArrayList; /** -* Author : Gowtham Kamalasekar -* LinkedIn : https://www.linkedin.com/in/gowtham-kamalasekar/ -* -* Linear Regression Machine Learning Algorithm is a regression algorithm. -* This programs used for computing y = mx + c -* Where m is slope and c is intercept -* We can use this too predict for a given x. -*/ + * Author : Gowtham Kamalasekar + * LinkedIn : https://www.linkedin.com/in/gowtham-kamalasekar/ + * + * Linear Regression Machine Learning Algorithm is a regression algorithm. + * This programs used for computing y = mx + c + * Where m is slope and c is intercept + * We can use this too predict for a given x. + */ class LinearRegression { - private ArrayList dependentX = new ArrayList(); - private ArrayList independentY = new ArrayList(); - private double m; - private double c; + private ArrayList dependentX = new ArrayList(); + private ArrayList independentY = new ArrayList(); + private double m; + private double c; - /** - * @param : X (dependent variable), Y (independent variable) as ArrayList - */ - public LinearRegression(ArrayList dependentX, ArrayList independentY) { - this.dependentX = dependentX; - this.independentY = independentY; - this.Equate(); - } - - private double Sumation(ArrayList arr){ - double sum = 0.0; + /** + * @param : X (dependent variable), Y (independent variable) as ArrayList + */ + public LinearRegression(ArrayList dependentX, + ArrayList independentY) { + this.dependentX = dependentX; + this.independentY = independentY; + this.Equate(); + } - for(int i = 0; i < arr.size(); i++){ - sum += arr.get(i); - } + private double Sumation(ArrayList arr) { + double sum = 0.0; - return sum; + for (int i = 0; i < arr.size(); i++) { + sum += arr.get(i); } - private ArrayList MultiplyNumber(ArrayList arr1, ArrayList arr2) { - ArrayList temp = new ArrayList(); - for(int i = 0; i < arr1.size(); i++) { - temp.add((arr1.get(i) * arr2.get(i))); - } - return temp; + return sum; + } + + private ArrayList MultiplyNumber(ArrayList arr1, + ArrayList arr2) { + ArrayList temp = new ArrayList(); + for (int i = 0; i < arr1.size(); i++) { + temp.add((arr1.get(i) * arr2.get(i))); } + return temp; + } - private void Equate(){ - int n = dependentX.size(); - this.m = (n * Sumation(MultiplyNumber(independentY, dependentX)) - (Sumation(dependentX) * Sumation(independentY))); - this.m = this.m / (n * (Sumation(MultiplyNumber(dependentX, dependentX))) - (Sumation(dependentX) * Sumation(dependentX))); + private void Equate() { + int n = dependentX.size(); + this.m = (n * Sumation(MultiplyNumber(independentY, dependentX)) - + (Sumation(dependentX) * Sumation(independentY))); + this.m = this.m / (n * (Sumation(MultiplyNumber(dependentX, dependentX))) - + (Sumation(dependentX) * Sumation(dependentX))); - this.c = (Sumation(independentY) * Sumation(MultiplyNumber(dependentX, dependentX)) - (Sumation(dependentX) * Sumation(MultiplyNumber(independentY, dependentX)))); - this.c = this.c / (n * (Sumation(MultiplyNumber(dependentX, dependentX))) - (Sumation(dependentX) * Sumation(dependentX))); - } + this.c = (Sumation(independentY) * + Sumation(MultiplyNumber(dependentX, dependentX)) - + (Sumation(dependentX) * + Sumation(MultiplyNumber(independentY, dependentX)))); + this.c = this.c / (n * (Sumation(MultiplyNumber(dependentX, dependentX))) - + (Sumation(dependentX) * Sumation(dependentX))); + } - public double getM(){ - return this.m; - } + public double getM() { return this.m; } - public double getC(){ - return this.c; - } + public double getC() { return this.c; } - public double PredictForX(double x) { - return (this.m * x) + this.c; - } + public double PredictForX(double x) { return (this.m * x) + this.c; } } From d1622a85f60350a70f9aa99be80520a5f492bfd0 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Mon, 28 Oct 2024 11:06:32 +0530 Subject: [PATCH 05/15] Update LinearRegressionTest.java --- .../machinelearning/LinearRegressionTest.java | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java index f497a2e36d5e..b7dfcdc35dcb 100644 --- a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java +++ b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java @@ -1,37 +1,37 @@ package com.thealgorithms.machinelearning; -import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; +import org.junit.jupiter.api.Test; class LinearRegressionTest { - @Test - void testLinearRegression() { - ArrayList dependentX = new ArrayList<>(); - ArrayList independentY = new ArrayList<>(); - - dependentX.add(1.0); - independentY.add(2.0); - dependentX.add(2.0); - independentY.add(3.0); - dependentX.add(3.0); - independentY.add(4.0); - dependentX.add(4.0); - independentY.add(5.0); - dependentX.add(5.0); - independentY.add(6.0); - - // Create LinearRegression object - LinearRegression lr = new LinearRegression(dependentX, independentY); - - // Check the slope (m) and intercept (c) - assertEquals(1.0, lr.getM(), 0.001); - assertEquals(1.0, lr.getC(), 0.001); - - // Check prediction for X = 6 - double predictedY = lr.PredictForX(6.0); - assertEquals(7.0, predictedY, 0.001); - } + @Test + void testLinearRegression() { + ArrayList dependentX = new ArrayList<>(); + ArrayList independentY = new ArrayList<>(); + + dependentX.add(1.0); + independentY.add(2.0); + dependentX.add(2.0); + independentY.add(3.0); + dependentX.add(3.0); + independentY.add(4.0); + dependentX.add(4.0); + independentY.add(5.0); + dependentX.add(5.0); + independentY.add(6.0); + + // Create LinearRegression object + LinearRegression lr = new LinearRegression(dependentX, independentY); + + // Check the slope (m) and intercept (c) + assertEquals(1.0, lr.getM(), 0.001); + assertEquals(1.0, lr.getC(), 0.001); + + // Check prediction for X = 6 + double predictedY = lr.PredictForX(6.0); + assertEquals(7.0, predictedY, 0.001); + } } From 73b35adaf51004b5bec2337b4038fcd13047a7a7 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Mon, 28 Oct 2024 11:07:30 +0530 Subject: [PATCH 06/15] Update LinearRegression.java with Wikipedia Link --- .../java/com/thealgorithms/machinelearning/LinearRegression.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java index 98f56bf768cc..8d0499f0f6ee 100644 --- a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -6,6 +6,7 @@ * Author : Gowtham Kamalasekar * LinkedIn : https://www.linkedin.com/in/gowtham-kamalasekar/ * + * Wiki : https://en.wikipedia.org/wiki/Linear_regression * Linear Regression Machine Learning Algorithm is a regression algorithm. * This programs used for computing y = mx + c * Where m is slope and c is intercept From 789c5ddbd4fe08245b414851077f6d826c329ff1 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Mon, 28 Oct 2024 11:12:54 +0530 Subject: [PATCH 07/15] Update LinearRegression.java with clang style --- .../java/com/thealgorithms/machinelearning/LinearRegression.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java index 8d0499f0f6ee..d4085dcf4e5e 100644 --- a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -1,3 +1,4 @@ + package com.thealgorithms.machinelearning; import java.util.ArrayList; From 69b33c0fadd9cfbe3c54a54fc0b260877e60af52 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Mon, 28 Oct 2024 11:13:52 +0530 Subject: [PATCH 08/15] Update LinearRegressionTest.java with clang From b2bc05ccb5f4573beeddf95aa77baacaa4e82b53 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Wed, 30 Oct 2024 10:17:07 +0530 Subject: [PATCH 09/15] Update LinearRegression.java with correct operators --- .../machinelearning/LinearRegression.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java index d4085dcf4e5e..7eb0d703591b 100644 --- a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -27,10 +27,10 @@ public LinearRegression(ArrayList dependentX, ArrayList independentY) { this.dependentX = dependentX; this.independentY = independentY; - this.Equate(); + this.equate(); } - private double Sumation(ArrayList arr) { + private double sumation(ArrayList arr) { double sum = 0.0; for (int i = 0; i < arr.size(); i++) { @@ -40,7 +40,7 @@ private double Sumation(ArrayList arr) { return sum; } - private ArrayList MultiplyNumber(ArrayList arr1, + private ArrayList multiplyNumber(ArrayList arr1, ArrayList arr2) { ArrayList temp = new ArrayList(); for (int i = 0; i < arr1.size(); i++) { @@ -49,24 +49,24 @@ private ArrayList MultiplyNumber(ArrayList arr1, return temp; } - private void Equate() { + private void equate() { int n = dependentX.size(); - this.m = (n * Sumation(MultiplyNumber(independentY, dependentX)) - - (Sumation(dependentX) * Sumation(independentY))); - this.m = this.m / (n * (Sumation(MultiplyNumber(dependentX, dependentX))) - - (Sumation(dependentX) * Sumation(dependentX))); + this.m = (n * sumation(multiplyNumber(independentY, dependentX)) + - (sumation(dependentX) * sumation(independentY))); + this.m = this.m / (n * (sumation(multiplyNumber(dependentX, dependentX))) + - (sumation(dependentX) * sumation(dependentX))); - this.c = (Sumation(independentY) * - Sumation(MultiplyNumber(dependentX, dependentX)) - - (Sumation(dependentX) * - Sumation(MultiplyNumber(independentY, dependentX)))); - this.c = this.c / (n * (Sumation(MultiplyNumber(dependentX, dependentX))) - - (Sumation(dependentX) * Sumation(dependentX))); + this.c = (sumation(independentY) + * sumation(multiplyNumber(dependentX, dependentX)) + - (sumation(dependentX) + * sumation(multiplyNumber(independentY, dependentX)))); + this.c = this.c / (n * (sumation(multiplyNumber(dependentX, dependentX))) + - (sumation(dependentX) * sumation(dependentX))); } public double getM() { return this.m; } public double getC() { return this.c; } - public double PredictForX(double x) { return (this.m * x) + this.c; } + public double predictForX(double x) { return (this.m * x) + this.c; } } From 225cbea69f889771852c8d6162aa9c504ddebad1 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Wed, 30 Oct 2024 10:20:42 +0530 Subject: [PATCH 10/15] Update LinearRegressionTest.java with method name --- .../com/thealgorithms/machinelearning/LinearRegressionTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java index b7dfcdc35dcb..a38ae13ccf1f 100644 --- a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java +++ b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java @@ -31,7 +31,7 @@ void testLinearRegression() { assertEquals(1.0, lr.getC(), 0.001); // Check prediction for X = 6 - double predictedY = lr.PredictForX(6.0); + double predictedY = lr.predictForX(6.0); assertEquals(7.0, predictedY, 0.001); } } From 564e8b8a28e2a407cf26d7d990a5e1d8faaec90b Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Wed, 30 Oct 2024 10:27:49 +0530 Subject: [PATCH 11/15] Update LinearRegression.java with constructor modifier --- .../com/thealgorithms/machinelearning/LinearRegression.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java index 7eb0d703591b..f2137540a775 100644 --- a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -23,7 +23,7 @@ class LinearRegression { /** * @param : X (dependent variable), Y (independent variable) as ArrayList */ - public LinearRegression(ArrayList dependentX, + LinearRegression(ArrayList dependentX, ArrayList independentY) { this.dependentX = dependentX; this.independentY = independentY; From 51021addee8ec5b74aae8174c4178bccf40272f5 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Wed, 30 Oct 2024 10:40:24 +0530 Subject: [PATCH 12/15] Update LinearRegression.java formats --- .../machinelearning/LinearRegression.java | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java index f2137540a775..febce664077c 100644 --- a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -2,6 +2,7 @@ package com.thealgorithms.machinelearning; import java.util.ArrayList; +import java.util.List; /** * Author : Gowtham Kamalasekar @@ -15,22 +16,21 @@ */ class LinearRegression { - private ArrayList dependentX = new ArrayList(); - private ArrayList independentY = new ArrayList(); - private double m; - private double c; + private List dependentX = new ArrayList(); + private List independentY = new ArrayList(); + private double m; + private double c; /** * @param : X (dependent variable), Y (independent variable) as ArrayList */ - LinearRegression(ArrayList dependentX, - ArrayList independentY) { + LinearRegression(List dependentX, List independentY) { this.dependentX = dependentX; this.independentY = independentY; this.equate(); } - private double sumation(ArrayList arr) { + private double sumation(List arr) { double sum = 0.0; for (int i = 0; i < arr.size(); i++) { @@ -40,9 +40,8 @@ private double sumation(ArrayList arr) { return sum; } - private ArrayList multiplyNumber(ArrayList arr1, - ArrayList arr2) { - ArrayList temp = new ArrayList(); + private List multiplyNumber(List arr1, List arr2) { + List temp = new ArrayList(); for (int i = 0; i < arr1.size(); i++) { temp.add((arr1.get(i) * arr2.get(i))); } @@ -51,22 +50,22 @@ private ArrayList multiplyNumber(ArrayList arr1, private void equate() { int n = dependentX.size(); - this.m = (n * sumation(multiplyNumber(independentY, dependentX)) - - (sumation(dependentX) * sumation(independentY))); - this.m = this.m / (n * (sumation(multiplyNumber(dependentX, dependentX))) - - (sumation(dependentX) * sumation(dependentX))); + this.m = (n * sumation(multiplyNumber(independentY, dependentX)) - (sumation(dependentX) * sumation(independentY))); + this.m = this.m / (n * (sumation(multiplyNumber(dependentX, dependentX))) - (sumation(dependentX) * sumation(dependentX))); - this.c = (sumation(independentY) - * sumation(multiplyNumber(dependentX, dependentX)) - - (sumation(dependentX) - * sumation(multiplyNumber(independentY, dependentX)))); - this.c = this.c / (n * (sumation(multiplyNumber(dependentX, dependentX))) - - (sumation(dependentX) * sumation(dependentX))); + this.c = (sumation(independentY) * sumation(multiplyNumber(dependentX, dependentX)) - (sumation(dependentX) * sumation(multiplyNumber(independentY, dependentX)))); + this.c = this.c / (n * (sumation(multiplyNumber(dependentX, dependentX))) - (sumation(dependentX) * sumation(dependentX))); } - public double getM() { return this.m; } + public double getM() { + return this.m; + } - public double getC() { return this.c; } + public double getC() { + return this.c; + } - public double predictForX(double x) { return (this.m * x) + this.c; } + public double predictForX(double x) { + return (this.m * x) + this.c; + } } From c09c360b951429be1beb9b734687a99212f9946e Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Wed, 30 Oct 2024 10:42:13 +0530 Subject: [PATCH 13/15] Update LinearRegressionTest.java formats --- .../machinelearning/LinearRegressionTest.java | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java index a38ae13ccf1f..9a0f230cc6e5 100644 --- a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java +++ b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java @@ -7,31 +7,31 @@ class LinearRegressionTest { - @Test - void testLinearRegression() { - ArrayList dependentX = new ArrayList<>(); - ArrayList independentY = new ArrayList<>(); - - dependentX.add(1.0); - independentY.add(2.0); - dependentX.add(2.0); - independentY.add(3.0); - dependentX.add(3.0); - independentY.add(4.0); - dependentX.add(4.0); - independentY.add(5.0); - dependentX.add(5.0); - independentY.add(6.0); - - // Create LinearRegression object - LinearRegression lr = new LinearRegression(dependentX, independentY); - - // Check the slope (m) and intercept (c) - assertEquals(1.0, lr.getM(), 0.001); - assertEquals(1.0, lr.getC(), 0.001); - - // Check prediction for X = 6 - double predictedY = lr.predictForX(6.0); - assertEquals(7.0, predictedY, 0.001); - } + @Test + void testLinearRegression() { + ArrayList dependentX = new ArrayList<>(); + ArrayList independentY = new ArrayList<>(); + + dependentX.add(1.0); + independentY.add(2.0); + dependentX.add(2.0); + independentY.add(3.0); + dependentX.add(3.0); + independentY.add(4.0); + dependentX.add(4.0); + independentY.add(5.0); + dependentX.add(5.0); + independentY.add(6.0); + + // Create LinearRegression object + LinearRegression lr = new LinearRegression(dependentX, independentY); + + // Check the slope (m) and intercept (c) + assertEquals(1.0, lr.getM(), 0.001); + assertEquals(1.0, lr.getC(), 0.001); + + // Check prediction for X = 6 + double predictedY = lr.predictForX(6.0); + assertEquals(7.0, predictedY, 0.001); + } } From 2ab0a1fbb179f326df74e4032332258a5269c1c5 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Wed, 30 Oct 2024 12:08:01 +0530 Subject: [PATCH 14/15] Update LinearRegression.java acc to clang --- .../machinelearning/LinearRegression.java | 79 ++++++++++--------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java index febce664077c..0f986ebd5ad7 100644 --- a/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java +++ b/src/main/java/com/thealgorithms/machinelearning/LinearRegression.java @@ -16,56 +16,57 @@ */ class LinearRegression { - private List dependentX = new ArrayList(); - private List independentY = new ArrayList(); + private ArrayList dependentX = new ArrayList(); + private ArrayList independentY = new ArrayList(); private double m; private double c; - /** - * @param : X (dependent variable), Y (independent variable) as ArrayList - */ - LinearRegression(List dependentX, List independentY) { - this.dependentX = dependentX; - this.independentY = independentY; - this.equate(); - } + /** + * @param : X (dependent variable), Y (independent variable) as ArrayList + */ + LinearRegression(ArrayList dependentX, ArrayList independentY) { + this.dependentX = dependentX; + this.independentY = independentY; + this.equate(); + } - private double sumation(List arr) { - double sum = 0.0; + private double sumation(List arr) { + double sum = 0.0; - for (int i = 0; i < arr.size(); i++) { - sum += arr.get(i); - } + for (int i = 0; i < arr.size(); i++) { + sum += arr.get(i); + } - return sum; - } + return sum; + } - private List multiplyNumber(List arr1, List arr2) { - List temp = new ArrayList(); - for (int i = 0; i < arr1.size(); i++) { - temp.add((arr1.get(i) * arr2.get(i))); + private List multiplyNumber(List arr1, List arr2) { + List temp = new ArrayList(); + for (int i = 0; i < arr1.size(); i++) { + temp.add((arr1.get(i) * arr2.get(i))); + } + return temp; } - return temp; - } - private void equate() { - int n = dependentX.size(); - this.m = (n * sumation(multiplyNumber(independentY, dependentX)) - (sumation(dependentX) * sumation(independentY))); - this.m = this.m / (n * (sumation(multiplyNumber(dependentX, dependentX))) - (sumation(dependentX) * sumation(dependentX))); + private void equate() { + int n = dependentX.size(); + this.m = (n * sumation(multiplyNumber(independentY, dependentX)) - (sumation(dependentX) * sumation(independentY))); + this.m = this.m / (n * (sumation(multiplyNumber(dependentX, dependentX))) - (sumation(dependentX) * sumation(dependentX))); - this.c = (sumation(independentY) * sumation(multiplyNumber(dependentX, dependentX)) - (sumation(dependentX) * sumation(multiplyNumber(independentY, dependentX)))); - this.c = this.c / (n * (sumation(multiplyNumber(dependentX, dependentX))) - (sumation(dependentX) * sumation(dependentX))); - } + this.c = (sumation(independentY) * sumation(multiplyNumber(dependentX, dependentX)) - (sumation(dependentX) * sumation(multiplyNumber(independentY, dependentX)))); + this.c = this.c / (n * (sumation(multiplyNumber(dependentX, dependentX))) - (sumation(dependentX) * sumation(dependentX))); + } - public double getM() { - return this.m; - } + public double getM() { + return this.m; + } - public double getC() { - return this.c; - } + public double getC() { + return this.c; + } - public double predictForX(double x) { - return (this.m * x) + this.c; - } + public double predictForX(double x) { + return (this.m * x) + this.c; + } } + From fd339e7cca13598c06c02ed28b833054453f8580 Mon Sep 17 00:00:00 2001 From: Gowtham Kamalasekar Date: Wed, 30 Oct 2024 12:09:00 +0530 Subject: [PATCH 15/15] Update LinearRegressionTest.java with clang format --- .../machinelearning/LinearRegressionTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java index 9a0f230cc6e5..c16d367b0737 100644 --- a/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java +++ b/src/test/java/com/thealgorithms/machinelearning/LinearRegressionTest.java @@ -11,7 +11,7 @@ class LinearRegressionTest { void testLinearRegression() { ArrayList dependentX = new ArrayList<>(); ArrayList independentY = new ArrayList<>(); - + dependentX.add(1.0); independentY.add(2.0); dependentX.add(2.0); @@ -22,14 +22,14 @@ void testLinearRegression() { independentY.add(5.0); dependentX.add(5.0); independentY.add(6.0); - + // Create LinearRegression object LinearRegression lr = new LinearRegression(dependentX, independentY); - + // Check the slope (m) and intercept (c) assertEquals(1.0, lr.getM(), 0.001); assertEquals(1.0, lr.getC(), 0.001); - + // Check prediction for X = 6 double predictedY = lr.predictForX(6.0); assertEquals(7.0, predictedY, 0.001);