Примеры кода на Java — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
Строка 1: Строка 1:
{| class="wikitable" align="center" style="color: red; background-color: black; font-size: 56px; width: 800px;"
 
|+
 
|-align="center"
 
|'''НЕТ ВОЙНЕ'''
 
|-style="font-size: 16px;"
 
|
 
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.
 
 
Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.
 
 
Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.
 
 
Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.
 
 
''Антивоенный комитет России''
 
|-style="font-size: 16px;"
 
|Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.
 
|-style="font-size: 16px;"
 
|[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки].
 
|}
 
 
 
[[File:Java.jpeg|auto|thumb|Java: https://www.oracle.com/java/]]
 
[[File:Java.jpeg|auto|thumb|Java: https://www.oracle.com/java/]]
 
==Популярные библиотеки==
 
==Популярные библиотеки==

Текущая версия на 19:22, 4 сентября 2022

Популярные библиотеки

  • Weka[1] — популярная библиотека, написанная на языке Java и содержащая в себе множество алгоритмов машинного обучения для задач анализа данных. Предоставляет инструменты для решения задач классификации, кластеризации данных, регрессионного анализа и др. Основные возможности Weka можно сгруппировать в 3 категории: инструменты пре-процессинга данных, алгоритмы машинного обучения и инструменты оценки модели. Инструменты пре-процессинга в Weka называются фильтрами, Weka содержит фильтры для дискретиации, нормализации, уменьшения размерности, трансформации и комбинирования признаков. Weka Machine Learning Toolkit содержит алгоритмы классификации, регрессии, кластеризации. Реализованы следующие алгоритмы обучения: деревья решений, метод опорных векторов, MLP, логистическая регрессия, Байесовские сети, и др., мета-алгоритмы включают в себя: бэггинг, бустинг, стекинг, алгоритмы выбора признаков: PCA[на 28.01.19 не создан], фильтрующие методы, основанные на information gain, коэффициенте корреляции Пирсона и OneR классификаторе.
  • Smile[2]Java фреймворк для машинного обучения, анализа естественного языка, линейной алгебры и визуализации данных. Smile покрывает все основные аспекты машинного обучения и предоставляет высокопроизводительные алгоритмы и структуры данных.
  • deeplearning4j[3]Java библиотека для глубокого обучения, создания рекуррентых (в том числе распределенных) нейронных сетей.

Основные особенности использования Java для задач машинного обучения

В отличие от Python, Java не обладает столь обширной экосистемой, ориентированной на решение задач машинного обучения и анализа данных. Большинство имеющихся инструментов являются узко специализированными (по сравнению, например, с scikit-learn[4]) и хуже документированы. Ввиду более низкой популярности языка в сфере ML большинство онлайн курсов и обучающих материалов ориентированы на Python. Однако, несмотря на вышеперечисленные факторы, Java остается популярной альтернативой, особенно при необходимости интеграции с существующими JVM проектами. Также к достоинствам Java можно отнести статическую типизацию (и как следствие уменьшенную вероятность ошибок времени исполнения) и заметно более развитую поддержку в IDE.

Примеры кода

Для работы с приведенными ниже примерами необходим JDK версии не ниже 10 и система сборки Maven.
Каждый пример структурирован следующим образом:

  1. Maven зависимость на необходимые библиотеки
  2. Список необходимых import директив
  3. Код примера с комментариями

Вариации регрессии

Основная статья: Вариации регрессии

Линейная регрессия

Логистическая регрессиия

Гребневая регрессия (ридж-регрессия)

Лассо-регрессия

Метрический классификатор и метод ближайших соседей

Классификация при помощи MLP

Рекуррентные нейронные сети

Долгая краткосрочная память

Метод опорных векторов

Деревья решений, случайный лес

Бустинг, Ada-boost

EM-алгоритм

Основная статья: EM-алгоритм

Пример кластеризации с применением weka.clusterers.EM[5]

 <dependency>
   <groupId>nz.ac.waikato.cms.weka</groupId>
   <artifactId>weka-stable</artifactId>
   <version>3.8.0</version>
 </dependency>
 import weka.clusterers.ClusterEvaluation;
 import weka.clusterers.EM;
 import weka.core.Instances;
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.util.Random;
 //load data
 var data = new Instances(new BufferedReader(new FileReader("data/bank-data.arff")));
 // new instance of clusterer
 var model = new EM();
 // build the clusterer
 model.buildClusterer(data);
 System.out.println(model);
 var logLikelihood = ClusterEvaluation.crossValidateModel(model, data, 10, new Random(1));

Уменьшение размерности

Байесовская классификация

См. также

Примечания