Automate ML Hyperopt and NN Creation and optimization
Project description
Repository Description and Overview
The repository contains the code I developed to ease: Hyperparameter Tuning for Traditional ML, Neural Network Building and its Hyperparameter Optimization.
To automate hyperparameter search and NN Building, make sure to pass dictionaries with the structure provided in the tutorial folder.
Note: The repository exploits Optuna as the library of choice to perform hyperparameter search. To familiarize with the library: https://optuna.org/
Installation Guide
To install the package:
pip install ml-optfit
Alternatively:
- Clone the repository:
git clone https://github.com/Fabiocerutids/ML_Optfit.git
- Locate yourself in the ML_Optfit folder:
cd ML_Optfit/
- Run the following command in terminal:
pip install .
- ML_Optfit is now installed, verify by running the command below:
from ml_optfit.ml_optfit import HyperOptimNN
How to use the package
Traditional ML
hyperopt=HyperOptim(direction='maximize',
train=train,
valid=valid,
features=features,
target='diabetes',
evaluation_func=f1_score)
forest_hyper_dict = {'class_weight':{
'type': 'class',
'values': ['balanced', 'balanced_subsample', None]},
'n_estimators':{
'type': 'int',
'low': 100,
'high':600,
'log':False,
'step':100},
'min_impurity_decrease':{
'type': 'float',
'low': 0,
'high':0.1,
'log':False,
'step':0.01}
}
study, best_hyper=hyperopt.optimize_model(model_type=RandomForestClassifier,
study_name='randomforest',
hyperparam_dict=forest_hyper_dict,
multivariate=False,
n_trials=30)
Neural Networks
opt_nn = HyperOptimNN(direction='maximize',
train=train_df.shuffle(buffer_size=1000).batch(500),
valid=valid_df.shuffle(buffer_size=1000).batch(500),
y_valid=valid[target].to_numpy(dtype=np.float32),
unshuffled_valid=valid_df.batch(500),
evaluation_func=f1_score,
loss_func='binary_crossentropy',
epochs=100)
input_hyper = {'input_1':{
'input_shape':(8,),
'n_hidden_layers':{'type':'int', 'low':1, 'high':3},
'units':{'type':'int', 'low':2, 'high':5},
'activation':{'type':'class', 'vals':['relu', 'tanh', 'selu']},
'dropouts':{'type':'float', 'low':0.01, 'high':0.9},
}}
common_hyper = {'common':{
'n_hidden_layers':{'type':'int', 'low':1, 'high':3},
'units':{'type':'int', 'low':2, 'high':5},
'activation':{'type':'class', 'vals':['relu', 'tanh', 'selu']},
'dropouts':{'type':'float', 'low':0.01, 'high':0.9},
}}
output_hyper = {'output_1':{
'n_outputs':1,
'n_hidden_layers':{'type':'int', 'low':1, 'high':3},
'units':{'type':'int', 'low':2, 'high':5},
'activation':{'type':'class', 'vals':['relu', 'tanh', 'selu']},
'dropouts':{'type':'float', 'low':0.01, 'high':0.9}
}}
study, best_hyper = opt_nn.optimize_nn(input_hyper=input_hyper,
common_hyper=common_hyper,
output_hyper=output_hyper,
study_name='TF Test',
n_trials=30,
multivariate=False)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ml_optfit-0.1.3.tar.gz.
File metadata
- Download URL: ml_optfit-0.1.3.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c214ce65caab0543e54eacc4e11bc769ad0556330d6c232ac3d95a1a290c3999
|
|
| MD5 |
1fdc0a3072d683cdb900a490bd4bfcd5
|
|
| BLAKE2b-256 |
064f3a2963c5233f1e193c90639356a508d6937484e893a2a7cd74d827502a81
|
File details
Details for the file ml_optfit-0.1.3-py3-none-any.whl.
File metadata
- Download URL: ml_optfit-0.1.3-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2355ed3cf1faf63827cfe5f94d0410f7d50fc368198a2f1e5c87ad1721e61d5
|
|
| MD5 |
fbffa674360a48361bcb3c0100c9c939
|
|
| BLAKE2b-256 |
9b07ae408e1eea1ee1784404f1eb522105012e8748c5b47a75b3b6b40056531f
|