Моя цель — сделать ее интерактивной, где пользователь может ввести количество часов с консоли и получить прогнозируемую оценку в качестве вывода.
Вот что я уже пробовал:
Код: Выделить всё
import java.util.Scanner;
public class SimpleModel {
public static void main(String[] args) {
double[] hours = {2, 4, 6, 8, 10};
double[] marks = {30, 50, 65, 80, 95};
double meanX = mean(hours);
double meanY = mean(marks);
double b1 = calculateSlope(hours, marks, meanX, meanY);
double b0 = meanY - (b1 * meanX);
System.out.printf("Equation: marks = %.2f + %.2f * hours%n", b0, b1);
Scanner sc = new Scanner(System.in);
System.out.print("Enter study hours: ");
double studyHours = sc.nextDouble();
double predictedMarks = b0 + b1 * studyHours;
System.out.printf("Predicted Marks for %.1f hours = %.2f%n", studyHours, predictedMarks);
sc.close();
}
public static double mean(double[] arr) {
double sum = 0;
for (double v : arr) sum += v;
return sum / arr.length;
}
public static double calculateSlope(double[] x, double[] y, double mx, double my) {
double num = 0, den = 0;
for (int i = 0; i < x.length; i++) {
num += (x[i] - mx) * (y[i] - my);
den += (x[i] - mx) * (x[i] - mx);
}
return num / den;
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -regressio
Мобильная версия