File size: 1,768 Bytes
cbce622
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pandas as pd
from scipy.stats import hmean

df = pd.read_csv('merged_outputs.csv')
df['recall'] = df['tpr']
df['tp'] = df['tpr']*1008
df['fp'] = df['new_tweets'] - df['tp']
df['precision'] = df['tp'] / (df['tp'] + df['fp'])

df['f1'] = hmean(df[['precision', 'recall']], axis=1)
df['f2'] = 5 * (df['precision'] * df['recall']) / ((4 * df['precision'] ) +  df['recall'])
df['f3'] = 10 * (df['precision'] * df['recall']) / ((9 * df['precision'] ) +  df['recall'])
df['f4'] = 17 * (df['precision'] * df['recall']) / ((16 * df['precision'] ) +  df['recall'])
df['f5'] = 26 * (df['precision'] * df['recall']) / ((25 * df['precision'] ) +  df['recall'])

# df['f1'] = harmonic_mean([df['precision'], df['recall']])
metric_names = {
    'hard_threshold_viral_covered_vs_new_tweets_labeled' : 'RT > T',
    'virality_avg_retweets_viral_covered_vs_new_tweets_labeled' : 'RT > Avg. RT',
    'log_retweets_over_log_followers_viral_covered_vs_new_tweets_labeled' : 'log(RT / Followers)',
    'virality_median_retweets_viral_covered_vs_new_tweets_labeled 2': 'RT > Med. RT',
    'retweets_over_log_followers_viral_covered_vs_new_tweets_labeled': 'RT / log(Followers)',
    'roberta_paper_metric_viral_covered_vs_new_tweets_labeled': 'Influence Score',
    'virality_followers_viral_covered_vs_new_tweets_labeled': 'RT / Followers',
    'log_retweets_over_followers_viral_covered_vs_new_tweets_labeled': 'log(RT) / Followers',
    'virality_median_retweets_viral_covered_vs_new_tweets_labeled': 'unused',
    'virality_retweet_percentile_per_user_viral_covered_vs_new_tweets_labeled': 'RT Percentile'
}

df['metric_name'] = '?'
for key, name in metric_names.items():
    df.loc[df.metric == key, 'metric_name'] = name

df.to_csv('all_metric_stats.csv', index = False)
print()