@scala_ru

Страница 1169 из 1499
Daniel
26.12.2017
11:08:49
вектор * на случайное число?)

Alex
26.12.2017
11:09:43
но при этом каждый вектор выбирается независимо и из одного и того же распределения
i.i.d по элементам вектора имелось ввиду. Так то я одно распределение генерирую)

Vasiliy
26.12.2017
11:10:06
тут про другое немного

Google
Oleg
26.12.2017
11:11:04
i.i.d по элементам вектора имелось ввиду. Так то я одно распределение генерирую)
нужно нормальное распределение c ожиданием 0 и единичной матрицей ковариации?

Alex
26.12.2017
11:11:10
ну т.е. вот это подойдёт
да не. там ж написано vector containing i.i.d.

Vasiliy
26.12.2017
11:11:45
Oleg
26.12.2017
11:11:57
прост не с диагональной
необходимая матрица ковариации известна?

Vasiliy
26.12.2017
11:12:16
тут говорится, что каждый вектор генерируется независимо от других векторов, при этом компоненты вектора могут быть зависимы

Vasiliy
26.12.2017
11:13:02
хм, странно

т.е. если ты выставляешь корелляцию 1 между двумя компонентами, он тебе может разные сгенерить?

Oleg
26.12.2017
11:13:41
да
можно ли сделать вот так? https://t.me/scala_ru/116791

Oleg
26.12.2017
11:14:24
берёшь матрицу ковариации

Google
Oleg
26.12.2017
11:14:49
она же - матрица корелляции, если все компоненты имеют дисперсию 1

делаешь разложение Холецкого

получается матрица A

умножаешь векторы на неё

получается выборка векторов с матрицей ковариации A * A^T

Vasiliy
26.12.2017
11:22:05
так а где там параметр под корреляцию?
попробуй задать матрицу ковариаций 2x2, состоящую из одних единиц

посмотри, что сгенерится

Alex
26.12.2017
11:24:03
@prutz1311 спасибо)

Vasiliy
26.12.2017
11:28:57
Alex
26.12.2017
11:32:12
а, ок ??
осталось ток RDD помножить

Alexander
26.12.2017
11:40:53


Vasiliy
26.12.2017
11:41:51
осталось ток RDD помножить
до меня дошло сейчас , в чём проблема )) api спарка не позволяет задать матрицу ковариации, как и в случае с одномерным распределением, а генерит с единичной матрицей ковариации и нулевым матожданием, надо постфактум мапить значения, получается

Vasiliy
26.12.2017
11:45:20
круто

Alex
26.12.2017
12:03:53
@pankratov Не знаешь как в RDD мапнуть каждый элемент? С обычными массивами проходит map(x => x.map(...))

Vasiliy
26.12.2017
12:10:20
https://spark.apache.org/docs/1.5.2/api/java/org/apache/spark/mllib/linalg/Vector.html

ага, у вектора нет map ? но типа foreachActive должно отработать

Igor
26.12.2017
12:54:21
А можно ли как-то из Future[T] получить Try[T]? Кровь из носу нужно сделать в одном месте блокирующее получение результата, и что-то резко стало грустно.

Google
Dmitry
26.12.2017
12:54:51
Try(Await.result) ?

Igor
26.12.2017
12:55:14
Увы, Await говорит, что в его функции нельзя пихнуть Duration.Inf

Что мне определенно не нравится.

Igor
26.12.2017
12:56:36
Может не надо все-таки. А какой контекст?
Выполнение нескольких задачек в БД сделано на Future, результат нужно получить блокирующе, чтобы транзакцию можно было абортнуть или успешно завершить. Ну плюс мне в принципе интересно, как это сделать.

sherzod
26.12.2017
12:58:13
Имеется в виду чтобы вызвать rollback в случае хотя бы одного неуспеха?

Dmitry
26.12.2017
12:58:44
onFailure?

sherzod
26.12.2017
12:58:51
Future.sequence

и не нужно выходить из фьючи

Dmitry
26.12.2017
12:59:28
эм, разве в рамках транзакции можно паралельно исполнять что то?

Igor
26.12.2017
12:59:35
Igor
26.12.2017
13:00:06
эм, разве в рамках транзакции можно паралельно исполнять что то?
А хрен ее знает. Если что — там на несколько можно разбить будет. Просто кровь из носу нужно все откатывать, если хоть одна не пройдет хотя-бы

Иначе будет мусор в БД.

Dmitry
26.12.2017
13:00:50
ну просто seq это если у тебя List[Future]

sherzod
26.12.2017
13:00:54
аа.. эмм тогда неясно.

если одно подключение, у вас все будет работать и без лишних действий так как вы хотите.

если много подключений (много фьюч) то sequencе поможет. можно убрать autocommit и при хотя бы одном неуспехе везде вызвать rollback.

Alexander
26.12.2017
13:20:20
Увы, Await говорит, что в его функции нельзя пихнуть Duration.Inf
где он такое говорит? Наоборот говорит, что можно

Google
Alexander
26.12.2017
13:20:33
(не то что б это было хорошо)

Igor
26.12.2017
13:21:12


Alexander
26.12.2017
13:21:47
Undefined != Inf

Dmitry
26.12.2017
13:21:50
так там Undefined

Alexander
26.12.2017
13:22:02
6-я строчка снизу

Igor
26.12.2017
13:27:14
Ой :) Глаза замылились. Благодарствую :)

Admin
ERROR: S client not available

Daniel
26.12.2017
13:38:30
6-я строчка снизу
ну вот счас точно Await появится а мог на фьючах сделать

Igor
26.12.2017
13:42:35
ну вот счас точно Await появится а мог на фьючах сделать
Убрал их, решил, что обойдусь без этого и сделаю у сервисов интерфейс с monix-овскими Observable сразу. Обычно просто стараюсь на уровне репозитория в rx-стримы оборачивать, меньше гемора вот такого формата.

Alex
26.12.2017
13:50:12
ага, у вектора нет map ? но типа foreachActive должно отработать
у тебя нет примера как foreachActive работает?

Vasiliy
26.12.2017
13:52:21
не знаю, я не использовал ? но судя по тому что он Unit, то либо он меняет элементы inplace либо он просто выполняет side effect, тонда он не подходит

а, не он точно не походит

ну можно сделать toArray.map

Alexander
26.12.2017
13:54:41
Выполнение нескольких задачек в БД сделано на Future, результат нужно получить блокирующе, чтобы транзакцию можно было абортнуть или успешно завершить. Ну плюс мне в принципе интересно, как это сделать.
В slick это очень хорошо выражется, там DBIO-монада, которую можно уже в рамках одной транзакции запустить, при этом что-нибудь совсем другое (например, http-запрос), можно туда же затащить через DBIO.from: http://slick.lightbend.com/doc/3.2.0/dbio.html#transactions-and-pinned-sessions

Alex
26.12.2017
13:56:09
ну можно сделать toArray.map
тож об этом подумал. Это не костыль?

Vasiliy
26.12.2017
13:57:09
ну если размерность небольшая и у тебя не используются sparse фичи, то на мой взгляд норм

Vasiliy
26.12.2017
13:59:57
https://github.com/apache/spark/blob/v2.2.1/mllib-local/src/main/scala/org/apache/spark/ml/linalg/Vectors.scala

class DenseVector @Since("2.0.0") ( @Since("2.0.0") val values: Array[Double]) extends Vector { override def size: Int = values.length override def toString: String = values.mkString("[", ",", "]") override def toArray: Array[Double] = values

если вектор dense, то вроде как toArray тупо возвращает, то что у него в поле values

Google
Vasiliy
26.12.2017
14:03:07
ну т.е. если DenseVector, то вот так норм new DenseVector(v.toArray.map(...))

sherzod
26.12.2017
14:31:28
векторы же, насколько помнится, локальные в mllib. Так что toArray норм (ну все остальное через него будет выражаться)

sherzod
26.12.2017
14:32:53
ну вот сказали же через toArray с обратным заворачиванием в вектор. Но если ты не применяешь сам mllib то вектор тебе и не нужен

Alex
26.12.2017
14:37:42
вот с scala.collection.immutable.Vector работает

со спарковским вектором нет

Vasiliy
26.12.2017
14:38:47
да, но это разные структуры

Alex
26.12.2017
14:39:04
ну я прост для сравнения, метод вроде одинаково работать должен

Vasiliy
26.12.2017
14:39:15
да, странно, что они не реализовали

возможно, это из-за головняков с разреженными векторами, хотя в денз у них тоже не реализован

вообще, спарковский мллиб довольно странно сделан

sherzod
26.12.2017
14:44:35
Alex, вообще тебе вроде не нужно делать map. У тебя же векторы и матрицы. Умножай, складывай, применяй линал

Alex
26.12.2017
14:45:13
Не нашел доков по сложению. Так сначала и думал что можно сделать @sherzodv

По манипуляциям в общем*

Vasiliy
26.12.2017
14:46:59
я бы в самом начале кастанул к какому-нибудь бризовскому вектору, а потом выполнял бы операции

причём он есть в зависимостях mllib <dependency> <groupId>org.scalanlp</groupId> <artifactId>breeze_${scala.binary.version}</artifactId> </dependency> https://github.com/apache/spark/blob/v2.2.1/mllib-local/pom.xml

https://github.com/scalanlp/breeze

Страница 1169 из 1499