Scala学习笔记

Scala类型继承图
图片太小,请参见

数据类型

操作

在Spark上的应用

案例

Beta分布随机数

Bayes平滑计算CTR先验

Bayes平滑计算CTR先验

class entity(traindata: RDD[Array[Double]], outputPath: String) extends serializable {
        var a: Double = 1.0
        var b: Double = 1.0
        var da: Double = a
        var db: Double = b
        var index = 0
        def calculate(): Unit = {
            while (index < 1000 && da > 1.0E-9 && db > 1.0E-9) {
                var x1 = 0.0
                var y1 = 0.0
                var x2 = 0.0
                traindata.foreach(point => {
                    x1 += MBLAS.digamma(point(2) + 1 + a) - MBLAS.digamma(a)
                    y1 += MBLAS.digamma(point(1) + 1 + a + b) - MBLAS.digamma(a + b)
                    x2 += MBLAS.digamma(point(1) - point(2) + b) - MBLAS.digamma(b)
                    val na = a
                    val nb = b
                    a *= (x1 / y1)
                    b *= (x2 / y1)
                    da = Math.abs(a - na)
                    db = Math.abs(b - nb)
                })
            }
        }
        println(a, b)
        analyseLog.append("---------bayes smooth---------\n")
        analyseLog.append("a=" + a).append("\n")
        analyseLog.append("b=" + b).append("\n")
        MUtils.saveString(fs, analyseLog.toString, outputPath + "/bayes_smooth")
    }

《快学scala》

posted @ 2017-09-24 20:01  longwind09  阅读(276)  评论(0编辑  收藏  举报