【发布时间】:2016-12-20 05:35:28
【问题描述】:
我尝试将线性模型(并获得 R^2)拟合到以下测试数据
0.0 0.0
1.0 1.0
2.0 2.0
3.0 3.1
我使用 scalanlp/breeze 0.12 编写了以下代码:
import breeze.linalg.{DenseMatrix, DenseVector}
import breeze.stats.regression.leastSquares
val indep = DenseMatrix((1.0, 0.0), (1.0, 1.0), (1.0, 2.0), (1.0, 3.0))
val dep = DenseVector(0.0, 1.0, 2.0, 3.1)
val result = leastSquares(indep, dep)
println("intercept=" + result.coefficients.data(0))
println("slope=" + result.coefficients.data(1))
println("r^2=" + result.rSquared)
输出是:
intercept=-0.020000000000000018
slope=1.03
r^2=0.0014623322596666252
截距和斜率是合理的,但是R-squared我不懂,应该接近1!
【问题讨论】:
标签: scala-breeze