forked from pycaret/pycaret
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_check_fairness.py
74 lines (56 loc) · 1.8 KB
/
test_check_fairness.py
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import pandas as pd
import pycaret.classification
import pycaret.datasets
import pycaret.regression
def test_check_fairness_binary_classification():
# loading dataset
data = pycaret.datasets.get_data("income")
# initialize setup
pycaret.classification.setup(
data,
target="income >50K",
html=False,
n_jobs=1,
)
# train model
lightgbm = pycaret.classification.create_model("lightgbm", fold=3)
# check fairness
lightgbm_fairness = pycaret.classification.check_fairness(lightgbm, ["sex"])
assert isinstance(lightgbm_fairness, pd.DataFrame)
def test_check_fairness_multiclass_classification():
# loading dataset
data = pycaret.datasets.get_data("iris")
# initialize setup
pycaret.classification.setup(
data,
target="species",
html=False,
n_jobs=1,
train_size=0.8,
)
# train model
lightgbm = pycaret.classification.create_model("lightgbm", cross_validation=False)
# check fairness
lightgbm_fairness = pycaret.classification.check_fairness(
lightgbm, ["sepal_length"]
)
assert isinstance(lightgbm_fairness, pd.DataFrame)
def test_check_fairness_regression():
# loading dataset
data = pycaret.datasets.get_data("boston")
# initialize setup
pycaret.regression.setup(
data,
target="medv",
html=False,
n_jobs=1,
)
# train model
lightgbm = pycaret.regression.create_model("lightgbm", fold=3)
# check fairness
lightgbm_fairness = pycaret.regression.check_fairness(lightgbm, ["chas"])
assert isinstance(lightgbm_fairness, pd.DataFrame)
if __name__ == "__main__":
test_check_fairness_binary_classification()
test_check_fairness_multiclass_classification()
test_check_fairness_regression()