当前位置 博文首页 > longwind09,多容寡欲,千里江河:Scala学习笔记
图片太小,请参见
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》
cs