2016-03-02 3 views
-4

Я работаю сейчас с Spark. Например, я делаю разные оценки с помощью пакетов MLlib и систем рекомендаций (Java или Python). Я уже видел документацию о Spark on github. Согласно документации, я могу подготовить свою модель в Spark с вызовом метода train. Вот:Исходный код Spark Apache

JavaRecommendationExample

Я специально заинтересован в строках кода 50-53:

// Build the recommendation model using ALS 
int rank = 10; 
int numIterations = 10; 
MatrixFactorizationModel model = ALS.train(JavaRDD.toRDD(ratings), rank, numIterations, 0.01); 

Я хотел бы знать исходный код этого метода.

Что-то еще, я уже нашел возможную реализацию в Python example. Меня особенно интересуют линии 240-275. Вот документация в коде:

Поезд матрицы факторизация модель с учетом РД оценок пользователями для подмножества продуктов. Матрица оценок аппроксимируется как произведение двух матриц нижнего ранга данного ранга (число ). Для решения этих задач ALS выполняется итеративно с настраиваемым уровнем параллелизма.

В приведенном ниже коде я не вижу никаких итераций над матрицами. Может ли кто-нибудь помочь мне и предоставить правильный исходный код, где будут выполняться шаги итерации? Или, пожалуйста, подтвердите здесь, что метод поезда не является открытым исходным кодом.

+0

Что вы просите не ясно! Что это значит: «Может ли кто-нибудь помочь мне и предоставить правильный исходный код, где будут выполняться шаги итерации? Или, пожалуйста, подтвердите, что метод поезда не является открытым исходным кодом. – eliasah

+0

@eliasah, мой вопрос в том, как внедрен метод обучения. – Guforu

+1

Пробовал Google? Пробовал eclipse (например: Я предполагаю, что в вашем проекте eclipse вы указываете на один или несколько JAR для материала SPARK. Очень часто эти JAR поставляются с исходным кодом или, по крайней мере, есть отдельные JAR-файлы исходного кода ... сделать их доступными для затмения, а «F3» приведет вас к источнику, который вы ищете). Худший случай ... обратимся к некоторому декомпилятору java, например jd-gui. – GhostCat

ответ

1

Ну я не знаю, насколько глубоко вы искали в методе train но есть что-то вроде:

for (iter <- 1 to maxIter) { 
    ... 
} 

(l.651 для implicits и l.672 для явного с исходным кодом Спарк 1.6.0). Вы можете найти исходный код на странице искры и посмотреть на org.apache.spark.ml.recommendation.ALS (обратите внимание, что реализация теперь на ML, а не на MLLib).

Here's the source code (с комментариями выше!)

+0

Хорошо, я смотрю только только MLlib. Большое спасибо. Мне кажется правильным направлением. – Guforu

+0

yup, это был переход в 1.4 или 1.5, если я хорошо помню! Вы можете увидеть это через строку NewALS.train [Int] (...) в версии MLlib. –

Смежные вопросы