Skip to content

Commit f94306b

Browse files
author
Olcay Taner YILDIZ
committed
Converted library to snake_case and made small improvements.
1 parent 8785a3c commit f94306b

87 files changed

Lines changed: 1172 additions & 815 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Classification/Attribute/DiscreteIndexedAttribute.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ class DiscreteIndexedAttribute(DiscreteAttribute):
66
__index: int
77
__maxIndex: int
88

9-
def __init__(self, value: str, index: int, maxIndex: int):
9+
def __init__(self,
10+
value: str,
11+
index: int,
12+
maxIndex: int):
1013
"""
1114
Constructor for a discrete attribute.
1215

Classification/Classifier/AutoEncoder.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
class AutoEncoder(Classifier):
1010

11-
def train(self, trainSet: InstanceList, parameters: MultiLayerPerceptronParameter):
11+
def train(self,
12+
trainSet: InstanceList,
13+
parameters: MultiLayerPerceptronParameter):
1214
"""
1315
Training algorithm for auto encoders. An auto encoder is a neural network which attempts to replicate its input
1416
at its output.
@@ -20,8 +22,13 @@ def train(self, trainSet: InstanceList, parameters: MultiLayerPerceptronParamete
2022
parameters : MultiLayerPerceptronParameter
2123
Parameters of the auto encoder.
2224
"""
23-
partition = Partition(trainSet, 0.2, parameters.getSeed(), True)
24-
self.model = AutoEncoderModel(partition.get(1), partition.get(0), parameters)
25+
partition = Partition(instanceList=trainSet,
26+
ratio=0.2,
27+
seed=parameters.getSeed(),
28+
stratified=True)
29+
self.model = AutoEncoderModel(trainSet=partition.get(1),
30+
validationSet=partition.get(0),
31+
parameters=parameters)
2532

2633
def test(self, testSet: InstanceList) -> Performance:
2734
"""

Classification/Classifier/Bagging.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
class Bagging(Classifier):
1111

12-
def train(self, trainSet: InstanceList, parameters: BaggingParameter):
12+
def train(self,
13+
trainSet: InstanceList,
14+
parameters: BaggingParameter):
1315
"""
1416
Bagging bootstrap ensemble method that creates individuals for its ensemble by training each classifier on a
1517
random redistribution of the training set.
@@ -24,9 +26,9 @@ def train(self, trainSet: InstanceList, parameters: BaggingParameter):
2426
parameters : Parameter
2527
Parameters of the bagging trees algorithm. ensembleSize returns the number of trees in the bagged forest.
2628
"""
27-
forestSize = parameters.getEnsembleSize()
29+
forest_size = parameters.getEnsembleSize()
2830
forest = []
29-
for i in range(forestSize):
31+
for i in range(forest_size):
3032
bootstrap = trainSet.bootstrap(i)
3133
tree = DecisionTree(DecisionNode(InstanceList(bootstrap.getSample())))
3234
forest.append(tree)

Classification/Classifier/C45.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
class C45(Classifier):
1010

11-
def train(self, trainSet: InstanceList, parameters: C45Parameter):
11+
def train(self,
12+
trainSet: InstanceList,
13+
parameters: C45Parameter):
1214
"""
1315
Training algorithm for C4.5 univariate decision tree classifier. 20 percent of the data are left aside for
1416
pruning 80 percent of the data is used for constructing the tree.
@@ -21,7 +23,10 @@ def train(self, trainSet: InstanceList, parameters: C45Parameter):
2123
Parameter of the C45 algorithm.
2224
"""
2325
if parameters.isPrune():
24-
partition = Partition(trainSet, parameters.getCrossValidationRatio(), parameters.getSeed(), True)
26+
partition = Partition(instanceList=trainSet,
27+
ratio=parameters.getCrossValidationRatio(),
28+
seed=parameters.getSeed(),
29+
stratified=True)
2530
tree = DecisionTree(DecisionNode(partition.get(1)))
2631
tree.prune(partition.get(0))
2732
else:

Classification/Classifier/C45Stump.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77

88
class C45Stump(Classifier):
99

10-
def train(self, trainSet: InstanceList, parameters: Parameter):
10+
def train(self,
11+
trainSet: InstanceList,
12+
parameters: Parameter):
1113
"""
1214
Training algorithm for C4.5 Stump univariate decision tree classifier.
1315
@@ -18,4 +20,5 @@ def train(self, trainSet: InstanceList, parameters: Parameter):
1820
parameters: Parameter
1921
Parameter of the C45Stump algorithm.
2022
"""
21-
self.model = DecisionTree(DecisionNode(trainSet, None, None, True))
23+
self.model = DecisionTree(DecisionNode(data=trainSet,
24+
isStump=True))

Classification/Classifier/Classifier.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ class Classifier(object):
1616
model: Model
1717

1818
@abstractmethod
19-
def train(self, trainSet: InstanceList, parameters: Parameter):
19+
def train(self,
20+
trainSet: InstanceList,
21+
parameters: Parameter):
2022
pass
2123

2224
def discreteCheck(self, instance: Instance) -> bool:
@@ -52,14 +54,17 @@ def test(self, testSet: InstanceList) -> Performance:
5254
Performance
5355
The accuracy (and error) of the model as an instance of Performance class.
5456
"""
55-
classLabels = testSet.getUnionOfPossibleClassLabels()
56-
confusion = ConfusionMatrix(classLabels)
57+
class_labels = testSet.getUnionOfPossibleClassLabels()
58+
confusion = ConfusionMatrix(class_labels)
5759
for i in range(testSet.size()):
5860
instance = testSet.get(i)
5961
confusion.classify(instance.getClassLabel(), self.model.predict(instance))
6062
return DetailedClassificationPerformance(confusion)
6163

62-
def singleRun(self, parameter: Parameter, trainSet: InstanceList, testSet: InstanceList) -> Performance:
64+
def singleRun(self,
65+
parameter: Parameter,
66+
trainSet: InstanceList,
67+
testSet: InstanceList) -> Performance:
6368
"""
6469
Runs current classifier with the given train and test data.
6570

Classification/Classifier/DeepNetwork.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77

88
class DeepNetwork(Classifier):
99

10-
def train(self, trainSet: InstanceList, parameters: DeepNetworkParameter):
10+
def train(self,
11+
trainSet: InstanceList,
12+
parameters: DeepNetworkParameter):
1113
"""
1214
Training algorithm for deep network classifier.
1315
@@ -18,5 +20,10 @@ def train(self, trainSet: InstanceList, parameters: DeepNetworkParameter):
1820
parameters : DeepNetworkParameter
1921
Parameters of the deep network algorithm. crossValidationRatio and seed are used as parameters.
2022
"""
21-
partition = Partition(trainSet, parameters.getCrossValidationRatio(), parameters.getSeed(), True)
22-
self.model = DeepNetworkModel(partition.get(1), partition.get(0), parameters)
23+
partition = Partition(instanceList=trainSet,
24+
ratio=parameters.getCrossValidationRatio(),
25+
seed=parameters.getSeed(),
26+
stratified=True)
27+
self.model = DeepNetworkModel(trainSet=partition.get(1),
28+
validationSet=partition.get(0),
29+
parameters=parameters)

Classification/Classifier/Dummy.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77
class Dummy(Classifier):
88

9-
def train(self, trainSet: InstanceList, parameters: Parameter):
9+
def train(self,
10+
trainSet: InstanceList,
11+
parameters: Parameter):
1012
"""
1113
Training algorithm for the dummy classifier. Actually dummy classifier returns the maximum occurring class in
1214
the training data, there is no training.

Classification/Classifier/KMeans.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,14 @@
77

88
class KMeans(Classifier):
99

10-
def train(self, trainSet: InstanceList, parameters: KMeansParameter):
11-
priorDistribution = trainSet.classDistribution()
12-
classMeans = InstanceList()
13-
classLists = Partition(trainSet)
14-
for i in range(classLists.size()):
15-
classMeans.add(classLists.get(i).average())
16-
self.model = KMeansModel(priorDistribution, classMeans, parameters.getDistanceMetric())
10+
def train(self,
11+
trainSet: InstanceList,
12+
parameters: KMeansParameter):
13+
prior_distribution = trainSet.classDistribution()
14+
class_means = InstanceList()
15+
class_lists = Partition(trainSet)
16+
for i in range(class_lists.size()):
17+
class_means.add(class_lists.get(i).average())
18+
self.model = KMeansModel(priorDistribution=prior_distribution,
19+
classMeans=class_means,
20+
distanceMetric=parameters.getDistanceMetric())

Classification/Classifier/Knn.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77
class Knn(Classifier):
88

9-
def train(self, trainSet: InstanceList, parameters: KnnParameter):
9+
def train(self,
10+
trainSet: InstanceList,
11+
parameters: KnnParameter):
1012
"""
1113
Training algorithm for K-nearest neighbor classifier.
1214
@@ -17,4 +19,6 @@ def train(self, trainSet: InstanceList, parameters: KnnParameter):
1719
parameters : KnnParameter
1820
Parameters of the Knn algorithm.
1921
"""
20-
self.model = KnnModel(trainSet, parameters.getK(), parameters.getDistanceMetric())
22+
self.model = KnnModel(data=trainSet,
23+
k=parameters.getK(),
24+
distanceMetric=parameters.getDistanceMetric())

0 commit comments

Comments
 (0)