/
inur
/
one_neuron
Обзор
Документация
Войти
/
inur
/
one_neuron
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/ru/neuron/weka/WekaKmToMiles.java
63 строки
3 KB
Ilshat Nurgalimov
neuron
13 апр 2025, 18:57
13 апр 2025, 18:57
5a66525
Код
Авторство
О чём код?
package ru.neuron.weka; import ru.neuron.deeplearning4j.DL4JKmToMiles; import weka.classifiers.functions.LinearRegression; import weka.core.Attribute; import weka.core.DenseInstance; import weka.core.Instances; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.logging.Logger; import static ru.neuron.CONST.EXIT; import static ru.neuron.CONST.WEKA_DATA; public class WekaKmToMiles { private static final Logger LOGGER = Logger.getLogger(WekaKmToMiles.class.getName()); public static void main(String[] args) throws Exception { // Создаем атрибуты: вход (км) и выход (мили) Attribute kmAttr = new Attribute("Kilometers"); Attribute milesAttr = new Attribute("Miles"); ArrayList<Attribute> attributes = new ArrayList<>(List.of(kmAttr, milesAttr)); // Создаем набор данных Instances trainingSet = new Instances("KmToMiles", attributes, 0); trainingSet.setClassIndex(1); // выход (миль) — целевой атрибут for (double[] row : WEKA_DATA) { DenseInstance instance = new DenseInstance(2); instance.setValue(kmAttr, row[0]); instance.setValue(milesAttr, row[1]); trainingSet.add(instance); } // Обучение модели линейной регрессии LinearRegression model = new LinearRegression(); model.buildClassifier(trainingSet); // Вывод уравнения модели LOGGER.info("Модель: " + model); // Предсказания по пользовательскому вводу Scanner scanner = new Scanner(System.in); LOGGER.info("Введите кол-во километров для перевода в мили или \"%s\" для выхода:".formatted(EXIT)); while (true) { String value = scanner.nextLine(); if (value.equalsIgnoreCase(EXIT)) { break; } double kmValue = Double.parseDouble(value); DenseInstance newInput = new DenseInstance(2); newInput.setValue(kmAttr, kmValue); // предсказываем это значение newInput.setMissing(milesAttr); // обязательно привязать к набору newInput.setDataset(trainingSet); LOGGER.info("Predicted miles: %.9f%n".formatted(model.classifyInstance(newInput))); } } }