Skip to content

Commit 6acf9ae

Browse files
author
Olcay Taner YILDIZ
committed
Updated util dependencies.
1 parent 005c19a commit 6acf9ae

5 files changed

Lines changed: 8 additions & 11 deletions

File tree

Classification/InstanceList/InstanceList.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class label. The function reads the file line by line and for each line; dependi
5858
self.list = []
5959
file = open(fileName, 'r', encoding='utf8')
6060
lines = file.readlines()
61+
file.close()
6162
for line in lines:
6263
attributeList = line.strip().split(separator)
6364
if len(attributeList) == listOrDefinition.attributeCount() + 1:

Classification/InstanceList/Partition.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import random
22

3+
from Util.RandomArray import RandomArray
4+
35
from Classification.InstanceList.InstanceList import InstanceList
46
from Classification.InstanceList.InstanceListOfSameClass import InstanceListOfSameClass
57

@@ -35,9 +37,7 @@ def __init__(self, instanceList: InstanceList = None, ratio=None, seed=None, str
3537
if stratified:
3638
distribution = instanceList.classDistribution()
3739
counts = [0] * len(distribution)
38-
randomArray = [i for i in range(instanceList.size())]
39-
random.seed(seed)
40-
random.shuffle(randomArray)
40+
randomArray = RandomArray.indexArray(instanceList.size(), seed)
4141
for i in range(instanceList.size()):
4242
instance = instanceList.get(randomArray[i])
4343
classIndex = distribution.getIndex(instance.getClassLabel())

Classification/Model/DecisionTree/DecisionNode.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from Math.DiscreteDistribution import DiscreteDistribution
2+
from Util.RandomArray import RandomArray
23

34
from Classification.Attribute.ContinuousAttribute import ContinuousAttribute
45
from Classification.Attribute.DiscreteAttribute import DiscreteAttribute
@@ -67,12 +68,11 @@ def __init__(self, data: InstanceList, condition=None, parameter=None, isStump=F
6768
return
6869
if isStump and condition is not None:
6970
return
70-
indexList = [i for i in range(data.get(0).attributeSize())]
7171
if parameter is not None and parameter.getAttributeSubsetSize() < data.get(0).attributeSize():
72-
random.seed(parameter.getSeed())
73-
random.shuffle(indexList)
72+
indexList = RandomArray.indexArray(data.get(0).attributeSize(), parameter.getSeed())
7473
size = parameter.getAttributeSubsetSize()
7574
else:
75+
indexList = [i for i in range(data.get(0).attributeSize())]
7676
size = data.get(0).attributeSize()
7777
classDistribution = data.classDistribution()
7878
bestEntropy = data.classDistribution().entropy()

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
author='olcaytaner',
1818
author_email='olcay.yildiz@ozyegin.edu.tr',
1919
description='Classification library',
20-
install_requires=['NlpToolkit-Math', 'NlpToolkit-DataStructure', 'NlpToolkit-Sampling'],
20+
install_requires=['NlpToolkit-Math', 'NlpToolkit-DataStructure', 'NlpToolkit-Sampling', 'NlpToolkit-Util'],
2121
long_description=long_description,
2222
long_description_content_type='text/markdown'
2323
)

test/Classifier/C45Test.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@ def test_Train(self):
2020
self.assertAlmostEqual(6.48, 100 * c45.test(self.car.getInstanceList()).getErrorRate(), 2)
2121
c45.train(self.tictactoe.getInstanceList(), c45Parameter)
2222
self.assertAlmostEqual(8.77, 100 * c45.test(self.tictactoe.getInstanceList()).getErrorRate(), 2)
23-
c45.train(self.nursery.getInstanceList(), c45Parameter)
24-
self.assertAlmostEqual(2.31, 100 * c45.test(self.nursery.getInstanceList()).getErrorRate(), 2)
25-
c45.train(self.chess.getInstanceList(), c45Parameter)
26-
self.assertAlmostEqual(52.57, 100 * c45.test(self.chess.getInstanceList()).getErrorRate(), 2)
2723

2824

2925
if __name__ == '__main__':

0 commit comments

Comments
 (0)