Program Listing for File SCDGroundTruthComparison.hpp

Return to documentation for file (include/networkit/scd/SCDGroundTruthComparison.hpp)

#ifndef NETWORKIT_SCD_SCD_GROUND_TRUTH_COMPARISON_HPP_
#define NETWORKIT_SCD_SCD_GROUND_TRUTH_COMPARISON_HPP_

#include <networkit/base/Algorithm.hpp>
#include <networkit/graph/Graph.hpp>
#include <networkit/structures/Cover.hpp>

#include <map>
#include <set>

namespace NetworKit {

class SCDGroundTruthComparison final : public Algorithm {
public:
    SCDGroundTruthComparison(const Graph &g, const Cover &groundTruth,
                             const std::map<node, std::set<node>> &found, bool ignoreSeeds = false);

    void run() override;

    const std::map<index, double> &getIndividualJaccard() const;

    const std::map<index, double> &getIndividualPrecision() const;

    const std::map<index, double> &getIndividualRecall() const;

    const std::map<index, double> &getIndividualF1() const;

    double getAverageJaccard() const;

    double getAverageF1() const;

    double getAveragePrecision() const;

    double getAverageRecall() const;

private:
    const Graph *g;
    const Cover *groundTruth;
    const std::map<node, std::set<node>> *found;
    bool ignoreSeeds;

    std::map<index, double> jaccardScores;
    double averageJaccard;
    std::map<index, double> f1Scores;
    double averageF1;
    std::map<index, double> precisionScores;
    double averagePrecision;
    std::map<index, double> recallScores;
    double averageRecall;
};

} /* namespace NetworKit */

#endif // NETWORKIT_SCD_SCD_GROUND_TRUTH_COMPARISON_HPP_