diff --git a/README.md b/README.md index 44b914e..edfb4df 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,62 @@ # Information Modelling & Analysis: Project 2 -Student: enter your name here +Student: Claudio Maggioni Please follow the instructions provided in the project slides and consider the submission instructions available on iCorsi. For your convencience, I the following resources are available in the `resources` folder: - **defects4j-checkout-closure-1f**: The output of the command `defects4j checkout -p Closure -v 1f -w ...` -- **modified_classes** The list of buggy classes in: `framework/projects/Closure/modified_classes/` \ No newline at end of file +- **modified_classes** The list of buggy classes in: `framework/projects/Closure/modified_classes/` + +## Setup + +To install the required libraries run: + +```shell +python3 -m venv .env +source .env/bin/activate +pip install -r requirements.txt +``` + +## Data pre-processing + +To extract and label the feature vectors run: + +```shell +python3 ./extract_feature_vectors.py +python3 ./label_feature_vectors.py +``` + +The labeled feature vectors are stored in file +`./metrics/feature_vectors_labeled.csv` from the repository root. + +## Training + +To train the classifiers with the grid search procedure defined in the report +to later extract the optimal combination of hyperparameters run: + +```shell +python3 ./train_classifiers.py +``` + +and answer `y` to run again training when prompted. Answering `n` simply +computes again data about the best hyperparameter configuration from the metrics +produced by a previous training. + +Raw cross validation training metrics are stored in `./models/models.csv`. The +optimal hyperparameter configurations found are stored in `./models/best.csv`. + +## Evaluation + +To run the 20-times 5-fold cross validation procedure delete the file +`./models/evaluation.csv` and run: + +```shell +python3 ./evaluate_classifiers.py +``` + +Raw data from the repeated cross validation procedure is stored in +`./models/evaluation.csv`. P-values for each metric of each classifier pair are +stored in `./models/model_stats.csv`. + diff --git a/evaluate_classifiers.py b/evaluate_classifiers.py index f35d7ce..abbf511 100755 --- a/evaluate_classifiers.py +++ b/evaluate_classifiers.py @@ -143,6 +143,8 @@ def main(): pvalue = wilcoxon(series_a, series_b).pvalue df_stats.loc[i, 'pvalue'] = pvalue + i += 1 + if metric not in observations: observations[metric] = [] diff --git a/models/boxplot.svg b/models/boxplot.svg index 02dc86b..7567e41 100644 --- a/models/boxplot.svg +++ b/models/boxplot.svg @@ -6,7 +6,7 @@ - 2023-05-27T22:19:21.168970 + 2023-05-31T18:07:50.660651 image/svg+xml @@ -44,7 +44,7 @@ L 106.5216 360.413793 L 87.0784 360.413793 L 87.0784 366.786207 z -" clip-path="url(#p0c45fec8d2)" style="fill: #3274a1; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #3274a1; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #e1812c; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #3a923a; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #c03d3e; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #9372b2; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #845b53; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #3274a1; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #e1812c; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #3a923a; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #c03d3e; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #9372b2; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #845b53; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #3274a1; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #e1812c; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #3a923a; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #c03d3e; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #9372b2; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #845b53; stroke: #3d3d3d; stroke-width: 1.5; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #3274a1; stroke: #3d3d3d; stroke-width: 0.75; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #e1812c; stroke: #3d3d3d; stroke-width: 0.75; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #3a923a; stroke: #3d3d3d; stroke-width: 0.75; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #c03d3e; stroke: #3d3d3d; stroke-width: 0.75; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #9372b2; stroke: #3d3d3d; stroke-width: 0.75; stroke-linejoin: miter"/> +" clip-path="url(#p5d01fc2d82)" style="fill: #845b53; stroke: #3d3d3d; stroke-width: 0.75; stroke-linejoin: miter"/> - - + @@ -452,7 +452,7 @@ z - + @@ -512,7 +512,7 @@ z - + @@ -615,12 +615,12 @@ z - - + @@ -665,7 +665,7 @@ z - + @@ -680,7 +680,7 @@ z - + @@ -721,7 +721,7 @@ z - + @@ -770,7 +770,7 @@ z - + @@ -806,7 +806,7 @@ z - + @@ -848,7 +848,7 @@ z - + @@ -895,7 +895,7 @@ z - + @@ -922,7 +922,7 @@ z - + @@ -978,7 +978,7 @@ z - + @@ -1025,7 +1025,7 @@ z - + @@ -1093,532 +1093,532 @@ z +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - - + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - - - - - + + + + + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - - + + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - - - - - - - - + + + + + + + + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - - + + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> - - - + + + +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> +" clip-path="url(#p5d01fc2d82)" style="fill: none; stroke: #3d3d3d; stroke-width: 1.5; stroke-linecap: square"/> + diff --git a/models/model_stats.csv b/models/model_stats.csv index db9a1ba..adc1330 100644 --- a/models/model_stats.csv +++ b/models/model_stats.csv @@ -1,2 +1,46 @@ ,classifier_a,classifier_b,metric,pvalue -1,BiasedClassifier,SVC,f1,4.337936940303975e-17 +1,DecisionTreeClassifier,GaussianNB,precision,0.08929133280531223 +2,DecisionTreeClassifier,GaussianNB,recall,3.877480505802584e-18 +3,DecisionTreeClassifier,GaussianNB,f1,3.896340037647931e-18 +4,DecisionTreeClassifier,MLPClassifier,precision,0.4012348497407896 +5,DecisionTreeClassifier,MLPClassifier,recall,0.011820059675817408 +6,DecisionTreeClassifier,MLPClassifier,f1,0.4710651684151138 +7,DecisionTreeClassifier,RandomForestClassifier,precision,8.283473187323235e-12 +8,DecisionTreeClassifier,RandomForestClassifier,recall,0.3276029575034267 +9,DecisionTreeClassifier,RandomForestClassifier,f1,1.4515097813437996e-10 +10,DecisionTreeClassifier,SVC,precision,6.472995016722292e-16 +11,DecisionTreeClassifier,SVC,recall,3.864155888689142e-18 +12,DecisionTreeClassifier,SVC,f1,3.896559845095909e-18 +13,GaussianNB,MLPClassifier,precision,0.03476088049603166 +14,GaussianNB,MLPClassifier,recall,3.873544128513129e-18 +15,GaussianNB,MLPClassifier,f1,3.896120241954008e-18 +16,GaussianNB,RandomForestClassifier,precision,5.027978595522601e-10 +17,GaussianNB,RandomForestClassifier,recall,3.8656827355135645e-18 +18,GaussianNB,RandomForestClassifier,f1,3.896120241954008e-18 +19,GaussianNB,SVC,precision,7.361006463422299e-13 +20,GaussianNB,SVC,recall,3.881639684405151e-18 +21,GaussianNB,SVC,f1,4.265842540306607e-18 +22,MLPClassifier,RandomForestClassifier,precision,2.9302015489842885e-09 +23,MLPClassifier,RandomForestClassifier,recall,0.00010909237805840521 +24,MLPClassifier,RandomForestClassifier,f1,1.1542838431590428e-11 +25,MLPClassifier,SVC,precision,3.6744416439536415e-16 +26,MLPClassifier,SVC,recall,5.645631221640026e-18 +27,MLPClassifier,SVC,f1,5.112831740936498e-18 +28,RandomForestClassifier,SVC,precision,4.0161556854627e-18 +29,RandomForestClassifier,SVC,recall,3.8584897469079895e-18 +30,RandomForestClassifier,SVC,f1,3.896559845095909e-18 +31,BiasedClassifier,DecisionTreeClassifier,precision,3.881858705649312e-18 +32,BiasedClassifier,DecisionTreeClassifier,recall,1.0267247842714985e-14 +33,BiasedClassifier,DecisionTreeClassifier,f1,3.881858705649312e-18 +34,BiasedClassifier,GaussianNB,precision,3.876167958900271e-18 +35,BiasedClassifier,GaussianNB,recall,3.7861845925093915e-18 +36,BiasedClassifier,GaussianNB,f1,4.22499456189738e-16 +37,BiasedClassifier,MLPClassifier,precision,3.887338045617697e-18 +38,BiasedClassifier,MLPClassifier,recall,2.2417567344517687e-15 +39,BiasedClassifier,MLPClassifier,f1,3.886680137925553e-18 +40,BiasedClassifier,RandomForestClassifier,precision,3.8798879361158955e-18 +41,BiasedClassifier,RandomForestClassifier,recall,4.647240654275836e-14 +42,BiasedClassifier,RandomForestClassifier,f1,3.8798879361158955e-18 +43,BiasedClassifier,SVC,precision,3.890848669938197e-18 +44,BiasedClassifier,SVC,recall,3.803119001919453e-18 +45,BiasedClassifier,SVC,f1,4.337936940303975e-17 diff --git a/report/main.md b/report/main.md index f228be4..31fe32c 100644 --- a/report/main.md +++ b/report/main.md @@ -21,7 +21,7 @@ expected info, you'll be fine.--> The code and result files, part of this submission, can be found at: - Repository: [https://github.com/infoMA2023/project-02-bug-prediction-maggicl](https://github.com/infoMA2023/project-02-bug-prediction-maggicl) -- Commit ID: **TBD** +- Commit ID: **5f30b3b71b50b28f4c870ff114a760ece1005531** # Data Pre-Processing diff --git a/report/main.pdf b/report/main.pdf index ebaa275..eada68f 100644 Binary files a/report/main.pdf and b/report/main.pdf differ