Skip to content

Commit 114bef7

Browse files
authored
Gradient descent example corrected (#251)
1 parent a0f98bf commit 114bef7

File tree

5 files changed

+180
-23
lines changed

5 files changed

+180
-23
lines changed

.github/workflows/ci_pipeline.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,9 @@ jobs:
1010
build:
1111
runs-on: ubuntu-latest
1212

13-
container:
14-
image: dart:stable
15-
1613
steps:
1714
- uses: actions/checkout@v2
15+
- uses: dart-lang/setup-dart@v1
1816

1917
- name: Print Dart SDK version
2018
run: dart --version
@@ -26,7 +24,7 @@ jobs:
2624
run: dart format --output=none --set-exit-if-changed .
2725

2826
- name: Analyze project source
29-
run: dart analyze --no-fatal-warnings
27+
run: dart analyze --fatal-infos
3028

3129
- name: Run tests
3230
run: dart test

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## 16.17.9
4+
- Gradient descent example corrected
5+
36
## 16.17.8
47
- dart 3.0 migration (non-breaking changes)
58

example/fish.csv

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
Species,Weight,Length1,Length2,Length3,Height,Width
2+
Bream,242,23.2,25.4,30,11.52,4.02
3+
Bream,290,24,26.3,31.2,12.48,4.3056
4+
Bream,340,23.9,26.5,31.1,12.3778,4.6961
5+
Bream,363,26.3,29,33.5,12.73,4.4555
6+
Bream,430,26.5,29,34,12.444,5.134
7+
Bream,450,26.8,29.7,34.7,13.6024,4.9274
8+
Bream,500,26.8,29.7,34.5,14.1795,5.2785
9+
Bream,390,27.6,30,35,12.67,4.69
10+
Bream,450,27.6,30,35.1,14.0049,4.8438
11+
Bream,500,28.5,30.7,36.2,14.2266,4.9594
12+
Bream,475,28.4,31,36.2,14.2628,5.1042
13+
Bream,500,28.7,31,36.2,14.3714,4.8146
14+
Bream,500,29.1,31.5,36.4,13.7592,4.368
15+
Bream,340,29.5,32,37.3,13.9129,5.0728
16+
Bream,600,29.4,32,37.2,14.9544,5.1708
17+
Bream,600,29.4,32,37.2,15.438,5.58
18+
Bream,700,30.4,33,38.3,14.8604,5.2854
19+
Bream,700,30.4,33,38.5,14.938,5.1975
20+
Bream,610,30.9,33.5,38.6,15.633,5.1338
21+
Bream,650,31,33.5,38.7,14.4738,5.7276
22+
Bream,575,31.3,34,39.5,15.1285,5.5695
23+
Bream,685,31.4,34,39.2,15.9936,5.3704
24+
Bream,620,31.5,34.5,39.7,15.5227,5.2801
25+
Bream,680,31.8,35,40.6,15.4686,6.1306
26+
Bream,700,31.9,35,40.5,16.2405,5.589
27+
Bream,725,31.8,35,40.9,16.36,6.0532
28+
Bream,720,32,35,40.6,16.3618,6.09
29+
Bream,714,32.7,36,41.5,16.517,5.8515
30+
Bream,850,32.8,36,41.6,16.8896,6.1984
31+
Bream,1000,33.5,37,42.6,18.957,6.603
32+
Bream,920,35,38.5,44.1,18.0369,6.3063
33+
Bream,955,35,38.5,44,18.084,6.292
34+
Bream,925,36.2,39.5,45.3,18.7542,6.7497
35+
Bream,975,37.4,41,45.9,18.6354,6.7473
36+
Bream,950,38,41,46.5,17.6235,6.3705
37+
Roach,40,12.9,14.1,16.2,4.1472,2.268
38+
Roach,69,16.5,18.2,20.3,5.2983,2.8217
39+
Roach,78,17.5,18.8,21.2,5.5756,2.9044
40+
Roach,87,18.2,19.8,22.2,5.6166,3.1746
41+
Roach,120,18.6,20,22.2,6.216,3.5742
42+
Roach,0,19,20.5,22.8,6.4752,3.3516
43+
Roach,110,19.1,20.8,23.1,6.1677,3.3957
44+
Roach,120,19.4,21,23.7,6.1146,3.2943
45+
Roach,150,20.4,22,24.7,5.8045,3.7544
46+
Roach,145,20.5,22,24.3,6.6339,3.5478
47+
Roach,160,20.5,22.5,25.3,7.0334,3.8203
48+
Roach,140,21,22.5,25,6.55,3.325
49+
Roach,160,21.1,22.5,25,6.4,3.8
50+
Roach,169,22,24,27.2,7.5344,3.8352
51+
Roach,161,22,23.4,26.7,6.9153,3.6312
52+
Roach,200,22.1,23.5,26.8,7.3968,4.1272
53+
Roach,180,23.6,25.2,27.9,7.0866,3.906
54+
Roach,290,24,26,29.2,8.8768,4.4968
55+
Roach,272,25,27,30.6,8.568,4.7736
56+
Roach,390,29.5,31.7,35,9.485,5.355
57+
Whitefish,270,23.6,26,28.7,8.3804,4.2476
58+
Whitefish,270,24.1,26.5,29.3,8.1454,4.2485
59+
Whitefish,306,25.6,28,30.8,8.778,4.6816
60+
Whitefish,540,28.5,31,34,10.744,6.562
61+
Whitefish,800,33.7,36.4,39.6,11.7612,6.5736
62+
Whitefish,1000,37.3,40,43.5,12.354,6.525
63+
Parkki,55,13.5,14.7,16.5,6.8475,2.3265
64+
Parkki,60,14.3,15.5,17.4,6.5772,2.3142
65+
Parkki,90,16.3,17.7,19.8,7.4052,2.673
66+
Parkki,120,17.5,19,21.3,8.3922,2.9181
67+
Parkki,150,18.4,20,22.4,8.8928,3.2928
68+
Parkki,140,19,20.7,23.2,8.5376,3.2944
69+
Parkki,170,19,20.7,23.2,9.396,3.4104
70+
Parkki,145,19.8,21.5,24.1,9.7364,3.1571
71+
Parkki,200,21.2,23,25.8,10.3458,3.6636
72+
Parkki,273,23,25,28,11.088,4.144
73+
Parkki,300,24,26,29,11.368,4.234
74+
Perch,5.9,7.5,8.4,8.8,2.112,1.408
75+
Perch,32,12.5,13.7,14.7,3.528,1.9992
76+
Perch,40,13.8,15,16,3.824,2.432
77+
Perch,51.5,15,16.2,17.2,4.5924,2.6316
78+
Perch,70,15.7,17.4,18.5,4.588,2.9415
79+
Perch,100,16.2,18,19.2,5.2224,3.3216
80+
Perch,78,16.8,18.7,19.4,5.1992,3.1234
81+
Perch,80,17.2,19,20.2,5.6358,3.0502
82+
Perch,85,17.8,19.6,20.8,5.1376,3.0368
83+
Perch,85,18.2,20,21,5.082,2.772
84+
Perch,110,19,21,22.5,5.6925,3.555
85+
Perch,115,19,21,22.5,5.9175,3.3075
86+
Perch,125,19,21,22.5,5.6925,3.6675
87+
Perch,130,19.3,21.3,22.8,6.384,3.534
88+
Perch,120,20,22,23.5,6.11,3.4075
89+
Perch,120,20,22,23.5,5.64,3.525
90+
Perch,130,20,22,23.5,6.11,3.525
91+
Perch,135,20,22,23.5,5.875,3.525
92+
Perch,110,20,22,23.5,5.5225,3.995
93+
Perch,130,20.5,22.5,24,5.856,3.624
94+
Perch,150,20.5,22.5,24,6.792,3.624
95+
Perch,145,20.7,22.7,24.2,5.9532,3.63
96+
Perch,150,21,23,24.5,5.2185,3.626
97+
Perch,170,21.5,23.5,25,6.275,3.725
98+
Perch,225,22,24,25.5,7.293,3.723
99+
Perch,145,22,24,25.5,6.375,3.825
100+
Perch,188,22.6,24.6,26.2,6.7334,4.1658
101+
Perch,180,23,25,26.5,6.4395,3.6835
102+
Perch,197,23.5,25.6,27,6.561,4.239
103+
Perch,218,25,26.5,28,7.168,4.144
104+
Perch,300,25.2,27.3,28.7,8.323,5.1373
105+
Perch,260,25.4,27.5,28.9,7.1672,4.335
106+
Perch,265,25.4,27.5,28.9,7.0516,4.335
107+
Perch,250,25.4,27.5,28.9,7.2828,4.5662
108+
Perch,250,25.9,28,29.4,7.8204,4.2042
109+
Perch,300,26.9,28.7,30.1,7.5852,4.6354
110+
Perch,320,27.8,30,31.6,7.6156,4.7716
111+
Perch,514,30.5,32.8,34,10.03,6.018
112+
Perch,556,32,34.5,36.5,10.2565,6.3875
113+
Perch,840,32.5,35,37.3,11.4884,7.7957
114+
Perch,685,34,36.5,39,10.881,6.864
115+
Perch,700,34,36,38.3,10.6091,6.7408
116+
Perch,700,34.5,37,39.4,10.835,6.2646
117+
Perch,690,34.6,37,39.3,10.5717,6.3666
118+
Perch,900,36.5,39,41.4,11.1366,7.4934
119+
Perch,650,36.5,39,41.4,11.1366,6.003
120+
Perch,820,36.6,39,41.3,12.4313,7.3514
121+
Perch,850,36.9,40,42.3,11.9286,7.1064
122+
Perch,900,37,40,42.5,11.73,7.225
123+
Perch,1015,37,40,42.4,12.3808,7.4624
124+
Perch,820,37.1,40,42.5,11.135,6.63
125+
Perch,1100,39,42,44.6,12.8002,6.8684
126+
Perch,1000,39.8,43,45.2,11.9328,7.2772
127+
Perch,1100,40.1,43,45.5,12.5125,7.4165
128+
Perch,1000,40.2,43.5,46,12.604,8.142
129+
Perch,1000,41.1,44,46.6,12.4888,7.5958
130+
Pike,200,30,32.3,34.8,5.568,3.3756
131+
Pike,300,31.7,34,37.8,5.7078,4.158
132+
Pike,300,32.7,35,38.8,5.9364,4.3844
133+
Pike,300,34.8,37.3,39.8,6.2884,4.0198
134+
Pike,430,35.5,38,40.5,7.29,4.5765
135+
Pike,345,36,38.5,41,6.396,3.977
136+
Pike,456,40,42.5,45.5,7.28,4.3225
137+
Pike,510,40,42.5,45.5,6.825,4.459
138+
Pike,540,40.1,43,45.8,7.786,5.1296
139+
Pike,500,42,45,48,6.96,4.896
140+
Pike,567,43.2,46,48.7,7.792,4.87
141+
Pike,770,44.8,48,51.2,7.68,5.376
142+
Pike,950,48.3,51.7,55.1,8.9262,6.1712
143+
Pike,1250,52,56,59.7,10.6863,6.9849
144+
Pike,1600,56,60,64,9.6,6.144
145+
Pike,1550,56,60,64,9.6,6.144
146+
Pike,1650,59,63.4,68,10.812,7.48
147+
Smelt,6.7,9.3,9.8,10.8,1.7388,1.0476
148+
Smelt,7.5,10,10.5,11.6,1.972,1.16
149+
Smelt,7,10.1,10.6,11.6,1.7284,1.1484
150+
Smelt,9.7,10.4,11,12,2.196,1.38
151+
Smelt,9.8,10.7,11.2,12.4,2.0832,1.2772
152+
Smelt,8.7,10.8,11.3,12.6,1.9782,1.2852
153+
Smelt,10,11.3,11.8,13.1,2.2139,1.2838
154+
Smelt,9.9,11.3,11.8,13.1,2.2139,1.1659
155+
Smelt,9.8,11.4,12,13.2,2.2044,1.1484
156+
Smelt,12.2,11.5,12.2,13.4,2.0904,1.3936
157+
Smelt,13.4,11.7,12.4,13.5,2.43,1.269
158+
Smelt,12.2,12.1,13,13.8,2.277,1.2558
159+
Smelt,19.7,13.2,14.3,15.2,2.8728,2.0672
160+
Smelt,19.9,13.8,15,16.2,2.9322,1.8792
Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
11
import 'package:ml_algo/ml_algo.dart';
22
import 'package:ml_dataframe/ml_dataframe.dart';
3+
import 'package:ml_preprocessing/ml_preprocessing.dart';
34

4-
void main() {
5-
final samples = getHousingDataFrame().shuffle(seed: 4);
5+
void main() async {
6+
final sourceSamples = await fromCsv('example/fish.csv');
7+
final encoder = Encoder.oneHot(sourceSamples, columnNames: ['Species']);
8+
final samples = encoder.process(sourceSamples).shuffle(seed: 13);
69
final splits = splitData(samples, [0.8]);
7-
final model = LinearRegressor(splits.first, 'MEDV',
8-
optimizerType: LinearOptimizerType.gradient,
9-
batchSize: splits.first.rows.length,
10-
collectLearningData: true,
11-
// learningRateType: LearningRateType.timeBased,
12-
initialLearningRate: 0.01,
13-
decay: 290000);
10+
final targetColumn = 'Weight';
11+
final model = LinearRegressor(
12+
splits.first,
13+
targetColumn,
14+
optimizerType: LinearOptimizerType.gradient,
15+
batchSize: splits.first.rows.length,
16+
initialLearningRate: 1e-9,
17+
);
1418

15-
print('MAPE error: ${model.assess(splits.last, MetricType.mape)}');
16-
print('Cost per iteration: ${model.costPerIteration}');
17-
print(model
18-
.predict(splits.last.dropSeries(names: ['MEDV']))['MEDV']
19-
.data
20-
.take(30)
21-
.map((val) => num.parse(val.toString()).toStringAsFixed(1))
22-
.toList());
23-
print(splits.last['MEDV'].data.take(30).toList());
19+
print('Error: ${model.assess(splits.last, MetricType.mape)}');
2420
}

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: ml_algo
22
description: Machine learning algorithms, Machine learning models performance evaluation functionality
3-
version: 16.17.8
3+
version: 16.17.9
44
homepage: https://github.com/gyrdym/ml_algo
55

66
environment:

0 commit comments

Comments
 (0)