Как сделать интерактивную консольную версию на Java для простой модели линейной регрессии?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сделать интерактивную консольную версию на Java для простой модели линейной регрессии?

Сообщение Anonymous »

Я пытаюсь создать простую модель на Java, которая прогнозирует оценки на основе учебных часов (используя базовую формулу линейной регрессии).
Моя цель — сделать ее интерактивной, где пользователь может ввести количество часов с консоли и получить прогнозируемую оценку в качестве вывода.
Вот что я уже пробовал:

Код: Выделить всё

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;
}
}
Он работает правильно, вплоть до однократной печати прогнозируемых меток. Я ожидал, что он будет вести себя как интерактивная консоль, где после одного прогноза он снова запрашивает ввод, пока я не наберу 0 для выхода. Но сейчас это требует только одного ввода и немедленно заканчивается. Как сделать так, чтобы он снова запрашивал ввод?


Подробнее здесь: https://stackoverflow.com/questions/797 ... -regressio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»