10 lines
232 B
Ruby
10 lines
232 B
Ruby
require 'matrix'
|
|
|
|
def regress x, y, degree
|
|
x_data = x.map { |xi| (0..degree).map { |pow| (xi**pow).to_r } }
|
|
|
|
mx = Matrix[*x_data]
|
|
my = Matrix.column_vector(y)
|
|
|
|
((mx.t * mx).inv * mx.t * my).transpose.to_a[0].map(&:to_f)
|
|
end
|