Я пытаюсь реализовать разреженную частично линейную аддитивную модель (SPLAM) из Инструментария машинного обучения Инь Лу (https://github.com/yinlou/mltk, написано в Java) в R, используя r Java.
В Java документация (https://github.com/yinlou/mltk/wiki/Generalized-Additive-Models#splam) говорит, что вы должны делать:
SPLAMLearner learner = new SPLAMLearner();
learner.setNumKnots(10);
learner.setMaxNumIters(100);
learner.setAlpha(0.6);
learner.setLambda(0.1);
learner.setTask(Task.REGRESSION);
GAM gam = learner.build(trainSet);
Пока у меня есть следующий код в R:
library(rJava)
.jinit()
.jaddClassPath("/Users/USER/mltk/mltk/target/mltk-0.1.0-SNAPSHOT.jar")
learner <- new(J("mltk.predictor.gam.SPLAMLearner"))
learner$setNumKnots(10L)
learner$setMaxNumIters(100L)
learner$setAlpha(0.6)
learner$setLambda(0.1)
У меня есть несколько вопросов:
- Имеет ли
learner$setNumKnots(10L)
тот же эффект в R, что и learner.setNumKnots(10)
в Java? Если нет, то как мне сделать это вместо этого? - Запуск .jmethods (ученик) в R, я нахожу следующие методы относительно setTask:
"public mltk.predictor.Learner$Task mltk.predictor.gam.SPLAMLearner.getTask()"
и "public void mltk.predictor.gam.SPLAMLearner.setTask(mltk.predictor.Learner$Task)"
. В банке также есть класс mltk.predictor.Learner
. Как бы я go добился эквивалентного выполнения learner.setTask(Task.REGRESSION)
? - Для набора данных существует класс, который генерирует
trainSet
с использованием текстового файла с матрицей данных и текстового файла атрибута. Однако я не понимаю формат файла атрибутов. В документации говорится, что структура описания атрибута равна attribute_name: type [(target)|(x)]
, и в качестве примера для следующего файла данных
f1: cont (x)
f2: {a, b, c}
f3: binned (256)
f4: binned (3;[1, 5, 6];[0.5, 2.5, 5.5])
label: cont (target)
приводится также
. 1037 *
Атрибуты, указанные в «(x)», будут пропущены. Существует два типа атрибутов binned. Один указывается с использованием количества бинов, а другой - с использованием количества бинов, верхних границ и медиан для каждого бина.
Я не совсем понимаю attribute_name: type [(target)|(x)]
или пример. Какие атрибуты есть? f2: {a, b, c}
и f3: binned (256)
не соответствуют заданной структуре атрибутов. Как это работает?
Извините за очень открытые вопросы - я совершенно новичок в Java, поэтому на данном этапе я просто пытаюсь выяснить, какие вопросы даже задавать.