Skip to content

Commit

Permalink
re-tuned HIST and InCode
Browse files Browse the repository at this point in the history
  • Loading branch information
antoineBarbez committed Sep 26, 2019
1 parent ad85c4c commit 5c4fe48
Show file tree
Hide file tree
Showing 30 changed files with 1,636 additions and 1,556 deletions.
2 changes: 1 addition & 1 deletion approaches/hist/detect_feature_envy.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def detect_with_params(systemName, alpha):

# Initialize progressbar
bar = progressbar.ProgressBar(maxval=len(history), \
widgets=['Analyzing ' + systemName + ' History : ' ,progressbar.Percentage()])
widgets=['Analyzing ' + systemName + ' History: ' ,progressbar.Percentage()])
bar.start()


Expand Down
48 changes: 24 additions & 24 deletions experiments/study_results/perfs_feature_envy.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
overall_prediction_incode = np.empty(shape=[0, 1])
overall_prediction_hist = np.empty(shape=[0, 1])
overall_prediction_jd = np.empty(shape=[0, 1])
overall_prediction_vote = np.empty(shape=[0, 1])
overall_prediction_asci = np.empty(shape=[0, 1])
#overall_prediction_vote = np.empty(shape=[0, 1])
#overall_prediction_asci = np.empty(shape=[0, 1])
overall_prediction_smad = np.empty(shape=[0, 1])

overall_labels = np.empty(shape=[0, 1])
Expand All @@ -39,49 +39,49 @@
overall_prediction_jd = np.concatenate((overall_prediction_jd, prediction_jd), axis=0)

# Compute performances for Vote
prediction_vote = nnUtils.predictFromDetect('feature_envy', system, vote.detect('feature_envy', system))
overall_prediction_vote = np.concatenate((overall_prediction_vote, prediction_vote), axis=0)
#prediction_vote = nnUtils.predictFromDetect('feature_envy', system, vote.detect('feature_envy', system))
#overall_prediction_vote = np.concatenate((overall_prediction_vote, prediction_vote), axis=0)

# Compute performances for ASCI
prediction_asci = asci.predict('feature_envy', system)
overall_prediction_asci = np.concatenate((overall_prediction_asci, prediction_asci), axis=0)
#prediction_asci = asci.predict('feature_envy', system)
#overall_prediction_asci = np.concatenate((overall_prediction_asci, prediction_asci), axis=0)

# Compute performances for SMAD
prediction_smad = smad.predict('feature_envy', system)
overall_prediction_smad = np.concatenate((overall_prediction_smad, prediction_smad), axis=0)

# Print performances for the considered system
print(system)
print(' |precision |recall |f_measure')
print(' |precision |recall |mcc')
print('-------------------------------------------')
print('InCode |' + "{0:.3f}".format(nnUtils.precision(prediction_incode, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_incode, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_incode, labels)))
print('InCode |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_incode, labels), nnUtils.recall(prediction_incode, labels), nnUtils.mcc(prediction_incode, labels)))
print('-------------------------------------------')
print('HIST |' + "{0:.3f}".format(nnUtils.precision(prediction_hist, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_hist, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_hist, labels)))
print('HIST |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_hist, labels), nnUtils.recall(prediction_hist, labels), nnUtils.mcc(prediction_hist, labels)))
print('-------------------------------------------')
print('JDeodorant |' + "{0:.3f}".format(nnUtils.precision(prediction_jd, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_jd, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_jd, labels)))
print('JDeodorant |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_jd, labels), nnUtils.recall(prediction_jd, labels), nnUtils.mcc(prediction_jd, labels)))
print('-------------------------------------------')
print('Vote |' + "{0:.3f}".format(nnUtils.precision(prediction_vote, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_vote, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_vote, labels)))
print('-------------------------------------------')
print('ASCI |' + "{0:.3f}".format(nnUtils.precision(prediction_asci, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_asci, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_asci, labels)))
print('-------------------------------------------')
print('SMAD |' + "{0:.3f}".format(nnUtils.precision(prediction_smad, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_smad, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_smad, labels)))
#print('Vote |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_vote, labels), nnUtils.recall(prediction_vote, labels), nnUtils.mcc(prediction_vote, labels)))
#print('-------------------------------------------')
#print('ASCI |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_asci, labels), nnUtils.recall(prediction_asci, labels), nnUtils.mcc(prediction_asci, labels)))
#print('-------------------------------------------')
print('SMAD |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_smad, labels), nnUtils.recall(prediction_smad, labels), nnUtils.mcc(prediction_smad, labels)))
print('-------------------------------------------')

print('\n')

# Print overall performances
print('OVERALL')
print(' |precision |recall |f_measure')
print('-------------------------------------------')
print('InCode |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_incode, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_incode, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_incode, overall_labels)))
print('-------------------------------------------')
print('HIST |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_hist, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_hist, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_hist, overall_labels)))
print(' |precision |recall |mcc')
print('-------------------------------------------')
print('JDeodorant |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_jd, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_jd, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_jd, overall_labels)))
print('InCode |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_incode, overall_labels), nnUtils.recall(overall_prediction_incode, overall_labels), nnUtils.mcc(overall_prediction_incode, overall_labels)))
print('-------------------------------------------')
print('Vote |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_vote, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_vote, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_vote, overall_labels)))
print('HIST |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_hist, overall_labels), nnUtils.recall(overall_prediction_hist, overall_labels), nnUtils.mcc(overall_prediction_hist, overall_labels)))
print('-------------------------------------------')
print('ASCI |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_asci, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_asci, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_asci, overall_labels)))
print('JDeodorant |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_jd, overall_labels), nnUtils.recall(overall_prediction_jd, overall_labels), nnUtils.mcc(overall_prediction_jd, overall_labels)))
print('-------------------------------------------')
print('SMAD |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_smad, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_smad, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_smad, overall_labels)))
#print('Vote |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_vote, overall_labels), nnUtils.recall(overall_prediction_vote, overall_labels), nnUtils.mcc(overall_prediction_vote, overall_labels)))
#print('-------------------------------------------')
#print('ASCI |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_asci, overall_labels), nnUtils.recall(overall_prediction_asci, overall_labels), nnUtils.mcc(overall_prediction_asci, overall_labels)))
#sprint('-------------------------------------------')
print('SMAD |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_smad, overall_labels), nnUtils.recall(overall_prediction_smad, overall_labels), nnUtils.mcc(overall_prediction_smad, overall_labels)))
print('-------------------------------------------')
48 changes: 24 additions & 24 deletions experiments/study_results/perfs_god_class.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
overall_prediction_decor = np.empty(shape=[0, 1])
overall_prediction_hist = np.empty(shape=[0, 1])
overall_prediction_jd = np.empty(shape=[0, 1])
overall_prediction_vote = np.empty(shape=[0, 1])
overall_prediction_asci = np.empty(shape=[0, 1])
#overall_prediction_vote = np.empty(shape=[0, 1])
#overall_prediction_asci = np.empty(shape=[0, 1])
overall_prediction_smad = np.empty(shape=[0, 1])

overall_labels = np.empty(shape=[0, 1])
Expand All @@ -39,49 +39,49 @@
overall_prediction_jd = np.concatenate((overall_prediction_jd, prediction_jd), axis=0)

# Compute performances for Vote
prediction_vote = nnUtils.predictFromDetect('god_class', system, vote.detect('god_class', system))
overall_prediction_vote = np.concatenate((overall_prediction_vote, prediction_vote), axis=0)
#prediction_vote = nnUtils.predictFromDetect('god_class', system, vote.detect('god_class', system))
#overall_prediction_vote = np.concatenate((overall_prediction_vote, prediction_vote), axis=0)

# Compute performances for ASCI
prediction_asci = asci.predict('god_class', system)
overall_prediction_asci = np.concatenate((overall_prediction_asci, prediction_asci), axis=0)
#prediction_asci = asci.predict('god_class', system)
#overall_prediction_asci = np.concatenate((overall_prediction_asci, prediction_asci), axis=0)

# Compute performances for SMAD
prediction_smad = smad.predict('god_class', system)
overall_prediction_smad = np.concatenate((overall_prediction_smad, prediction_smad), axis=0)

# Print performances for the considered system
print(system)
print(' |precision |recall |f_measure')
print(' |precision |recall |mcc')
print('-------------------------------------------')
print('DECOR |' + "{0:.3f}".format(nnUtils.precision(prediction_decor, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_decor, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_decor, labels)))
print('DECOR |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_decor, labels), nnUtils.recall(prediction_decor, labels), nnUtils.mcc(prediction_decor, labels)))
print('-------------------------------------------')
print('HIST |' + "{0:.3f}".format(nnUtils.precision(prediction_hist, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_hist, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_hist, labels)))
print('HIST |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_hist, labels), nnUtils.recall(prediction_hist, labels), nnUtils.mcc(prediction_hist, labels)))
print('-------------------------------------------')
print('JDeodorant |' + "{0:.3f}".format(nnUtils.precision(prediction_jd, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_jd, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_jd, labels)))
print('JDeodorant |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_jd, labels), nnUtils.recall(prediction_jd, labels), nnUtils.mcc(prediction_jd, labels)))
print('-------------------------------------------')
print('Vote |' + "{0:.3f}".format(nnUtils.precision(prediction_vote, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_vote, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_vote, labels)))
print('-------------------------------------------')
print('ASCI |' + "{0:.3f}".format(nnUtils.precision(prediction_asci, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_asci, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_asci, labels)))
print('-------------------------------------------')
print('SMAD |' + "{0:.3f}".format(nnUtils.precision(prediction_smad, labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(prediction_smad, labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(prediction_smad, labels)))
#print('Vote |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_vote, labels), nnUtils.recall(prediction_vote, labels), nnUtils.mcc(prediction_vote, labels)))
#print('-------------------------------------------')
#print('ASCI |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_asci, labels), nnUtils.recall(prediction_asci, labels), nnUtils.mcc(prediction_asci, labels)))
#print('-------------------------------------------')
print('SMAD |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(prediction_smad, labels), nnUtils.recall(prediction_smad, labels), nnUtils.mcc(prediction_smad, labels)))
print('-------------------------------------------')

print('\n')

# Print overall performances
print('OVERALL')
print(' |precision |recall |f_measure')
print('-------------------------------------------')
print('DECOR |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_decor, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_decor, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_decor, overall_labels)))
print('-------------------------------------------')
print('HIST |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_hist, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_hist, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_hist, overall_labels)))
print(' |precision |recall |mcc')
print('-------------------------------------------')
print('JDeodorant |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_jd, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_jd, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_jd, overall_labels)))
print('DECOR |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_decor, overall_labels), nnUtils.recall(overall_prediction_decor, overall_labels), nnUtils.mcc(overall_prediction_decor, overall_labels)))
print('-------------------------------------------')
print('Vote |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_vote, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_vote, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_vote, overall_labels)))
print('HIST |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_hist, overall_labels), nnUtils.recall(overall_prediction_hist, overall_labels), nnUtils.mcc(overall_prediction_hist, overall_labels)))
print('-------------------------------------------')
print('ASCI |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_asci, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_asci, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_asci, overall_labels)))
print('JDeodorant |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_jd, overall_labels), nnUtils.recall(overall_prediction_jd, overall_labels), nnUtils.mcc(overall_prediction_jd, overall_labels)))
print('-------------------------------------------')
print('SMAD |' + "{0:.3f}".format(nnUtils.precision(overall_prediction_smad, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.recall(overall_prediction_smad, overall_labels)) + ' |' + "{0:.3f}".format(nnUtils.f_measure(overall_prediction_smad, overall_labels)))
#print('Vote |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_vote, overall_labels), nnUtils.recall(overall_prediction_vote, overall_labels), nnUtils.mcc(overall_prediction_vote, overall_labels)))
#print('-------------------------------------------')
#print('ASCI |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_asci, overall_labels), nnUtils.recall(overall_prediction_asci, overall_labels), nnUtils.mcc(overall_prediction_asci, overall_labels)))
#print('-------------------------------------------')
print('SMAD |{0:.3f} |{1:.3f} |{2:.3f}'.format(nnUtils.precision(overall_prediction_smad, overall_labels), nnUtils.recall(overall_prediction_smad, overall_labels), nnUtils.mcc(overall_prediction_smad, overall_labels)))
print('-------------------------------------------')
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
Alpha;F-measure
2.9000000000000017;0.0418848167539267
2.7000000000000015;0.0418848167539267
2.8000000000000016;0.0418848167539267
2.6000000000000014;0.041666666666666664
2.5000000000000013;0.041666666666666664
2.4000000000000012;0.04081632653061224
2.200000000000001;0.04
2.100000000000001;0.04
2.000000000000001;0.04
2.300000000000001;0.03980099502487562
1.4000000000000004;0.02675585284280936
1.3000000000000003;0.025806451612903226
1.2000000000000002;0.024615384615384615
1.1;0.024242424242424242
1.0;0.024096385542168676
1.8000000000000007;0.014545454545454545
1.9000000000000008;0.014545454545454545
1.7000000000000006;0.01444043321299639
1.6000000000000005;0.014234875444839857
1.5000000000000004;0.014134275618374558
Alpha;MCC
2.8000000000000016;0.046257115109219184
2.7000000000000015;0.046257115109219184
2.9000000000000017;0.046257115109219184
2.5000000000000013;0.04568032840320715
2.6000000000000014;0.04568032840320715
2.4000000000000012;0.04354172143244037
2.000000000000001;0.04163500571308873
2.100000000000001;0.04163500571308873
2.200000000000001;0.04163500571308873
2.300000000000001;0.041189604574059034
3.8000000000000025;0.03077310027870945
3.9000000000000026;0.03077310027870945
3.500000000000002;0.03077310027870945
3.6000000000000023;0.03077310027870945
3.7000000000000024;0.03077310027870945
3.0000000000000018;0.030080181921859593
3.200000000000002;0.030080181921859593
3.300000000000002;0.030080181921859593
3.400000000000002;0.030080181921859593
3.100000000000002;0.030080181921859593
1.4000000000000004;0.020859264395112036
1.3000000000000003;0.019730720381896397
1.2000000000000002;0.018341543269036333
1.1;0.01791156940200442
1.0;0.01774376569215136
1.9000000000000008;0.009087082932815817
1.8000000000000007;0.009087082932815817
1.7000000000000006;0.00893215437028269
1.6000000000000005;0.008630767566889049
1.5000000000000004;0.008484111351816329
Loading

0 comments on commit 5c4fe48

Please sign in to comment.