class Newral::Training::LinearRegression
Attributes
best_error[R]
best_function[R]
Public Class Methods
new( input: [], output: [] )
click to toggle source
# File lib/newral/training/linear_regression.rb, line 6 def initialize( input: [], output: [] ) @input = input @output = output end
Public Instance Methods
process( )
click to toggle source
# File lib/newral/training/linear_regression.rb, line 12 def process( ) input_mean=Newral::Tools.mean @input output_mean =Newral::Tools.mean @output dividend =0 divisor = 0 @input.each_with_index do |input,idx| dividend = dividend+(input-input_mean)*( @output[idx]-output_mean) divisor = divisor+(input-input_mean)**2 end multiplier = dividend/divisor error = output_mean-multiplier*input_mean @best_function = Newral::Functions::Polynomial.new(factors: [multiplier,error]) @best_error =@best_function.calculate_error( input: @input, output: @output ) @best_function end