nsdlib.common.models module

class nsdlib.common.models.ClassificationMetrics(TP: int, TN: int, FP: int, FN: int, P: int, N: int)[source]

Bases: object

Confusion matrix representation.

It is based on https://en.wikipedia.org/wiki/Confusion_matrix.

property ACC

Accuracy (ACC).

property F1

F1 score.

property FDR

False discovery rate (FDR).

FN: int
property FNR

Miss rate or false negative rate (FNR).

property FOR

False omission rate (FOR).

FP: int
property FPR

Fall-out or false positive rate (FPR).

N: int
property NPV

Negative predictive value (NPV).

P: int
property PPV

Precision or positive predictive value (PPV).

TN: int
property TNR

Specificity, selectivity or true negative rate (TNR).

TP: int
property TPR

Sensitivity, recall, hit rate, or true positive rate (TPR).

property TS

False omission rate (FOR).

property confusion_matrix: List[List[float]]

Confusion matrix.

get_classification_report() Dict[str, float][source]

Classification report as string.

class nsdlib.common.models.EnsembleSourceDetectionConfig(detection_configs: ~typing.List[~nsdlib.common.models.SourceDetectionConfig] = <factory>, voting_type: ~nsdlib.taxonomies.EnsembleVotingType = EnsembleVotingType.HARD, classifier_weights: ~typing.List[float] = <factory>)[source]

Bases: object

Ensemble source detection configuration.

classifier_weights: List[float]
detection_configs: List[SourceDetectionConfig]
voting_type: EnsembleVotingType = 'hard'
class nsdlib.common.models.EnsembleSourceDetectionResult(config: nsdlib.common.models.EnsembleSourceDetectionConfig, G: networkx.classes.graph.Graph, IG: networkx.classes.graph.Graph, global_scores: Dict[int | str, float], ensemble_scores: List[nsdlib.common.models.SourceDetectionResult], detected_sources: List[str | int])[source]

Bases: object

G: Graph
IG: Graph
config: EnsembleSourceDetectionConfig
detected_sources: List[str | int]
ensemble_scores: List[SourceDetectionResult]
global_scores: Dict[int | str, float]
class nsdlib.common.models.SelectionAlgorithm(selection_method: nsdlib.taxonomies.NodeEvaluationAlgorithm | None = None, selection_threshold: float | None = None)[source]

Bases: object

selection_method: NodeEvaluationAlgorithm | None = None
selection_threshold: float | None = None
class nsdlib.common.models.SourceDetectionConfig(node_evaluation_algorithm: NodeEvaluationAlgorithm = NodeEvaluationAlgorithm.CENTRALITY_DEGREE, selection_algorithm: SelectionAlgorithm | None = None, outbreaks_detection_algorithm: OutbreaksDetectionAlgorithm | None = None, propagation_reconstruction_algorithm: PropagationReconstructionAlgorithm | None = None)[source]

Bases: object

Source detection configuration.

node_evaluation_algorithm: NodeEvaluationAlgorithm = 'degree_centrality'
outbreaks_detection_algorithm: OutbreaksDetectionAlgorithm | None = None
propagation_reconstruction_algorithm: PropagationReconstructionAlgorithm | None = None
selection_algorithm: SelectionAlgorithm | None = None
class nsdlib.common.models.SourceDetectionEvaluation(TP: int, TN: int, FP: int, FN: int, P: int, N: int, real_sources: List[str | int], detected_sources: List[str | int], error_distances: Dict[int | str, float])[source]

Bases: ClassificationMetrics

property avg_error_distance: float

Average error distance.

detected_sources: List[str | int]
error_distances: Dict[int | str, float]
real_sources: List[str | int]
class nsdlib.common.models.SourceDetectionResult(config: nsdlib.common.models.SourceDetectionConfig, G: networkx.classes.graph.Graph, IG: networkx.classes.graph.Graph, global_scores: Dict[int | str, float], scores_in_outbreaks: List[Dict[int | str, float]], detected_sources: List[str | int])[source]

Bases: object

G: Graph
IG: Graph
config: SourceDetectionConfig
detected_sources: List[str | int]
global_scores: Dict[int | str, float]
scores_in_outbreaks: List[Dict[int | str, float]]