
Yan?
25.12.2017
17:25:43
или уже есть нормальные?

Oleg
25.12.2017
17:26:40

Denis
25.12.2017
17:34:53

Oleg
25.12.2017
17:36:27
Зашёл, а там срач, котлин против кложы

Google

Oleg
25.12.2017
17:36:35
Вот это хардкор

sherzod
25.12.2017
17:36:54
и такой вялый, нетоксичный, неуютно как-то

Nick
25.12.2017
18:57:26

Daniel
26.12.2017
05:50:32
https://github.com/typelevel/cats/releases/tag/v1.0.0 ?

Aleksei
26.12.2017
06:04:28
ДОЖДАЛИСЬ!

Daniel
26.12.2017
06:05:11
в репах нет еще

Aleksei
26.12.2017
06:06:21
ну вот, нещитово тогда

Grigory
26.12.2017
06:10:47
в репах нет еще
http://repo1.maven.org/maven2/org/typelevel/cats-core_2.12/1.0.0/

Daniel
26.12.2017
06:11:13
хм, в поиске не увидел

Grigory
26.12.2017
06:11:39
индексация она не сразу

Oleg
26.12.2017
06:30:40
RC2
> Change forEffect/followedBy to productL/productR
да как они надоели
хорошо хоть задепрекейтили просто

Alexander
26.12.2017
09:11:06
Привет! Подскажите короткий способ Integral[T] смапить через T=>U в Integral[U]. (хочу в slick объявить sequence с конкретным типом вроде MyNumber(value: Long) ext AnyVal)
Пока на ум приходит только определять каждый метод (а их там много)

Google

Nick
26.12.2017
09:12:00

Alexander
26.12.2017
09:12:14
Ах если б :)
но его там нет

Nick
26.12.2017
09:12:47
Сделай

Alexey
26.12.2017
09:14:26
integral это вообще что?
линк хоть дай

Grigory
26.12.2017
09:16:20
math.Integral (я полагаю)

Alexey
26.12.2017
09:17:17
ааа

Alexander
26.12.2017
09:17:50
Сделай
И по идее там надо contramap :)

Nick
26.12.2017
09:21:03

Grigory
26.12.2017
09:24:13
А что там мапить? это тайп классы операций...

Alexey
26.12.2017
09:24:47
ну, чтобы получить другой инстанц тайпкласса? )

Denis
26.12.2017
09:25:32
Попробовали бы они так в своем хаскеле

Alexander
26.12.2017
09:25:42

Alexey
26.12.2017
09:26:11
нужен всего лишь функтор для инстанцов этих тайпклассов. напиши сам.

Nick
26.12.2017
09:27:34

Alexander
26.12.2017
09:30:44
implicit object IntegralFunctor extends Functor[Integral] {
override def imap[A, B](fa: Integral[A])(toB: (A) => B)(toA: (B) => A): Integral[B] =
new Integral[B] {
override def minus(x: B, y: B) = toB(fa.minus(toA(x), toA(y)))
override def negate(x: B) = toB(fa.negate(toA(x)))
override def fromInt(x: Int) = toB(fa.fromInt(x))
override def toDouble(x: B) = fa.toDouble(toA(x))
override def compare(x: B, y: B) = fa.compare(toA(x), toA(y))
}
override def map[A, B](fa: Integral[A])(f: (A) => B): Integral[B] = ???
}

Alexey
26.12.2017
09:31:51
типа того. но для (toB: (A) => B)(toA: (B) => A) подозреваю есть свой тайп клас )

Alexander
26.12.2017
09:32:04
implicit object IntegralInvariant extends Invariant[Integral] :)

Google

Daniel
26.12.2017
09:35:08
?

Alexey
26.12.2017
09:35:37
это не я. это мой хардварный генератор ключей )

Grigory
26.12.2017
09:36:50

Alexander
26.12.2017
09:37:38
в слике есть такая штука
object Sequence {
def apply[T : TypedType : Integral](name: String) = new Sequence[T](name, None, None, None, None, false)
}
у меня T = case class SashaId(value: Long) extends AnyVal

Grigory
26.12.2017
09:40:38
объяви прост интеграл нужный над твоим типом
и там делай что хочешь

Alexander
26.12.2017
09:42:48
Да, это вариант выше только без понтов :)
В общем, код выше норм, только Invariant, а не Functor.
В результате получается так:
implicit val integralMyId =
IntegralInvariant.imap(implicitly[Integral[Long]])(MyId.apply)(_.value)
implicit val integralTheirId =
IntegralInvariant.imap(implicitly[Integral[Long]])(TheirId.apply)(_.value)
val myIdSeq: Sequence[MyId] = Sequence[MyId]("my_id_seq")
val myIdSeq: Sequence[TheirId] = Sequence[TheirId]("their_id_seq")
Спасибо за наводки :)

Alex
26.12.2017
09:52:38
Не подскажите, как случайный вектор (нормальный) генерировать с заданными параметрами? Не для i.i.d. случая.

Vasiliy
26.12.2017
09:55:55
в breeze или spark для этого есть api . Нужно просто в scala или какие-то либы используются?

Alex
26.12.2017
09:57:09

Alex
26.12.2017
09:57:23
спасибо

Vasiliy
26.12.2017
09:58:00
import org.apache.spark.mllib.random.RandomRDDs._
normalRDD(sc, size, seed = seed).map(v => noise * v)
типа так
ну т.е. он тебе генерит rdd с матожиданием 0 и дисперсией 1, а дальше мапом умножаешь на нужную дисперсию и прибавляешь матожидание

Alex
26.12.2017
10:20:49

Vasiliy
26.12.2017
10:22:29

Google

Vasiliy
26.12.2017
10:22:44
я, скорее всего, не очень понял задачу

Alex
26.12.2017
10:22:44

Vasiliy
26.12.2017
10:23:11
а элементы вектора - действительные числа?

Alex
26.12.2017
10:23:17

Vasiliy
26.12.2017
10:23:43
так, а где тогда возникает многомерность? ?

Admin
ERROR: S client not available

Vasiliy
26.12.2017
10:24:02
ну т.е. это же одномерное распределение

Alex
26.12.2017
10:24:16

Vasiliy
26.12.2017
10:24:16
со стандартным отклонением а не матрицей ковариаций
ну говорю, видимо, не понял задачу. Если нужно сгенерировать один вектор, значения которого распределены нормально, с заданным стандартным отклонением и матожиданем, то это решается, как я показал

Alex
26.12.2017
10:26:00

Vasiliy
26.12.2017
10:28:05
ну т.е. у тебя есть некоторая размерность пространства, допустим 3, и тебе нужно сгенерировать набор векторов количеством n штук размерности 3, чтобы они были распределны согласно 3хмерному нормальному распределению?
так?
ну т.е. должно же быть тогда два числа
размерность пространства - d и количество векторов - n в виборке

Alex
26.12.2017
10:29:36

Vasiliy
26.12.2017
10:30:53
да, понял, надо смотреть mllib.random.RandomRDDs
по идее должно быть

Google

Alex
26.12.2017
10:31:10

Vasiliy
26.12.2017
10:31:18
не за что ?

Daniel
26.12.2017
10:33:19
немного мат. нубства
Если все размерности вектора распределены нормально, то сам вектор "распределен согласно 3хмерному нормальному распределению"? Если так, то чем не устроит простой цикл?
Наверняка зависимость векторов между собой все равно проверять отдельно.

Vasiliy
26.12.2017
10:34:15
это в случае диагональной матрицы ковариаций сработает

Alex
26.12.2017
10:38:33

Vasiliy
26.12.2017
10:44:22
или генеразция второго вектора должна зависеть от генерации перового?

Daniel
26.12.2017
10:46:09
вероятно 2ой вектор должен быть похож с заданной степенью

Vasiliy
26.12.2017
10:47:37
интересно

Oleg
26.12.2017
10:56:17
Если Var(x) = I, то Var(A * x) = E[(A*x) * (A*x)^T] = E[ A * x * x^T * A^T ] = A * E[x * x^T] *A^T = A * Var(x) * A^T = A * A^T
то есть нужно найти такую матрицу A, чтобы желаемая матрица ковариации была равна A * A^T

Pavel
26.12.2017
10:59:43

Oleg
26.12.2017
10:59:52
разложение матрицы ковариации на произведение A * A^T называется разложением Холецкого https://en.wikipedia.org/wiki/Cholesky_decomposition

Alex
26.12.2017
11:07:06

Vasiliy
26.12.2017
11:07:18
это нормально
ну т.е. это не значит , что это не i.i.d.
просто распределение с недиагональной ковариационной матрицей