From 8c7924b288d277823676b706d3a53fed4af8acc3 Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Wed, 24 May 2023 10:53:38 +0200 Subject: Improving stationary and transition entropy calculation. --- src/argaze/GazeAnalysis/Entropy.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/argaze/GazeAnalysis/Entropy.py b/src/argaze/GazeAnalysis/Entropy.py index a185852..e6a60f1 100644 --- a/src/argaze/GazeAnalysis/Entropy.py +++ b/src/argaze/GazeAnalysis/Entropy.py @@ -24,32 +24,32 @@ class AOIScanPathAnalyzer(GazeFeatures.AOIScanPathAnalyzer): pass - def analyze(self, aoi_scan_path: GazeFeatures.AOIScanPathType, transition_matrix_probability: pandas.DataFrame) -> Any: + def analyze(self, aoi_scan_path: GazeFeatures.AOIScanPathType, transition_matrix_probabilities: pandas.DataFrame) -> Any: """Analyze aoi scan.""" assert(len(aoi_scan_path) > 1) # Count total number of fixations and how many fixations are there per aoi - scan_fixation_count, aoi_fixation_count = aoi_scan_path.fixation_count() + scan_fixations_count, aoi_fixations_count = aoi_scan_path.fixations_count() # Probability to have a fixation onto each aoi - stationary_probalities = {aoi: count/scan_fixation_count for aoi, count in aoi_fixation_count.items()} + stationary_probalities = {aoi: count/scan_fixations_count for aoi, count in aoi_fixations_count.items()} # Stationary entropy stationary_entropy = 0 for aoi, p in stationary_probalities.items(): - stationary_entropy += p * numpy.log(p + 0.00000001) + stationary_entropy += p * numpy.log(p + 1e-9) stationary_entropy *= -1 # Transition entropy transition_entropy = 0 - aoi_sum = transition_matrix_probability.apply(lambda row: row.apply(lambda p: p * numpy.log(p + 0.00000001)).sum(), axis=1) + destination_p_log_sum = transition_matrix_probabilities.apply(lambda row: row.apply(lambda p: p * numpy.log(p + 1e-9)).sum(), axis=1) - for aoi, s in aoi_sum.items(): + for aoi, s in destination_p_log_sum.items(): transition_entropy += s * stationary_probalities[aoi] -- cgit v1.1