-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstants.py
103 lines (75 loc) · 2.88 KB
/
constants.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
"""
Module with constant values used in the churn_library.py module
Author: Rudi César Comitto Modena
Date: August, 2022
"""
from typing import Final
# Dataset settings
DATASET_PATH: Final[str] = "./data/bank_data.csv"
# EDA settings
RESPONSE_VARIABLE: Final[str] = "Churn"
RESPONSE_BASE_VARIABLE: Final[str] = "Attrition_Flag"
COSTUMER_CHURN_VALUE: Final[str] = "Attrited Customer"
EDA_FIGURE_WIDTH: Final[int] = 20
EDA_FIGURE_HEIGHT: Final[int] = 10
EDA_FIGURE_FOLDER: Final[str] = "./images/eda/"
EDA_CHURN_DISTRIB_FILENAME: Final[str] = (EDA_FIGURE_FOLDER
+ "churn_distribution.png")
EDA_HEATMAP_FILENAME: Final[str] = EDA_FIGURE_FOLDER + "heatmap.png"
EDA_CUSTOMER_AGE_VAR: Final[str] = "Customer_Age"
EDA_CUST_AGE_DIST_FILE: Final[str] = (EDA_FIGURE_FOLDER
+ "customer_age_distribution.png")
EDA_MARITAL_STATUS_VAR: Final[str] = "Marital_Status"
EDA_MARITAL_DIST_FILE: Final[str] = (EDA_FIGURE_FOLDER
+ "marital_status_distribution.png")
EDA_TOTAL_TRANSACT_VAR: Final[str] = "Total_Trans_Ct"
EDA_TOTAL_TRANSACT_FILE: Final[str] = (EDA_FIGURE_FOLDER
+ "total_transaction_distribution.png")
# Modeling Settings
TEST_SIZE: Final[float] = 0.3
RANDOM_STATE: Final[int] = 42
LRC_SOLVER: Final[str] = 'lbfgs'
LRC_MAX_ITER: Final[int] = 3000
# Categorical Columns
CAT_COLUMNS: Final[list] = [
'Gender',
'Education_Level',
'Marital_Status',
'Income_Category',
'Card_Category'
]
# Remove Columns for analysis
REMOVE_COLUMNS: Final[list] = [
'Unnamed: 0',
'CLIENTNUM',
'Attrition_Flag',
]
PARAM_GRID: Final[dict] = {
'n_estimators': [200, 500],
'max_features': ['auto', 'sqrt'],
'max_depth' : [4,5,100],
'criterion' :['gini', 'entropy']
}
CROSS_VALID: Final[int] = 5
# Results settings
MODELS_FOLDER: Final[str] = "./models/"
RFC_MODEL_FILENAME: Final[str] = MODELS_FOLDER + 'rfc_model.pkl'
LOGISTIC_MODEL_FILENAME: Final[str] = MODELS_FOLDER + 'logistic_model.pkl'
RESULTS_FIGURE_FOLDER: Final[str] = "./images/results/"
LOGISTIC_RESULTS_FILENAME: Final[str] = (RESULTS_FIGURE_FOLDER
+ "logistic_results.png")
RFC_RESULTS_FILENAME: Final[str] = RESULTS_FIGURE_FOLDER + "rfc_results.png"
RESULTS_REPORTS_WIDTH: Final[int] = 5
RESULTS_REPORTS_HEIGHT: Final[int] = 5
RESULTS_FONT_SETUP: Final[dict] = {
'fontsize': 10,
'fontproperties': 'monospace'
}
RESULTS_ROC_FILENAME: Final[str] = (RESULTS_FIGURE_FOLDER
+ "roc_curve_result.png")
RESULTS_ROC_WIDTH: Final[int] = 5
RESULTS_ROC_HEIGHT: Final[int] = 5
RESULTS_IMPORTANCE_FILENAME: Final[str] = (RESULTS_FIGURE_FOLDER
+ "feature_importances.png")
RESULTS_IMPORTANCE_WIDTH: Final[int] = 20
RESULTS_IMPORTANCE_HEIGHT: Final[int] = 5