// // OutlierFinder.cpp // // Created by Marc Melikyan on 11/13/20. // #include "OutlierFinder.hpp" #include "Stat/Stat.hpp" #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; } }