add oneR to main #2
@ -220,19 +220,22 @@ namespace ARFF {
|
||||
results.emplace(value, 0);
|
||||
}
|
||||
for (int i = 0; i < attribute->values.size(); ++i) {
|
||||
int resultsTotal = 0;
|
||||
if (attribute->values[i] == "?") { continue; }
|
||||
for (auto instance = database.begin(); instance != database.end(); ++instance) {
|
||||
if (instance->values[attributePos] != attribute->values[i]) { continue; }
|
||||
++results[instance->values.back()];
|
||||
resultsTotal++;
|
||||
}
|
||||
debug::Log(kTrace, "Results:");
|
||||
for (auto it : results) { debug::Log(kTrace, "\t" + it.first + ": " + std::to_string(it.second)); }
|
||||
int lowest = 9999;
|
||||
float lowest;
|
||||
float lowestRate = 1.0f;
|
||||
std::string bestResult = results.begin()->first;
|
||||
for (auto it = results.begin(); it != results.end(); ++it) {
|
||||
if (it->second < lowest) {
|
||||
lowest = it->second;
|
||||
} else {
|
||||
if (((resultsTotal - it->second) / float(resultsTotal)) < lowestRate) {
|
||||
lowestRate = ((resultsTotal - it->second) / float(resultsTotal));
|
||||
lowest = resultsTotal - it->second;
|
||||
bestResult = it->first;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user