Describe the bug
When training a machine model, if the learning curves button is ticked, SimBA produces an integer error. Training runs perfectly if the learning curves are not turned on.
To Reproduce
Steps to reproduce the behavior:
- Go to 'train machine model'
- Click on 'settings' and tick 'learning curves (note: intensive)
- Set learning curve k splits and learning curve data splits to 5
- Save settings (global environment)
- Train single model (global environment)
- See error
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Desktop (please complete the following information):
- OS: Windows 11
- Python Version 3.6.13
- Are you using anaconda? Yes (conda environment my_simba_env)
- SimBA version: 5.2.7
Additional context
Full error message: (my_simba_env) C:\Windows\System32>simba
SimBA environment variables: {'PRINT_EMOJIS': True, 'UNSUPERVISED_INTERFACE': False, 'NUMBA_PRECOMPILE': False, 'CUML': False}. SimBA load time: 16.7103s
warning||A new version of SimBA is available: 5.2.9 (you have version 5.2.7). Consider upgrading using: pip install simba-uw-tf-dev --upgrade
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 104, in _converter
return self.value_type(value)
ValueError: invalid literal for int() with base 10: 'NaN'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\utils\checks.py", line 111, in check_int
t.Int().check(value)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\base.py", line 115, in check
return self.check_and_return(value)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 128, in check_and_return
self._check(data)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 114, in _check
value = self._converter(data)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 181, in _converter
return super(Int, self)._converter(value)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 109, in _converter
code=codes.IS_NOT_A_NUMBER,
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\base.py", line 140, in _failure
raise DataError(error=error, value=value, trafaret=self, code=code)
trafaret.dataerror.DataError: value can't be converted to int
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\tkinter_init_.py", line 1705, in call
return self.func(*args)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\ui\tkinter_functions.py", line 566, in execute_command
cmd(**evaluated_kwargs)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\SimBA.py", line 707, in train_single_model
model_trainer = TrainRandomForestClassifier(config_path=config_path)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\model\train_rf.py", line 41, in init
self.read_model_settings_from_config(config=self.config)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\mixins\train_model_mixin.py", line 2119, in read_model_settings_from_config
name=MLParamKeys.LEARNING_DATA_SPLITS.value, value=self.dataset_splits
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\utils\checks.py", line 115, in check_int
raise IntegerError(msg=msg, source=check_int.name)
simba.utils.errors.IntegerError: SIMBA INTEGER ERROR: LearningCurve_shuffle_data_splits should be an integer number in SimBA, but is set to NaN
Describe the bug
When training a machine model, if the learning curves button is ticked, SimBA produces an integer error. Training runs perfectly if the learning curves are not turned on.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Desktop (please complete the following information):
Additional context
Full error message: (my_simba_env) C:\Windows\System32>simba
SimBA environment variables: {'PRINT_EMOJIS': True, 'UNSUPERVISED_INTERFACE': False, 'NUMBA_PRECOMPILE': False, 'CUML': False}. SimBA load time: 16.7103s
warning||A new version of SimBA is available: 5.2.9 (you have version 5.2.7). Consider upgrading using: pip install simba-uw-tf-dev --upgrade
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 104, in _converter
return self.value_type(value)
ValueError: invalid literal for int() with base 10: 'NaN'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\utils\checks.py", line 111, in check_int
t.Int().check(value)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\base.py", line 115, in check
return self.check_and_return(value)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 128, in check_and_return
self._check(data)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 114, in _check
value = self._converter(data)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 181, in _converter
return super(Int, self)._converter(value)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\numeric.py", line 109, in _converter
code=codes.IS_NOT_A_NUMBER,
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\trafaret\base.py", line 140, in _failure
raise DataError(error=error, value=value, trafaret=self, code=code)
trafaret.dataerror.DataError: value can't be converted to int
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\tkinter_init_.py", line 1705, in call
return self.func(*args)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\ui\tkinter_functions.py", line 566, in execute_command
cmd(**evaluated_kwargs)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\SimBA.py", line 707, in train_single_model
model_trainer = TrainRandomForestClassifier(config_path=config_path)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\model\train_rf.py", line 41, in init
self.read_model_settings_from_config(config=self.config)
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\mixins\train_model_mixin.py", line 2119, in read_model_settings_from_config
name=MLParamKeys.LEARNING_DATA_SPLITS.value, value=self.dataset_splits
File "C:\ProgramData\anaconda3\envs\my_simba_env\lib\site-packages\simba\utils\checks.py", line 115, in check_int
raise IntegerError(msg=msg, source=check_int.name)
simba.utils.errors.IntegerError: SIMBA INTEGER ERROR: LearningCurve_shuffle_data_splits should be an integer number in SimBA, but is set to NaN