Примеры кода на Java — различия между версиями
| Строка 60: | Строка 60: | ||
logClf.predict(testX); | logClf.predict(testX); | ||
====Гребневая регрессия (ридж-регрессия)==== | ====Гребневая регрессия (ридж-регрессия)==== | ||
| − | {{Main|Вариации регрессии# | + | {{Main|Вариации регрессии#Пример на языке Java}} |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
====Лассо-регрессия==== | ====Лассо-регрессия==== | ||
| − | {{Main|Вариации регрессии# | + | {{Main|Вариации регрессии#Пример на языке Java_2}} |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
===Метрический классификатор и метод ближайших соседей=== | ===Метрический классификатор и метод ближайших соседей=== | ||
Версия 03:02, 9 апреля 2019
Содержание
- 1 Популярные библиотеки
- 2 Примеры кода
- 2.1 Вариации регрессии
- 2.2 Метрический классификатор и метод ближайших соседей
- 2.3 Классификация при помощи MLP
- 2.4 Рекуррентные нейронные сети
- 2.5 Долгая краткосрочная память
- 2.6 Метод опорных векторов
- 2.7 Деревья решений, случайный лес
- 2.8 Бустинг, Ada-boost
- 2.9 EM-алгоритм
- 2.10 Уменьшение размерности
- 2.11 Байесовская классификация
- 3 См. также
- 4 Примечания
Популярные библиотеки
-
Weka[1] — популярная библиотека, написанная на языкеJavaи содержащая в себе множество алгоритмов машинного обучения для задач анализа данных. Предоставляет инструменты для решения задач классификации, кластеризации данных, регрессионного анализа и др. -
Smile[2] —Javaфреймворк для машинного обучения, анализа естественного языка, линейной алгебры и визуализации данных.Smileпокрывает все основные аспекты машинного обучения и предоставляет высокопроизводительные алгоритмы и структуры данных. -
deeplearning4j[3] —Javaбиблиотека для глубокого обучения, создания рекуррентых (в том числе распределенных) нейронных сетей.
Примеры кода
Для работы с приведенными ниже примерами необходим JDK версии не ниже 10 и система сборки Maven.
Каждый пример структурирован следующим образом:
-
Mavenзависимость на необходимые библиотеки - Список необходимых
importдиректив - Код примера с комментариями
Вариации регрессии
Линейная регрессия
Пример линейной регресии с применением weka.classifiers.functions.LinearRegression[4]
<dependency> <groupId>nz.ac.waikato.cms.weka</groupId> <artifactId>weka-stable</artifactId> <version>3.8.0</version> </dependency>
import weka.classifiers.functions.LinearRegression; import weka.core.Instance; import weka.core.Instances;
//Load Data set
var data = new Instances(new BufferedReader(new FileReader("dataset/house.arff")));
data.setClassIndex(data.numAttributes() - 1);
//Build model
var model = new LinearRegression();
try { model.buildClassifier(data); }
catch (Exception e) { e.printStackTrace(); }
//output model
System.out.printf("model parameters: %s%n", model);
// Now Predicting the cost
var myHouse = data.lastInstance();
var price = model.classifyInstance(myHouse);
System.out.printf("predicted price = %s%n", price)
Логистическая регрессиия
Пример линейной регрессии с применением smile.classification.LogisticRegression[5]
<dependency> <groupId>com.github.haifengl</groupId> <artifactId>smile-core</artifactId> <version>1.5.2</version> </dependency>
import smile.data.AttributeDataset; import smile.data.NominalAttribute; import smile.classification.LogisticRegression; import smile.data.parser.ArffParser;
var arffParser = new ArffParser();
arffParser.setResponseIndex(4);
var iris = arffParser.parse(smile.data.parser.IOUtils.getTestDataFile("weka/iris.arff"));
var logClf = new LogisticRegression(iris.x(), iris.labels());
logClf.predict(testX);
Гребневая регрессия (ридж-регрессия)
Лассо-регрессия
Метрический классификатор и метод ближайших соседей
Классификация при помощи MLP
Пример классификации с применением weka.classifiers.functions.MultilayerPerceptron[6]
<dependency> <groupId>nz.ac.waikato.cms.weka</groupId> <artifactId>weka-stable</artifactId> <version>3.8.0</version> </dependency>
import weka.classifiers.functions.MultilayerPerceptron; import weka.core.converters.CSVLoader; import java.io.File;
// read train & test datasets and build MLP classifier
var trainds = new DataSource("etc/train.csv");
var train = trainds.getDataSet();
train.setClassIndex(train.numAttributes() - 1);
var testds = new DataSource("etc/test.csv");
var test = testds.getDataSet();
test.setClassIndex(test.numAttributes() - 1);
var mlp = new MultilayerPerceptron();
mlp.buildClassifier(train);
// Test the model
var eTest = new Evaluation(train);
eTest.evaluateModel(mlp, test);
// Print the result à la Weka explorer:
var strSummary = eTest.toSummaryString();
System.out.println(strSummary);
Рекуррентные нейронные сети
Пример простой рекуррентной нейронной сети, способной генерировать заданную строку по первому символу, с применением библиотеки deeplearning4j.
Долгая краткосрочная память
Пример реализации рекуррентной нейронной сети, использующей механизм LSTM и натренированной на текстах Шекспира, с применением библиотеки deeplearning4j.
Метод опорных векторов
Деревья решений, случайный лес
Бустинг, Ada-boost
EM-алгоритм
Пример кластеризации с применением weka.clusterers.EM[7]
<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));
Уменьшение размерности
Байесовская классификация
См. также
- Примеры кода на Scala
- Примеры кода на R[на 08.04.19 не создан]
- Обзор библиотек для машинного обучения на Python