Commit e5389819 authored by dasharatha.vamshi's avatar dasharatha.vamshi

model auto trainer

parent e35e4194
__pycache__/
\ No newline at end of file
# Default ignored files
/shelf/
/workspace.xml
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="pandas" />
<item index="1" class="java.lang.String" itemvalue="scipy" />
<item index="2" class="java.lang.String" itemvalue="pydantic" />
<item index="3" class="java.lang.String" itemvalue="pytz" />
<item index="4" class="java.lang.String" itemvalue="simplejson" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="scripts.core.data.data_import.KairosQueryBuilder.input_tag" />
<option value="scripts.core.data.data_import.KairosQueryBuilder.metric_name" />
<option value="scripts.core.data.data_import.KairosQueryBuilder.aggregation_name" />
<option value="scripts.core.data.data_import.DataPuller.postgres_engine" />
</list>
</option>
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (KBase)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.9 (KBase)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/model_auto_trainer.iml" filepath="$PROJECT_DIR$/.idea/model_auto_trainer.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
import pandas as pd
from mlflow_util import ModelReTrainer
if __name__ == "__main__":
df = pd.read_csv('mlflow-test.csv')
obj = ModelReTrainer(df, 'instantaneous_export', 'Dalmia Solar Forecasting V2', 'Forecasting_kadapa_v1', 'versioning')
obj.get_latest_model()
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
from pycaret import regression
from loguru import logger
class GetBestModel:
def __init__(self, df, target_col_list, list_of_models, no_of_models=1):
self.df = df
self.target_col_list = target_col_list
self.no_of_models = no_of_models
self.list_of_models = list_of_models
def compare_get_best_model(self, fine_tune_tech, comparison_metric):
try:
logger.info("Using Pycaret to train mentioned models")
regression.setup(data=self.df, target=self.target_col_list)
logger.info(f"Selecting the best model using the metric {comparison_metric}")
best_model = regression.compare_models(include=self.list_of_models, sort=comparison_metric,
n_select=self.no_of_models)
logger.info("Tuning the Model")
tuned_model = regression.tune_model(best_model, optimize=comparison_metric, search_library=fine_tune_tech)
results = regression.pull()
get_best_model_row = results.iloc[0]
best_metrics = get_best_model_row.to_dict()
best_metrics.pop('Model', None)
model_name = str(tuned_model).split('(')[0]
hyper_params = tuned_model.get_params()
logger.info("Model Training Completed")
return tuned_model, model_name, best_metrics, hyper_params
except Exception as e:
logger.info(f"Unable to select the best model - {e}")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment