Skip to content

Commit 307e744

Browse files
authored
'ml_linalg' version fixed, benchmark info added (#247)
1 parent 14ac3af commit 307e744

13 files changed

+41
-31
lines changed

CHANGELOG.md

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

3+
## 16.17.6
4+
- ml_linalg version fixed (13.11.11)
5+
- benchmark info added
6+
37
## 16.17.5
48
- ml_linalg 13.11.1 used
59

benchmark/cross_validator.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// 8.5 sec
1+
// Approx. 8.5 sec (Macbook Pro 2019, Dart 2.16.0)
2+
23
import 'package:benchmark_harness/benchmark_harness.dart';
34
import 'package:ml_algo/ml_algo.dart';
45
import 'package:ml_dataframe/ml_dataframe.dart';
@@ -26,8 +27,8 @@ class CrossValidatorBenchmark extends BenchmarkBase {
2627

2728
@override
2829
void setup() {
29-
final samples = Matrix.fromRows(
30-
List.generate(observationsNum, (i) => Vector.randomFilled(columnsNum)));
30+
final samples = Matrix.fromRows(List.generate(
31+
observationsNum, (i) => Vector.randomFilled(columnsNum, seed: 12)));
3132
final dataFrame = DataFrame.fromMatrix(samples);
3233

3334
crossValidator = CrossValidator.kFold(dataFrame, numberOfFolds: 5);

benchmark/decision_tree_classifier.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MacBook Air 13.3 mid 2017: ~ 6.5 sec
1+
// Approx. 7.0 sec (Macbook Pro 2019, Dart 2.16.0)
22

33
import 'dart:math';
44

benchmark/inverse_logit_link_function.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
// 0.3 sec
1+
// Approx. 2.5 sec (Macbook Pro 2019, Dart 2.16.0)
22

33
import 'package:benchmark_harness/benchmark_harness.dart';
44
import 'package:ml_algo/src/link_function/inverse_logit_link_function.dart';
55
import 'package:ml_linalg/matrix.dart';
66
import 'package:ml_linalg/vector.dart';
77

8-
const scoresCount = 100000;
8+
const scoresCount = 2000000;
99

1010
class InverseLogitLinkFunctionBenchmark extends BenchmarkBase {
1111
InverseLogitLinkFunctionBenchmark()
@@ -26,7 +26,8 @@ class InverseLogitLinkFunctionBenchmark extends BenchmarkBase {
2626

2727
@override
2828
void setup() {
29-
final scores = Vector.randomFilled(scoresCount, min: -20, max: 20);
29+
final scores =
30+
Vector.randomFilled(scoresCount, min: -20, max: 20, seed: 12);
3031

3132
samples = Matrix.fromColumns([
3233
scores,

benchmark/knn_regressor.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// 6.0 sec (MacBook Air mid 2017)
1+
// Approx. 5.2 sec (Macbook Pro 2019, Dart 2.16.0)
2+
23
import 'package:benchmark_harness/benchmark_harness.dart';
34
import 'package:ml_algo/ml_algo.dart';
45
import 'package:ml_dataframe/ml_dataframe.dart';
@@ -26,10 +27,10 @@ class KnnRegressorBenchmark extends BenchmarkBase {
2627
@override
2728
void setup() {
2829
final featureMatrix = Matrix.fromRows(List.generate(
29-
observationsNum * 2, (i) => Vector.randomFilled(featuresNum)));
30+
observationsNum * 2, (i) => Vector.randomFilled(featuresNum, seed: 1)));
3031

3132
final labelMatrix =
32-
Matrix.fromColumns([Vector.randomFilled(observationsNum * 2)]);
33+
Matrix.fromColumns([Vector.randomFilled(observationsNum * 2, seed: 2)]);
3334

3435
final observations = DataFrame.fromMatrix(Matrix.fromColumns([
3536
...featureMatrix.columns,
@@ -40,7 +41,7 @@ class KnnRegressorBenchmark extends BenchmarkBase {
4041
Matrix.fromRows(
4142
List.generate(
4243
observationsNum,
43-
(i) => Vector.randomFilled(featuresNum),
44+
(i) => Vector.randomFilled(featuresNum, seed: 3),
4445
),
4546
),
4647
);

benchmark/knn_solver.dart

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// MacBook Air 13.3 mid 2017: ~ 5 sec
1+
// Approx. 5.1 sec (Macbook Pro 2019, Dart 2.16.0)
2+
23
import 'package:benchmark_harness/benchmark_harness.dart';
34
import 'package:ml_algo/src/knn_solver/knn_solver.dart';
45
import 'package:ml_algo/src/knn_solver/knn_solver_impl.dart';
@@ -28,16 +29,16 @@ class KnnSolverBenchmark extends BenchmarkBase {
2829

2930
@override
3031
void setup() {
31-
final trainFeatures = Matrix.fromRows(List.generate(
32-
trainObservationsNum, (i) => Vector.randomFilled(featuresNum)));
33-
final trainLabels =
34-
Matrix.fromColumns([Vector.randomFilled(trainObservationsNum)]);
32+
final trainFeatures = Matrix.fromRows(List.generate(trainObservationsNum,
33+
(i) => Vector.randomFilled(featuresNum, seed: 1)));
34+
final trainLabels = Matrix.fromColumns(
35+
[Vector.randomFilled(trainObservationsNum, seed: 2)]);
3536

3637
solver =
3738
KnnSolverImpl(trainFeatures, trainLabels, k, Distance.euclidean, false);
3839

3940
features = Matrix.fromRows(List.generate(
40-
observationsNum, (i) => Vector.randomFilled(featuresNum)));
41+
observationsNum, (i) => Vector.randomFilled(featuresNum, seed: 3)));
4142
}
4243
}
4344

benchmark/lasso_regressor.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// Approx. 4.5 sec (Macbook Pro 2019, Dart 2.16.0)
2+
13
import 'dart:convert';
24
import 'dart:io';
35

benchmark/linear_regressor.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Approx. 5.5 second (MacBook Pro 2019), Dart version: 2.16.0
1+
// Approx. 1.7 second (MacBook Pro 2019, Dart version: 2.16.0)
22

33
import 'package:benchmark_harness/benchmark_harness.dart';
44
import 'package:ml_algo/ml_algo.dart';
@@ -26,9 +26,10 @@ class LinearRegressorBenchmark extends BenchmarkBase {
2626
@override
2727
void setup() {
2828
final features = Matrix.fromRows(List.generate(
29-
observationsNum, (i) => Vector.randomFilled(featuresNum)));
29+
observationsNum, (i) => Vector.randomFilled(featuresNum, seed: 12)));
3030

31-
final labels = Matrix.fromColumns([Vector.randomFilled(observationsNum)]);
31+
final labels =
32+
Matrix.fromColumns([Vector.randomFilled(observationsNum, seed: 13)]);
3233

3334
fittingData = DataFrame.fromMatrix(
3435
Matrix.fromColumns([

benchmark/logistic_regressor.dart renamed to benchmark/logistic_regressor_gradient.dart

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// Approx. 3.3 second (MacBook Pro 2019, Dart version: 2.16.0)
12
// MacBook Air 13.3 mid 2017: ~ 4 sec
23

34
import 'package:benchmark_harness/benchmark_harness.dart';
@@ -19,12 +20,10 @@ class LogisticRegressorBenchmark extends BenchmarkBase {
1920

2021
@override
2122
void run() {
22-
LogisticRegressor(
23-
_data,
24-
'col_20',
25-
minCoefficientsUpdate: 1e-100000,
26-
iterationsLimit: 200,
27-
);
23+
LogisticRegressor(_data, 'col_20',
24+
minCoefficientsUpdate: 1e-100000,
25+
iterationsLimit: 200,
26+
optimizerType: LinearOptimizerType.gradient);
2827
}
2928

3029
@override

benchmark/main.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'linear_regressor.dart' as gradient_descent_regression_benchmark;
2-
import 'logistic_regressor.dart' as logistic_regression_benchmark;
2+
import 'logistic_regressor_gradient.dart' as logistic_regression_benchmark;
33
import 'knn_solver.dart' as knn_regressor_benchmark;
44

55
Future<void> main() async {

0 commit comments

Comments
 (0)