Skip to content

Commit a9bd3c6

Browse files
authored
Distribution calculator: entity renamed (#160)
1 parent efdf956 commit a9bd3c6

File tree

14 files changed

+58
-52
lines changed

14 files changed

+58
-52
lines changed

CHANGELOG.md

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

3+
## 15.3.2
4+
- Awfully long identifier `SequenceElementsDistributionCalculator` renamed to `DistributionCalculator`
5+
36
## 15.3.1
47
- README:
58
- typos corrected

lib/src/classifier/decision_tree_classifier/_init_module.dart

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import 'package:ml_algo/src/classifier/decision_tree_classifier/_injector.dart';
22
import 'package:ml_algo/src/classifier/decision_tree_classifier/decision_tree_classifier_factory.dart';
33
import 'package:ml_algo/src/classifier/decision_tree_classifier/decision_tree_classifier_factory_impl.dart';
4-
import 'package:ml_algo/src/common/sequence_elements_distribution_calculator/distribution_calculator_factory.dart';
5-
import 'package:ml_algo/src/common/sequence_elements_distribution_calculator/distribution_calculator_factory_impl.dart';
4+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator_factory.dart';
5+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator_factory_impl.dart';
66
import 'package:ml_algo/src/di/common/init_common_module.dart';
7-
import 'package:ml_algo/src/di/injector.dart';
87
import 'package:ml_algo/src/tree_trainer/leaf_detector/leaf_detector_factory.dart';
98
import 'package:ml_algo/src/tree_trainer/leaf_detector/leaf_detector_factory_impl.dart';
109
import 'package:ml_algo/src/tree_trainer/leaf_label/leaf_label_factory_factory.dart';
@@ -27,8 +26,8 @@ void initDecisionTreeModule() {
2726

2827
decisionTreeInjector
2928
..clearAll()
30-
..registerSingleton<SequenceElementsDistributionCalculatorFactory>(
31-
() => const SequenceElementsDistributionCalculatorFactoryImpl())
29+
..registerSingleton<DistributionCalculatorFactory>(
30+
() => const DistributionCalculatorFactoryImpl())
3231

3332
..registerSingleton<NominalTreeSplitterFactory>(
3433
() => const NominalTreeSplitterFactoryImpl())
@@ -60,7 +59,7 @@ void initDecisionTreeModule() {
6059
..registerSingleton<TreeLeafLabelFactoryFactory>(
6160
() => TreeLeafLabelFactoryFactoryImpl(
6261
decisionTreeInjector
63-
.get<SequenceElementsDistributionCalculatorFactory>(),
62+
.get<DistributionCalculatorFactory>(),
6463
))
6564

6665
..registerSingleton<TreeTrainerFactory>(
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'dart:collection';
22

3-
abstract class SequenceElementsDistributionCalculator {
3+
abstract class DistributionCalculator {
44
HashMap<T, double> calculate<T>(Iterable<T> sequence,
55
[int classLabelsLength]);
66
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator.dart';
2+
3+
abstract class DistributionCalculatorFactory {
4+
DistributionCalculator create();
5+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator.dart';
2+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator_factory.dart';
3+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator_impl.dart';
4+
5+
class DistributionCalculatorFactoryImpl implements
6+
DistributionCalculatorFactory {
7+
8+
const DistributionCalculatorFactoryImpl();
9+
10+
@override
11+
DistributionCalculator create() =>
12+
const DistributionCalculatorImpl();
13+
}
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
import 'dart:collection';
22

3-
import 'package:ml_algo/src/common/sequence_elements_distribution_calculator/distribution_calculator.dart';
3+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator.dart';
44

5-
class SequenceElementsDistributionCalculatorImpl implements
6-
SequenceElementsDistributionCalculator {
7-
const SequenceElementsDistributionCalculatorImpl();
5+
class DistributionCalculatorImpl implements DistributionCalculator {
6+
7+
const DistributionCalculatorImpl();
88

99
@override
1010
HashMap<T, double> calculate<T>(Iterable<T> sequence,
1111
[int classLabelsLength]) {
12+
1213
if (sequence.isEmpty || classLabelsLength == 0) {
1314
throw Exception('Empty value collection was provided');
1415
}
16+
1517
final length = classLabelsLength ?? sequence.length;
1618
final bins = HashMap<T, double>();
1719
final probabilityStep = 1 / length;
20+
1821
sequence.forEach((value) =>
1922
bins.update(value,
2023
(existing) => existing + probabilityStep,
2124
ifAbsent: () => probabilityStep),
2225
);
26+
2327
return bins;
2428
}
2529
}

lib/src/common/sequence_elements_distribution_calculator/distribution_calculator_factory.dart

Lines changed: 0 additions & 5 deletions
This file was deleted.

lib/src/common/sequence_elements_distribution_calculator/distribution_calculator_factory_impl.dart

Lines changed: 0 additions & 13 deletions
This file was deleted.

lib/src/tree_trainer/leaf_label/leaf_label_factory_factory_impl.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import 'package:ml_algo/src/common/sequence_elements_distribution_calculator/distribution_calculator_factory.dart';
1+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator_factory.dart';
22
import 'package:ml_algo/src/tree_trainer/leaf_label/leaf_label_factory.dart';
33
import 'package:ml_algo/src/tree_trainer/leaf_label/leaf_label_factory_factory.dart';
44
import 'package:ml_algo/src/tree_trainer/leaf_label/leaf_label_factory_type.dart';
@@ -9,7 +9,7 @@ class TreeLeafLabelFactoryFactoryImpl implements
99

1010
TreeLeafLabelFactoryFactoryImpl(this._distributionCalculatorFactory);
1111

12-
final SequenceElementsDistributionCalculatorFactory
12+
final DistributionCalculatorFactory
1313
_distributionCalculatorFactory;
1414

1515
@override

lib/src/tree_trainer/leaf_label/majority_leaf_label_factory.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'dart:collection';
22

3-
import 'package:ml_algo/src/common/sequence_elements_distribution_calculator/distribution_calculator.dart';
3+
import 'package:ml_algo/src/common/distribution_calculator/distribution_calculator.dart';
44
import 'package:ml_algo/src/tree_trainer/leaf_label/leaf_label.dart';
55
import 'package:ml_algo/src/tree_trainer/leaf_label/leaf_label_factory.dart';
66
import 'package:ml_linalg/matrix.dart';
@@ -10,7 +10,7 @@ class MajorityTreeLeafLabelFactory implements TreeLeafLabelFactory {
1010

1111
MajorityTreeLeafLabelFactory(this.distributionCalculator);
1212

13-
final SequenceElementsDistributionCalculator distributionCalculator;
13+
final DistributionCalculator distributionCalculator;
1414

1515
@override
1616
TreeLeafLabel create(Matrix samples, int targetIdx) {

0 commit comments

Comments
 (0)