Skip to content

Commit 1d4caf9

Browse files
author
Olcay Taner YILDIZ
committed
Updated util dependencies.
1 parent 8b03d00 commit 1d4caf9

File tree

11 files changed

+13
-50
lines changed

11 files changed

+13
-50
lines changed

Test/C45Test.cpp

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,6 @@ TEST_CASE("C45Test-testTrain") {
3939
}
4040
dataDefinition = DataDefinition(attributeTypes);
4141
tictactoe = DataSet(dataDefinition, ",", "tictactoe.data");
42-
attributeTypes.clear();
43-
for (int i = 0; i < 8; i++) {
44-
attributeTypes.emplace_back(AttributeType::DISCRETE);
45-
}
46-
dataDefinition = DataDefinition(attributeTypes);
47-
nursery = DataSet(dataDefinition, ",", "nursery.data");
48-
attributeTypes.clear();
49-
for (int i = 0; i < 6; i++) {
50-
if (i % 2 == 0) {
51-
attributeTypes.emplace_back(AttributeType::DISCRETE);
52-
} else {
53-
attributeTypes.emplace_back(AttributeType::CONTINUOUS);
54-
}
55-
}
56-
dataDefinition = DataDefinition(attributeTypes);
57-
chess = DataSet(dataDefinition, ",", "chess.data");
5842
C45 c45 = C45();
5943
C45Parameter* c45Parameter = new C45Parameter(1, true, 0.2);
6044
InstanceList instanceList = iris.getInstanceList();
@@ -72,10 +56,4 @@ TEST_CASE("C45Test-testTrain") {
7256
instanceList = tictactoe.getInstanceList();
7357
c45.train(instanceList, c45Parameter);
7458
REQUIRE_THAT(3.24, Catch::Matchers::WithinAbs(100 * c45.test(tictactoe.getInstanceList())->getErrorRate(), 0.01));
75-
instanceList = nursery.getInstanceList();
76-
c45.train(instanceList, c45Parameter);
77-
REQUIRE_THAT(0.31, Catch::Matchers::WithinAbs(100 * c45.test(nursery.getInstanceList())->getErrorRate(), 0.01));
78-
instanceList = chess.getInstanceList();
79-
c45.train(instanceList, c45Parameter);
80-
REQUIRE_THAT(47.59, Catch::Matchers::WithinAbs(100 * c45.test(chess.getInstanceList())->getErrorRate(), 0.01));
8159
}

Test/RandomForestTest.cpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,6 @@ TEST_CASE("RandomForestTest-testTrain") {
3939
}
4040
dataDefinition = DataDefinition(attributeTypes);
4141
tictactoe = DataSet(dataDefinition, ",", "tictactoe.data");
42-
attributeTypes.clear();
43-
for (int i = 0; i < 8; i++) {
44-
attributeTypes.emplace_back(AttributeType::DISCRETE);
45-
}
46-
dataDefinition = DataDefinition(attributeTypes);
47-
nursery = DataSet(dataDefinition, ",", "nursery.data");
4842
RandomForest randomForest = RandomForest();
4943
auto* randomForestParameter = new RandomForestParameter(1, 100, 35);
5044
InstanceList instanceList = iris.getInstanceList();
@@ -62,7 +56,4 @@ TEST_CASE("RandomForestTest-testTrain") {
6256
instanceList = tictactoe.getInstanceList();
6357
randomForest.train(instanceList, randomForestParameter);
6458
REQUIRE_THAT(0.0, Catch::Matchers::WithinAbs(100 * randomForest.test(tictactoe.getInstanceList())->getErrorRate(), 0.01));
65-
instanceList = nursery.getInstanceList();
66-
randomForest.train(instanceList, randomForestParameter);
67-
REQUIRE_THAT(0.0, Catch::Matchers::WithinAbs(100 * randomForest.test(nursery.getInstanceList())->getErrorRate(), 0.01));
6859
}
-56.6 KB
Binary file not shown.

conanfile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
class ClassificationConan(ConanFile):
55
name = "Classification"
66
version = "1.0.0"
7-
requires = ["Dictionary/1.0.0", "Sampling/1.0.0", "DataStructure/1.0.0"]
7+
requires = ["Dictionary/1.0.0", "Sampling/1.0.0", "DataStructure/1.0.0", "Util/1.0.0"]
88
license = "GPL License"
99
author = "Olcay Taner Yildiz olcay.yildiz@ozyegin.edu.tr"
1010
url = "https://github.com/StarlangSoftware/Classification-CPP"

conanfile.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Dictionary/1.0.0
33
Sampling/1.0.0
44
DataStructure/1.0.0
5+
Util/1.0.0
56

67
[generators]
78
cmake

src/DataSet/DataSet.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@
55
#include <fstream>
66
#include "DataSet.h"
77
#include "Dictionary/Word.h"
8-
#include "../InstanceList/Partition.h"
98
#include "../Instance/CompositeInstance.h"
109
#include "../Attribute/ContinuousAttribute.h"
1110
#include "../Attribute/DiscreteAttribute.h"
12-
#include "../Attribute/BinaryAttribute.h"
13-
#include "../Attribute/DiscreteIndexedAttribute.h"
1411

1512
/**
1613
* Constructor for generating a new {@link DataSet}.

src/Experiment/KFoldRun.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ void KFoldRun::runExperiment(Classifier *classifier, Parameter *parameter, Exper
3131
* @return An array of performances: result. result[i] is the performance of the classifier on the i'th fold.
3232
*/
3333
ExperimentPerformance *KFoldRun::execute(Experiment experiment) {
34-
ExperimentPerformance* result = new ExperimentPerformance();
35-
KFoldCrossValidation<Instance*>* crossValidation = new KFoldCrossValidation<Instance*>(experiment.getDataSet().getInstances(), K, experiment.getParameter()->getSeed());
34+
auto* result = new ExperimentPerformance();
35+
auto* crossValidation = new KFoldCrossValidation<Instance*>(experiment.getDataSet().getInstances(), K, experiment.getParameter()->getSeed());
3636
runExperiment(experiment.getClassifier(), experiment.getParameter(), result, crossValidation);
3737
return result;
3838
}

src/Experiment/StratifiedMxKFoldRunSeparateTest.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
#include <StratifiedKFoldCrossValidation.h>
66
#include "StratifiedMxKFoldRunSeparateTest.h"
7-
#include "../InstanceList/Partition.h"
87

98
/**
109
* Constructor for StratifiedMxKFoldRunSeparateTest class. Basically sets K parameter of the K-fold cross-validation and M for the number of times.

src/InstanceList/Partition.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "../Attribute/DiscreteAttribute.h"
1010
#include "../Attribute/DiscreteIndexedAttribute.h"
1111
#include "../Attribute/ContinuousAttribute.h"
12+
#include "RandomArray.h"
1213

1314
using namespace std;
1415
/**
@@ -90,12 +91,7 @@ Partition::Partition(InstanceList &list, double ratio, int seed, bool stratified
9091
add(new InstanceList());
9192
add(new InstanceList());
9293
distribution = list.classDistribution();
93-
vector<int> randomArray;
94-
randomArray.reserve(list.size());
95-
for (int i = 0; i < list.size(); i++){
96-
randomArray.push_back(i);
97-
}
98-
std::shuffle(randomArray.begin(), randomArray.end(), default_random_engine(seed));
94+
vector<int> randomArray = RandomArray::indexArray(list.size(), seed);
9995
for (int i = 0; i < list.size(); i++) {
10096
Instance* instance = list.get(randomArray.at(i));
10197
if (counts.count(instance->getClassLabel()) < list.size() * ratio * distribution.getProbability(instance->getClassLabel())) {

src/Model/DecisionTree/DecisionNode.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "../../Attribute/ContinuousAttribute.h"
1212
#include "../../Classifier/Classifier.h"
1313
#include "../../Instance/CompositeInstance.h"
14+
#include "RandomArray.h"
1415

1516
/**
1617
* The entropyForDiscreteAttribute method takes an attributeIndex and creates an ArrayList of DiscreteDistribution.
@@ -124,14 +125,14 @@ DecisionNode::DecisionNode(InstanceList data, DecisionCondition condition, Rando
124125
return;
125126
}
126127
vector<int> indexList;
127-
indexList.reserve(data.get(0)->attributeSize());
128-
for (int i = 0; i < data.get(0)->attributeSize(); i++) {
129-
indexList.push_back(i);
130-
}
131128
if (parameter != nullptr && parameter->getAttributeSubsetSize() < data.get(0)->attributeSize()) {
132-
std::shuffle(indexList.begin(), indexList.end(), default_random_engine(parameter->getSeed()));
129+
indexList = RandomArray::indexArray(data.get(0)->attributeSize(), parameter->getSeed());
133130
size = parameter->getAttributeSubsetSize();
134131
} else {
132+
indexList.reserve(data.get(0)->attributeSize());
133+
for (int i = 0; i < data.get(0)->attributeSize(); i++) {
134+
indexList.push_back(i);
135+
}
135136
size = data.get(0)->attributeSize();
136137
}
137138
classDistribution = data.classDistribution();

0 commit comments

Comments
 (0)