# ******************************************************************************
# Neural Network settings
# ******************************************************************************

MAX_NUMBER_OF_VARIABLES     = 12
MIN_NUMBER_OF_VARIABLES     = 8
MAX_NUMBER_OF_LAYERS        = 3
MIN_NUMBER_OF_LAYERS        = 1
MAX_NUMBER_OF_NODES         = 9
MIN_NUMBER_OF_NODES         = 5


# ******************************************************************************
# Genetic Algorithm settings
# ******************************************************************************

from math import ceil

NUMBER_OF_GENERATIONS       = 1000
POPULATION_SIZE             = 25 # Echegaray-Calderon, O A Barrios-Aranibar, D
NUMBER_OF_ELITE_CHROMOSOMES = ceil(POPULATION_SIZE * 0.1)# Echegaray-Calderon, O A Barrios-Aranibar, D
MUTATION_RATE               = 0.01
TARGET_FITNESS              = 1.01
TOURNAMENT_POPULATION       = ceil(POPULATION_SIZE * 0.2)

# ******************************************************************************
# Data Manager settings
# ******************************************************************************

# Data set retrieved from: https://www.kaggle.com/pavansubhasht/ibm-hr-analytics-attrition-dataset
FILE_PATH                   = "/Users/gonzalo/Desktop/turnover_dataset.csv"
VARIABLE_TO_CLASSIFY        = "Attrition"
VARIABLES_TO_OH_ENCODE      =   [
                                    "BusinessTravel",
                                    "Department",
                                    "EducationField",
                                    "JobRole",
                                    "MaritalStatus"
                                ]
VARIABLES_TO_B_ENCODE       =   [
                                    "Gender",
                                    "OverTime",
                                    "Over18"
                                ]
VARIABLES_TO_DELETE         =   [
                                    "EmployeeNumber",
                                    "EmployeeCount",
                                    "Over18",
                                    "DailyRate",
                                    "HourlyRate",
                                    "MonthlyRate",
                                    "StandardHours"
                                ]
SCALE_EXCLUDE_VARIABLES       = [
                                    "BusinessTravel",
                                    "Department",
                                    "EducationField",
                                    "JobRole",
                                    "MaritalStatus",
                                    "Gender",
                                    "OverTime",
                                    "Over18",
                                    "EmployeeNumber",
                                    "Attrition",
                                    "Education",
                                    "EnvironmentSatisfaction",
                                    "JobInvolvement",
                                    "JobLevel",
                                    "JobSatisfaction",
                                    "StockOptionLevel",
                                    "WorkLifeBalance",
                                    "RelationshipSatisfaction"
                                ]
BINARY_ENCODING_DICTIONARY  =   { 
                                    "Gender": { "No": 0, "Yes": 1 },
                                    "Over18": { "N": 0, "Y": 1 },
                                    "OverTime": { "No": 0, "Yes": 1 }
                                }