// // OutlierFinder.cpp // // Created by Marc Melikyan on 11/13/20. // #include "outlier_finder.h" #include "../stat/stat.h" #include namespace MLPP { OutlierFinder::OutlierFinder(int threshold) : threshold(threshold) { } std::vector> OutlierFinder::modelSetTest(std::vector> inputSet) { Stat stat; std::vector> outliers; outliers.resize(inputSet.size()); for (int i = 0; i < inputSet.size(); i++) { for (int j = 0; j < inputSet[i].size(); j++) { double z = (inputSet[i][j] - stat.mean(inputSet[i])) / stat.standardDeviation(inputSet[i]); if (abs(z) > threshold) { outliers[i].push_back(inputSet[i][j]); } } } return outliers; } std::vector OutlierFinder::modelTest(std::vector inputSet) { Stat stat; std::vector outliers; for (int i = 0; i < inputSet.size(); i++) { double z = (inputSet[i] - stat.mean(inputSet)) / stat.standardDeviation(inputSet); if (abs(z) > threshold) { outliers.push_back(inputSet[i]); } } return outliers; } } //namespace MLPP