Skip to content

Commit

Permalink
Added post process filtering of the fold models for overfitness
Browse files Browse the repository at this point in the history
  • Loading branch information
Habush committed Mar 24, 2019
1 parent 3d213a8 commit 312462f
Show file tree
Hide file tree
Showing 13 changed files with 301 additions and 13 deletions.
1 change: 1 addition & 0 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
except KeyError:
MOZI_URI = "http://locahost:8080"


def setup_logging(default_path='logging.yml', default_level=logging.INFO):
"""Setup logging configuration
"""
Expand Down
15 changes: 14 additions & 1 deletion crossval/filters/loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from crossval.filters.base_filter import BaseFilter


def get_filter(filter_name):
def get_score_filters(filter_name):
try:
module = importlib.import_module(".score_filters", "crossval.filters")
classes = inspect.getmembers(module, lambda k: inspect.isclass(k))
Expand All @@ -14,5 +14,18 @@ def get_filter(filter_name):
if issubclass(_class, BaseFilter) and name.lower().find(filter_name) != -1:
return _class()

except ImportError:
return None


def get_overfitness_filter(filter_name):
try:
module = importlib.import_module(".overfitness_filters", "crossval.filters")
classes = inspect.getmembers(module, lambda k: inspect.isclass(k))

for name, _class in classes:
if issubclass(_class, BaseFilter) and name.lower().find(filter_name) != -1:
return _class()

except ImportError:
return None
33 changes: 33 additions & 0 deletions crossval/filters/overfitness_filters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
__author__ = 'Abdulrahman Semrie<[email protected]>'

from crossval.filters.base_filter import BaseFilter


class AccuracyFilter(BaseFilter):

def cut_off(self, models, value):
return list(filter(lambda k : k.train_score.accuracy - k.test_score.accuracy <= value, models))


class PrecisionFilter(BaseFilter):

def cut_off(self, models, value):
return list(filter(lambda k : k.train_score.precision - k.test_score.precision <= value, models))


class RecallFilter(BaseFilter):

def cut_off(self, models, value):
return list(filter(lambda k : k.train_score.recall - k.test_score.recall <= value, models))


class F1Score(BaseFilter):

def cut_off(self, models, value):
return list(filter(lambda k : k.train_score.f1_score - k.test_score.f1_score <= value, models))


class PValue(BaseFilter):

def cut_off(self, models, value):
return list(filter(lambda k : k.train_score.p_value - k.test_score.p_value <= value, models))
54 changes: 54 additions & 0 deletions crossval/post_process.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
__author__ = 'Abdulrahman Semrie<[email protected]>'

import pymongo
from config import MONGODB_URI, DB_NAME, DATASET_DIR
import os
import pathlib
import pandas as pd
from crossval.filters import loader
from models.objmodel import Score, MosesModel


class PostProcess:

def __init__(self, filter_type, filter_value, mnemonic):
self.filter_type = filter_type
self.filter_value = filter_value
self.mnemonic = mnemonic

self.data_frame = None

self.session = None
self.models = []

def _retrieve_folds(self, base_dir):
swd = os.path.join(base_dir, f"session_{self.mnemonic}")
assert os.path.exists(swd)
path = pathlib.Path(swd)

for fold_file in path.glob("fold_[0-9].csv"):
if self.data_frame is None:
self.data_frame = pd.read_csv(str(fold_file.absolute()))

else:
self.data_frame = self.data_frame.append(pd.read_csv(str(fold_file.absolute())))

def _folds_to_models(self):
for i, row in self.data_frame.iterrows():
model = MosesModel(row["model"], row['complexity'])
model.test_score = Score(row["recall_test"], row["precision_test"], row["accuracy_test"], row["f1_test"], row["p_value_test"])
model.train_score = Score(row["recall_train"], row["precision_train"], row["accuracy_train"], row["f1_train"], row["p_value_train"])
self.models.append(model)

def filter_models(self, base_dir=DATASET_DIR):
self._retrieve_folds(base_dir)
self._folds_to_models()

filtered_models = []

filter_cls = loader.get_overfitness_filter(self.filter_type)

if filter_cls is not None:
filtered_models = filter_cls.cut_off(self.models, self.filter_value)

return list(map(lambda m: m.__dict__(), filtered_models))
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ pymongo
pyyaml
redis
scikit-learn
scipy
scipy
jsonpickle
2 changes: 1 addition & 1 deletion task/task_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def start_analysis(**kwargs):

try:
filter_type, value = kwargs["filter_opts"]["score"], kwargs["filter_opts"]["value"]
filter_cls = loader.get_filter(filter_type)
filter_cls = loader.get_score_filters(filter_type)
moses_cross_val = CrossValidation(session, db, filter_cls, value, swd)
logger.info("Started cross-validation run")
moses_cross_val.run_folds()
Expand Down
30 changes: 30 additions & 0 deletions tests/data/session_folds/fold_0.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
model,complexity,recall_test,precision_test,accuracy_test,f1_test,p_value_test,recall_train,precision_train,accuracy_train,f1_train,p_value_train
or(and(!$ABTB1 !$ACOX2 !$AGMAT !$AMN) and($ABTB1 $ACOX2)),6,0.5,0.6666666666666666,0.6129032258064516,0.5714285714285715,0.3876953125000001,0.8235294117647058,0.8484848484848485,0.8405797101449275,0.8358208955223881,0.00012829517819532143
and(or(and(!$AGMAT $AMN) $ACOX2) $ABTB1),4,0.375,0.75,0.6129032258064516,0.5,0.2890624999999999,0.7941176470588235,0.84375,0.8260869565217391,0.8181818181818182,0.0002053757361412177
and($ABTB1 $ACOX2),2,0.375,0.75,0.6129032258064516,0.5,0.2890624999999999,0.7352941176470589,0.8620689655172413,0.8115942028985508,0.7936507936507937,0.00020408400998040742
or(and(!$ABTB1 !$AGMAT !$AMN) and($ABTB1 $ACOX2)),5,0.625,0.6666666666666666,0.6451612903225806,0.6451612903225806,0.30175781250000017,0.8529411764705882,0.8055555555555556,0.8260869565217391,0.8285714285714286,0.0004652581580710503
or(and($ABTB1 $ACOX2) and(!$ACOX2 !$AGMAT !$AMN)),5,0.5625,0.6923076923076923,0.6451612903225806,0.6206896551724138,0.26684570312499983,0.8529411764705882,0.8055555555555556,0.8260869565217391,0.8285714285714286,0.0004652581580710503
and(or($ACOX2 !$AGMAT) $ABTB1),3,0.4375,0.7777777777777778,0.6451612903225806,0.56,0.17968750000000003,0.8235294117647058,0.8,0.8115942028985508,0.8115942028985507,0.0007232327164301936
or(and($ABTB1 $ACOX2) and($ABTB1 !$AGMAT) and(!$AGMAT !$AMN)),6,0.6875,0.6875,0.6774193548387096,0.6875,0.21011352539062492,0.9411764705882353,0.7619047619047619,0.8260869565217391,0.8421052631578947,0.0011937454448720044
and(or(and($AGMAT !$AMN) $ABTB1) $ACOX2),4,0.4375,0.7777777777777778,0.6451612903225806,0.56,0.17968750000000003,0.7647058823529411,0.8387096774193549,0.8115942028985508,0.7999999999999999,0.00032801631501352865
or(and($ABTB1 $ACOX2) and(!$AGMAT !$AMN)),4,0.6875,0.6875,0.6774193548387096,0.6875,0.21011352539062492,0.8823529411764706,0.7692307692307693,0.8115942028985508,0.8219178082191781,0.0013621046715842056
and($ACOX2 !$AMN),2,0.4375,0.875,0.6774193548387096,0.5833333333333334,0.0703125,0.7058823529411765,0.8571428571428571,0.7971014492753623,0.7741935483870968,0.0003298385207779936
or(and(!$ABTB1 !$ACOX2 !$AGMAT) and($ABTB1 $ACOX2)),5,0.5,0.5714285714285714,0.5483870967741935,0.5333333333333333,0.7905273437500004,0.8235294117647058,0.8,0.8115942028985508,0.8115942028985507,0.0007232327164301936
and(or(and(or(!$ABTB1 $ACOX2) !$AGMAT) $ACOX2) $ABTB1),5,0.375,0.75,0.6129032258064516,0.5,0.2890624999999999,0.7352941176470589,0.8620689655172413,0.8115942028985508,0.7936507936507937,0.00020408400998040742
and(or(and(or(!$ABTB1 $ACOX2) $AMN) $ACOX2) $ABTB1),5,0.375,0.75,0.6129032258064516,0.5,0.2890624999999999,0.7352941176470589,0.8620689655172413,0.8115942028985508,0.7936507936507937,0.00020408400998040742
or(and($ABTB1 $ACOX2) and(!$ACOX2 !$AGMAT !$AMN) and($ACOX2 $AGMAT !$AMN)),8,0.625,0.7142857142857143,0.6774193548387096,0.6666666666666666,0.17956542968750003,0.8823529411764706,0.7894736842105263,0.8260869565217391,0.8333333333333333,0.0006576543953178447
and(or(and($ACOX2 !$AMN) and(!$AGMAT $AMN)) $ABTB1),5,0.375,1.0,0.6774193548387096,0.5454545454545454,0.03125,0.7352941176470589,0.9259259259259259,0.8405797101449275,0.819672131147541,2.2967108733407456e-05
and(or(!$AGMAT !$AMN) $ABTB1 $ACOX2),4,0.375,1.0,0.6774193548387096,0.5454545454545454,0.03125,0.6764705882352942,0.9583333333333334,0.8260869565217391,0.7931034482758621,2.9802322387695312e-06
and(or(and($ACOX2 !$AMN) !$AGMAT) $ABTB1),4,0.4375,1.0,0.7096774193548387,0.6086956521739131,0.015625,0.7647058823529411,0.8666666666666667,0.8260869565217391,0.8125,0.00012604645012081412
and(or(and(or($ABTB1 $AGMAT) $ACOX2 !$AMN) and(!$AGMAT $AMN)) $ABTB1),7,0.375,1.0,0.6774193548387096,0.5454545454545454,0.03125,0.7352941176470589,0.9259259259259259,0.8405797101449275,0.819672131147541,2.2967108733407456e-05
or(and($ABTB1 !$AGMAT $AMN) and($ACOX2 !$AMN)),5,0.5625,0.9,0.7419354838709677,0.6923076923076923,0.021484374999999997,0.7941176470588235,0.84375,0.8260869565217391,0.8181818181818182,0.0002053757361412177
and($ABTB1 $ACOX2 !$AMN),3,0.25,1.0,0.6129032258064516,0.4,0.125,0.6470588235294118,0.9565217391304348,0.8115942028985508,0.7719298245614036,5.722045898437501e-06
and(or(and(or($ABTB1 $AGMAT) $ACOX2 !$AMN) !$AGMAT) $ABTB1),6,0.4375,1.0,0.7096774193548387,0.6086956521739131,0.015625,0.7647058823529411,0.8666666666666667,0.8260869565217391,0.8125,0.00012604645012081412
and(or(and(or($ABTB1 $AMN) !$AGMAT) !$AMN) $ABTB1 $ACOX2),6,0.375,1.0,0.6774193548387096,0.5454545454545454,0.03125,0.6764705882352942,0.9583333333333334,0.8260869565217391,0.7931034482758621,2.9802322387695312e-06
and(or(and(or($ACOX2 $AGMAT) !$AMN) !$AGMAT) $ABTB1 $ACOX2),6,0.375,1.0,0.6774193548387096,0.5454545454545454,0.03125,0.6764705882352942,0.9583333333333334,0.8260869565217391,0.7931034482758621,2.9802322387695312e-06
and(or(and(!$ACOX2 !$AGMAT $AMN) and($ACOX2 !$AMN)) $ABTB1),6,0.25,1.0,0.6129032258064516,0.4,0.125,0.7058823529411765,0.9230769230769231,0.8260869565217391,0.8000000000000002,3.8144777827131e-05
and(or(and(or($ABTB1 $AMN) !$AGMAT) and($ACOX2 !$AMN)) $ABTB1),6,0.4375,1.0,0.7096774193548387,0.6086956521739131,0.015625,0.7647058823529411,0.8666666666666667,0.8260869565217391,0.8125,0.00012604645012081412
and(or($ABTB1 $AGMAT) $ACOX2 !$AMN),4,0.3125,1.0,0.6451612903225806,0.47619047619047616,0.0625,0.6764705882352942,0.92,0.8115942028985508,0.7796610169491526,6.334248366623988e-05
and(or(and($ABTB1 !$AGMAT) !$AMN) $ACOX2),4,0.5625,0.9,0.7419354838709677,0.6923076923076923,0.021484374999999997,0.7352941176470589,0.8620689655172413,0.8115942028985508,0.7936507936507937,0.00020408400998040742
or(and($ABTB1 !$AGMAT) and($ACOX2 !$AMN)),4,0.625,0.9090909090909091,0.7741935483870968,0.7407407407407406,0.011718750000000002,0.8235294117647058,0.8,0.8115942028985508,0.8115942028985507,0.0007232327164301936
and(or(and(or($ACOX2 $AGMAT) !$AMN) and(!$AGMAT $AMN)) $ABTB1 $ACOX2),7,0.375,1.0,0.6774193548387096,0.5454545454545454,0.03125,0.6764705882352942,0.9583333333333334,0.8260869565217391,0.7931034482758621,2.9802322387695312e-06
29 changes: 29 additions & 0 deletions tests/data/session_folds/fold_1.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
model,complexity,recall_test,precision_test,accuracy_test,f1_test,p_value_test,recall_train,precision_train,accuracy_train,f1_train,p_value_train
and(or($AGFG2 !$ANKRD46) $ADAM19),3,0.5,0.5714285714285714,0.5483870967741935,0.5333333333333333,0.7905273437500004,0.8235294117647058,0.9032258064516129,0.8695652173913043,0.8615384615384616,1.6286575766479503e-05
and(or(and(!$ANKRD46 !$AQP3) $AGFG2) $ADAM19),4,0.4375,0.5833333333333334,0.5483870967741935,0.5,0.7744140625000003,0.7941176470588235,0.9310344827586207,0.8695652173913043,0.8571428571428571,8.323556199256734e-06
or(and($ADAM19 $AGFG2) and(!$ANKRD46 !$AQP3)),4,0.75,0.6666666666666666,0.6774193548387096,0.7058823529411765,0.23788452148437486,0.9117647058823529,0.8378378378378378,0.8695652173913043,0.8732394366197184,7.960847730812074e-05
and(or(and(or($ADAM19 $AQP3) !$ANKRD46) $AGFG2) $ADAM19),5,0.5,0.5714285714285714,0.5483870967741935,0.5333333333333333,0.7905273437500004,0.8235294117647058,0.9032258064516129,0.8695652173913043,0.8615384615384616,1.6286575766479503e-05
and(or(and(or(!$AGFG2 $AQP3) !$ANKRD46) $AGFG2) $ADAM19),5,0.5,0.5714285714285714,0.5483870967741935,0.5333333333333333,0.7905273437500004,0.8235294117647058,0.9032258064516129,0.8695652173913043,0.8615384615384616,1.6286575766479503e-05
and(or(and(or($ANKRD46 $AQP3) $AGFG2) !$ANKRD46) $ADAM19),5,0.5,0.5714285714285714,0.5483870967741935,0.5333333333333333,0.7905273437500004,0.8235294117647058,0.9032258064516129,0.8695652173913043,0.8615384615384616,1.6286575766479503e-05
or(and(or($ADAM19 !$AQP3) $AGFG2) and($ADAM19 !$AGFG2 !$ANKRD46)),6,0.625,0.5882352941176471,0.5806451612903226,0.6060606060606061,0.629058837890625,0.9117647058823529,0.8378378378378378,0.8695652173913043,0.8732394366197184,7.960847730812074e-05
and(or(and($AGFG2 !$AQP3) $ADAM19) !$ANKRD46),4,0.5625,0.6,0.5806451612903226,0.5806451612903225,0.6072387695312501,0.8529411764705882,0.8529411764705882,0.855072463768116,0.8529411764705882,7.997751280618724e-05
and(or(and($AGFG2 !$AQP3) !$ANKRD46) $ADAM19),4,0.4375,0.5833333333333334,0.5483870967741935,0.5,0.7744140625000003,0.7941176470588235,0.9,0.855072463768116,0.84375,2.6785223425411068e-05
and(or(and($AGFG2 $AQP3) !$ANKRD46) $ADAM19),4,0.5,0.5714285714285714,0.5483870967741935,0.5333333333333333,0.7905273437500004,0.7941176470588235,0.9,0.855072463768116,0.84375,2.6785223425411068e-05
or(and($ADAM19 !$ANKRD46) and($AGFG2 !$AQP3)),4,0.5625,0.6,0.5806451612903226,0.5806451612903225,0.6072387695312501,0.8823529411764706,0.8333333333333334,0.855072463768116,0.8571428571428571,0.00012641846373680533
or(and(or($ADAM19 !$AQP3) $AGFG2) and(or(!$AGFG2 $AQP3) $ADAM19 !$ANKRD46)),7,0.625,0.5882352941176471,0.5806451612903226,0.6060606060606061,0.629058837890625,0.9117647058823529,0.8378378378378378,0.8695652173913043,0.8732394366197184,7.960847730812074e-05
and($ADAM19 !$ANKRD46),2,0.4375,0.5833333333333334,0.5483870967741935,0.5,0.7744140625000003,0.7647058823529411,0.896551724137931,0.8405797101449275,0.8253968253968255,4.402038910988803e-05
and(or(and(or(!$ANKRD46 $AQP3) $AGFG2) !$ANKRD46) $ADAM19),5,0.5,0.5714285714285714,0.5483870967741935,0.5333333333333333,0.7905273437500004,0.7941176470588235,0.9,0.855072463768116,0.84375,2.6785223425411068e-05
and(or(and($AGFG2 $AQP3) and(!$ANKRD46 !$AQP3)) $ADAM19),5,0.4375,0.5833333333333334,0.5483870967741935,0.5,0.7744140625000003,0.7647058823529411,0.9285714285714286,0.855072463768116,0.8387096774193549,1.382694240651702e-05
and($ADAM19 !$ANKRD46),2,0.4375,0.5833333333333334,0.5483870967741935,0.5,0.7744140625000003,0.7647058823529411,0.896551724137931,0.8405797101449275,0.8253968253968255,4.402038910988803e-05
and(or(and(or($AGFG2 $ANKRD46) !$AQP3) $ADAM19) !$ANKRD46),5,0.5625,0.6,0.5806451612903226,0.5806451612903225,0.6072387695312501,0.8529411764705882,0.8529411764705882,0.855072463768116,0.8529411764705882,7.997751280618724e-05
and(or($AGFG2 !$AQP3) $ADAM19 !$ANKRD46),4,0.375,0.6,0.5483870967741935,0.4615384615384615,0.7539062500000002,0.7352941176470589,0.9259259259259259,0.8405797101449275,0.819672131147541,2.2967108733407456e-05
and($ADAM19 $AGFG2),2,0.4375,0.6363636363636364,0.5806451612903226,0.5185185185185185,0.548828125,0.7058823529411765,0.9230769230769231,0.8260869565217391,0.8000000000000002,3.8144777827131e-05
and(or(and(or($AGFG2 $ANKRD46) !$AQP3) !$ANKRD46) $ADAM19),5,0.5,0.6153846153846154,0.5806451612903226,0.5517241379310345,0.5810546875,0.7941176470588235,0.8709677419354839,0.8405797101449275,0.8307692307692308,7.772240795323116e-05
and(or(and(or($AGFG2 !$ANKRD46) $ADAM19) and(or($AGFG2 $ANKRD46) !$ADAM19 !$AQP3)) !$ANKRD46),8,0.5625,0.6,0.5806451612903226,0.5806451612903225,0.6072387695312501,0.8529411764705882,0.8529411764705882,0.855072463768116,0.8529411764705882,7.997751280618724e-05
$ADAM19,1,0.5625,0.5294117647058824,0.5161290322580645,0.5454545454545455,0.9999999999999998,0.8529411764705882,0.7837837837837838,0.8115942028985508,0.8169014084507041,0.001009090988096044
and(or(and(!$AGFG2 !$AQP3) $ADAM19) !$ANKRD46),4,0.625,0.6666666666666666,0.6451612903225806,0.6451612903225806,0.30175781250000017,0.7941176470588235,0.84375,0.8260869565217391,0.8181818181818182,0.0002053757361412177
and(or(and(!$AGFG2 !$AQP3) !$ANKRD46) $ADAM19),4,0.5,0.6153846153846154,0.5806451612903226,0.5517241379310345,0.5810546875,0.7647058823529411,0.8666666666666667,0.8260869565217391,0.8125,0.00012604645012081412
and(or(and(or($ADAM19 $AGFG2) or($AGFG2 $ANKRD46) !$AQP3) !$ANKRD46) $ADAM19),7,0.5,0.6153846153846154,0.5806451612903226,0.5517241379310345,0.5810546875,0.7941176470588235,0.8709677419354839,0.8405797101449275,0.8307692307692308,7.772240795323116e-05
or(and(or($ADAM19 $AGFG2) or($AGFG2 $ANKRD46) !$AQP3) and($ADAM19 !$ANKRD46)),7,0.625,0.625,0.6129032258064516,0.625,0.45449829101562506,0.8823529411764706,0.8108108108108109,0.8405797101449275,0.8450704225352113,0.0002982932471420178
and(or(and(or($ADAM19 $AGFG2) !$ANKRD46) and(or($AGFG2 $ANKRD46) !$AQP3)) $ADAM19),7,0.5,0.6153846153846154,0.5806451612903226,0.5517241379310345,0.5810546875,0.7941176470588235,0.8709677419354839,0.8405797101449275,0.8307692307692308,7.772240795323116e-05
and(or(and(or($AGFG2 $ANKRD46) !$AQP3) and($ADAM19 !$ANKRD46)) or($ADAM19 $AGFG2)),7,0.625,0.625,0.6129032258064516,0.625,0.45449829101562506,0.8823529411764706,0.8108108108108109,0.8405797101449275,0.8450704225352113,0.0002982932471420178
10 changes: 10 additions & 0 deletions tests/data/session_folds/fold_2.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
model,complexity,recall_test,precision_test,accuracy_test,f1_test,p_value_test,recall_train,precision_train,accuracy_train,f1_train,p_value_train
and(or(and(!$AMN $APLNR) $AK4) $ACOX2),4,0.625,0.7692307692307693,0.7096774193548387,0.6896551724137931,0.09228515625000003,0.7941176470588235,0.7941176470588235,0.7971014492753623,0.7941176470588235,0.0011201348827110807
and(!$AMN $APLNR),2,0.5,0.7272727272727273,0.6451612903225806,0.5925925925925926,0.22656250000000003,0.7058823529411765,0.8275862068965517,0.782608695652174,0.7619047619047619,0.0008302254277448881
and(or($AK4 !$AMN) $ACOX2),3,0.625,0.7142857142857143,0.6774193548387096,0.6666666666666666,0.17956542968750003,0.7941176470588235,0.7714285714285715,0.782608695652174,0.782608695652174,0.0023457869795667934
and(or($AK4 $APLNR) $ACOX2),3,0.6875,0.7857142857142857,0.7419354838709677,0.7333333333333334,0.05737304687500002,0.7941176470588235,0.7714285714285715,0.782608695652174,0.782608695652174,0.0023457869795667934
or(and($ACOX2 $APLNR) and($AK4 !$AMN)),4,0.8125,0.6842105263157895,0.7096774193548387,0.742857142857143,0.16706848144531244,0.8823529411764706,0.8333333333333334,0.855072463768116,0.8571428571428571,0.00012641846373680533
and(or($ACOX2 $AK4) !$AMN),3,0.6875,0.6875,0.6774193548387096,0.6875,0.21011352539062492,0.7647058823529411,0.896551724137931,0.8405797101449275,0.8253968253968255,4.402038910988803e-05
or(and($ACOX2 $AK4) and($ACOX2 $APLNR) and($AK4 !$AMN)),6,0.8125,0.6842105263157895,0.7096774193548387,0.742857142857143,0.16706848144531244,0.9117647058823529,0.7948717948717948,0.8405797101449275,0.8493150684931507,0.000426982234989981
or(and($ACOX2 !$AMN) and($ACOX2 $APLNR) and($AK4 !$AMN)),6,0.8125,0.65,0.6774193548387096,0.7222222222222223,0.2631759643554687,0.8823529411764706,0.8108108108108109,0.8405797101449275,0.8450704225352113,0.0002982932471420178
or(and($ACOX2 $APLNR) and($AK4 !$AMN) and($AK4 $APLNR)),6,0.9375,0.6521739130434783,0.7096774193548387,0.7692307692307693,0.21003961563110343,0.8823529411764706,0.8108108108108109,0.8405797101449275,0.8450704225352113,0.0002982932471420178
Loading

0 comments on commit 312462f

Please sign in to comment.