@@ -3,44 +3,71 @@ defmodule LearnKit.Regression.Linear do
33 Module for Linear Regression algorithm
44 """
55
6- defstruct factors: [ ] , results: [ ]
6+ defstruct factors: [ ] , results: [ ] , coefficients: [ ]
77
88 alias LearnKit.Regression.Linear
99
10+ use Linear.Fit
11+
1012 @ type factors :: [ number ]
1113 @ type results :: [ number ]
14+ @ type coefficients :: [ number ]
1215
1316 @ doc """
14- Creates classificator with empty data_set
17+ Creates predictor with empty data_set
1518
1619 ## Examples
1720
18- iex> classificator = LearnKit.Regression.Linear.new
19- %LearnKit.Regression.Linear{factors: [], results: []}
21+ iex> predictor = LearnKit.Regression.Linear.new
22+ %LearnKit.Regression.Linear{factors: [], results: [], coefficients: [] }
2023
2124 """
22- @ spec new ( ) :: % LearnKit.Regression.Linear { factors: [ ] , results: [ ] }
25+ @ spec new ( ) :: % LearnKit.Regression.Linear { factors: [ ] , results: [ ] , coefficients: [ ] }
2326
2427 def new do
2528 Linear . new ( [ ] , [ ] )
2629 end
2730
2831 @ doc """
29- Creates classificator with data_set
32+ Creates predictor with data_set
3033
3134 ## Parameters
3235
33- - data_set: Keyword list with labels and features in tuples
36+ - factors: Array of predictor variables
37+ - results: Array of criterion variables
3438
3539 ## Examples
3640
37- iex> classificator = LearnKit.Regression.Linear.new([1, 2, 3, 4], [2, 3, 4, 5])
38- %LearnKit.Regression.Linear{factors: [1, 2, 3, 4], results: [2, 3, 4, 5]}
41+ iex> predictor = LearnKit.Regression.Linear.new([1, 2, 3, 4], [2, 3, 4, 5])
42+ %LearnKit.Regression.Linear{factors: [1, 2, 3, 4], results: [2, 3, 4, 5], coefficients: [] }
3943
4044 """
41- @ spec new ( factors , results ) :: % LearnKit.Regression.Linear { factors: factors , results: results }
45+ @ spec new ( factors , results ) :: % LearnKit.Regression.Linear { factors: factors , results: results , coefficients: [ ] }
4246
4347 def new ( factors , results ) do
4448 % Linear { factors: factors , results: results }
4549 end
50+
51+ @ doc """
52+ Fit train data
53+
54+ ## Parameters
55+
56+ - predictor: %LearnKit.Regression.Linear{}
57+
58+ ## Examples
59+
60+ iex> predictor |> LearnKit.Regression.Linear.fit
61+ %LearnKit.Regression.Linear{
62+ coefficients: [1.0, 1.0],
63+ factors: [1, 2, 3, 4],
64+ results: [2, 3, 4, 5]
65+ }
66+
67+ """
68+ @ spec fit ( % LearnKit.Regression.Linear { factors: factors , results: results } ) :: % LearnKit.Regression.Linear { factors: factors , results: results , coefficients: coefficients }
69+
70+ def fit ( % Linear { factors: factors , results: results } ) do
71+ % Linear { factors: factors , results: results , coefficients: fit_data ( factors , results ) }
72+ end
4673end
0 commit comments