Skip to content

Commit

Permalink
Merge pull request #74 from gyrdym/pedantic-package-integration
Browse files Browse the repository at this point in the history
Pedantic package integration
  • Loading branch information
gyrdym committed Feb 10, 2019
2 parents c11d035 + 3b073fe commit 7d5a9ae
Show file tree
Hide file tree
Showing 13 changed files with 26 additions and 18 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 6.0.6
- Pedantic package integration added
- Some linter issues fixed

## 6.0.5
- Coveralls integration added
- dartfm check task added
Expand Down
3 changes: 2 additions & 1 deletion analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
include: package:pedantic/analysis_options.yaml

analyzer:
strong-mode:
implicit-casts: false
Expand All @@ -23,7 +25,6 @@ linter:
- avoid_classes_with_only_static_members
- avoid_renaming_method_parameters
- avoid_return_types_on_setters
- cascade_invocations
- constant_identifier_names
- curly_braces_in_flow_control_structures
- empty_catches
Expand Down
3 changes: 2 additions & 1 deletion autotests.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
#!/usr/bin/env bash
#!/bin/bash

pub run build_runner test -- -p vm
4 changes: 4 additions & 0 deletions lib/ml_algo.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@ export 'package:ml_algo/linear_regressor.dart';
export 'package:ml_algo/ml_data.dart';
export 'package:ml_algo/src/classifier/classifier.dart';
export 'package:ml_algo/src/classifier/linear_classifier.dart';
export 'package:ml_algo/src/data_preprocessing/categorical_encoder/encoder_type.dart';
export 'package:ml_algo/src/metric/classification/type.dart';
export 'package:ml_algo/src/metric/metric_type.dart';
export 'package:ml_algo/src/metric/regression/type.dart';
export 'package:ml_algo/src/model_selection/cross_validator/cross_validator.dart';
export 'package:ml_algo/src/model_selection/cross_validator/cross_validator.dart';
export 'package:ml_algo/src/optimizer/gradient/learning_rate_generator/learning_rate_type.dart';
export 'package:ml_algo/src/optimizer/optimizer_type.dart';
export 'package:ml_algo/src/regressor/gradient_type.dart';
export 'package:ml_algo/src/regressor/linear_regressor.dart';
3 changes: 2 additions & 1 deletion lib/predictor.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:ml_algo/src/metric/metric_type.dart';
import 'package:ml_linalg/linalg.dart';
import 'package:ml_linalg/matrix.dart';
import 'package:ml_linalg/vector.dart';

/// An interface for all the predicting entities: regressor, classifiers, etc.
abstract class Predictor {
Expand Down
7 changes: 7 additions & 0 deletions lib/src/classifier/classifier.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:ml_algo/predictor.dart';
import 'package:ml_linalg/matrix.dart';
import 'package:ml_linalg/vector.dart';

/// An interface for any classifier (linear, non-linear, parametric, non-parametric, etc.)
Expand All @@ -10,4 +11,10 @@ abstract class Classifier implements Predictor {
/// A collection of encoded class labels. Can be transformed back to original labels by a [MLData] instance, that was
/// used previously to encode the labels
Iterable<double> get classLabels;

/// Returns predicted distribution of probabilities for each observation in the passed [features]
MLMatrix predictProbabilities(MLMatrix features);

/// Return a collection of predicted class labels for each observation in the passed [features]
MLVector predictClasses(MLMatrix features);
}
7 changes: 1 addition & 6 deletions lib/src/classifier/linear_classifier.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import 'package:ml_algo/learning_rate_type.dart';
import 'package:ml_algo/src/classifier/classifier.dart';
import 'package:ml_algo/src/classifier/logistic_regressor.dart';
import 'package:ml_algo/src/optimizer/optimizer_type.dart';
import 'package:ml_linalg/matrix.dart';
import 'package:ml_linalg/vector.dart';

/// A factory for all the linear classifiers
abstract class LinearClassifier implements Classifier {
Expand Down Expand Up @@ -73,8 +71,5 @@ abstract class LinearClassifier implements Classifier {
}) = LogisticRegressor;

factory LinearClassifier.SVM() => throw UnimplementedError();
factory LinearClassifier.NaiveBayes() => throw UnimplementedError();

MLMatrix predictProbabilities(MLMatrix features);
MLVector predictClasses(MLMatrix features);
factory LinearClassifier.naiveBayes() => throw UnimplementedError();
}
2 changes: 0 additions & 2 deletions lib/src/metric/classification/accuracy.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import 'dart:typed_data';

import 'package:ml_algo/src/metric/classification/metric.dart';
import 'package:ml_linalg/linalg.dart';

Expand Down
4 changes: 2 additions & 2 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -317,12 +317,12 @@ packages:
source: hosted
version: "1.6.2"
pedantic:
dependency: transitive
dependency: "direct dev"
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
version: "1.1.0"
plugin:
dependency: transitive
description:
Expand Down
3 changes: 2 additions & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: ml_algo
description: Machine learning algorithms written with native dart (without bindings to any popular ML libraries, just pure Dart implementation)
version: 6.0.5
version: 6.0.6
author: Ilia Gyrdymov <ilgyrd@gmail.com>
homepage: https://github.com/gyrdym/ml_algo

Expand All @@ -19,3 +19,4 @@ dev_dependencies:
mockito: ^3.0.0
build_runner: ^1.1.2
build_test: ^0.10.2
pedantic: 1.1.0
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:typed_data';

import 'package:ml_algo/categorical_data_encoder_type.dart';
import 'package:ml_algo/src/data_preprocessing/ml_data/csv_data.dart';
Expand Down
1 change: 0 additions & 1 deletion test/data_preprocessing/test_helpers/test_csv_data.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:typed_data';

import 'package:ml_algo/src/data_preprocessing/categorical_encoder/encoder_factory.dart';
import 'package:ml_algo/src/data_preprocessing/ml_data/csv_data.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import 'package:ml_algo/src/cost_function/cost_function_type.dart';
import 'package:ml_algo/src/cost_function/squared.dart';
import 'package:ml_algo/src/optimizer/coordinate/coordinate.dart';
import 'package:ml_algo/src/optimizer/initial_weights_generator/initial_weights_generator_factory_impl.dart';
import 'package:ml_algo/src/optimizer/initial_weights_generator/initial_weights_type.dart';
import 'package:ml_linalg/linalg.dart';
import 'package:mockito/mockito.dart';
Expand Down

0 comments on commit 7d5a9ae

Please sign in to comment.