Skip to content

Commit 12c7572

Browse files
author
Olcay Taner YILDIZ
committed
Added model saving for all classifiers.
1 parent 57f83ab commit 12c7572

115 files changed

Lines changed: 396967 additions & 80 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/Classifier/Bagging.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@ def train(self,
3333
tree = DecisionTree(DecisionNode(InstanceList(bootstrap.getSample())))
3434
forest.append(tree)
3535
self.model = TreeEnsembleModel(forest)
36+
37+
def loadModel(self, fileName: str):
38+
self.model = TreeEnsembleModel(fileName)

Classification/Classifier/C45.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,6 @@ def train(self,
3232
else:
3333
tree = DecisionTree(DecisionNode(trainSet))
3434
self.model = tree
35+
36+
def loadModel(self, fileName: str):
37+
self.model = DecisionTree(fileName)

Classification/Classifier/C45Stump.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,6 @@ def train(self,
2222
"""
2323
self.model = DecisionTree(DecisionNode(data=trainSet,
2424
isStump=True))
25+
26+
def loadModel(self, fileName: str):
27+
self.model = DecisionTree(fileName)

Classification/Classifier/Classifier.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from Classification.Performance.ConfusionMatrix import ConfusionMatrix
99
from Classification.Performance.DetailedClassificationPerformance import DetailedClassificationPerformance
1010
from Classification.Model.Model import Model
11-
from DataStructure.CounterHashMap import CounterHashMap
1211

1312

1413
class Classifier(object):
@@ -21,6 +20,10 @@ def train(self,
2120
parameters: Parameter):
2221
pass
2322

23+
@abstractmethod
24+
def loadModel(self, fileName: str):
25+
pass
26+
2427
def discreteCheck(self, instance: Instance) -> bool:
2528
"""
2629
Checks given instance's attribute and returns true if it is a discrete indexed attribute, false otherwise.

Classification/Classifier/DeepNetwork.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,6 @@ def train(self,
2727
self.model = DeepNetworkModel(trainSet=partition.get(1),
2828
validationSet=partition.get(0),
2929
parameters=parameters)
30+
31+
def loadModel(self, fileName: str):
32+
self.model = DeepNetworkModel(fileName)

Classification/Classifier/Dummy.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class Dummy(Classifier):
88

99
def train(self,
1010
trainSet: InstanceList,
11-
parameters: Parameter):
11+
parameters: Parameter = None):
1212
"""
1313
Training algorithm for the dummy classifier. Actually dummy classifier returns the maximum occurring class in
1414
the training data, there is no training.
@@ -21,3 +21,6 @@ def train(self,
2121
Parameter of the Dummy algorithm.
2222
"""
2323
self.model = DummyModel(trainSet)
24+
25+
def loadModel(self, fileName: str):
26+
self.model = DummyModel(fileName)

Classification/Classifier/KMeans.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@ def train(self,
1818
self.model = KMeansModel(priorDistribution=prior_distribution,
1919
classMeans=class_means,
2020
distanceMetric=parameters.getDistanceMetric())
21+
22+
def loadModel(self, fileName: str):
23+
self.model = KMeansModel(fileName)

Classification/Classifier/Knn.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,6 @@ def train(self,
2222
self.model = KnnModel(data=trainSet,
2323
k=parameters.getK(),
2424
distanceMetric=parameters.getDistanceMetric())
25+
26+
def loadModel(self, fileName: str):
27+
self.model = KnnModel(fileName)

Classification/Classifier/Lda.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class Lda(Classifier):
1414

1515
def train(self,
1616
trainSet: InstanceList,
17-
parameters: Parameter):
17+
parameters: Parameter = None):
1818
"""
1919
Training algorithm for the linear discriminant analysis classifier (Introduction to Machine Learning, Alpaydin,
2020
2015).
@@ -46,3 +46,6 @@ def train(self,
4646
w0i = -0.5 * wi.dotProduct(average_vector) + math.log(prior_distribution.getProbability(Ci))
4747
w0[Ci] = w0i
4848
self.model = LdaModel(prior_distribution, w, w0)
49+
50+
def loadModel(self, fileName: str):
51+
self.model = LdaModel(fileName)

Classification/Classifier/LinearPerceptron.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,6 @@ def train(self,
2929
self.model = LinearPerceptronModel(trainSet=partition.get(1),
3030
validationSet=partition.get(0),
3131
parameters=parameters)
32+
33+
def loadModel(self, fileName: str):
34+
self.model = LinearPerceptronModel(fileName)

0 commit comments

Comments
 (0)