Spaces:
No application file
No application file
| import joblib | |
| import pandas as pd | |
| import numpy as np | |
| from sklearn.model_selection import train_test_split | |
| from sklearn.preprocessing import StandardScaler | |
| from sklearn.linear_model import ( | |
| LinearRegression, Ridge, Lasso, ElasticNet, BayesianRidge, PassiveAggressiveRegressor | |
| ) | |
| from sklearn.svm import SVR | |
| from sklearn.neighbors import KNeighborsRegressor | |
| from sklearn.tree import DecisionTreeRegressor | |
| from sklearn.ensemble import ( | |
| RandomForestRegressor, GradientBoostingRegressor, AdaBoostRegressor, ExtraTreesRegressor, | |
| BaggingRegressor | |
| ) | |
| import xgboost as xgb | |
| import lightgbm as lgb | |
| import catboost as cb | |
| from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error, mean_absolute_percentage_error,root_mean_squared_error | |
| # Dictionary of all regression models | |
| regression_models = { | |
| "linear_regression": LinearRegression(), | |
| "ridge": Ridge(), | |
| "lasso": Lasso(), | |
| "elastic_net": ElasticNet(), | |
| "bayesian_ridge": BayesianRidge(), | |
| "passive_aggressive": PassiveAggressiveRegressor(), | |
| "svr": SVR(), | |
| "knn": KNeighborsRegressor(), | |
| "decision_tree": DecisionTreeRegressor(), | |
| "random_forest": RandomForestRegressor(), | |
| "gradient_boosting": GradientBoostingRegressor(), | |
| "ada_boost": AdaBoostRegressor(), | |
| "extra_trees": ExtraTreesRegressor(), | |
| "bagging": BaggingRegressor(), | |
| "xgboost": xgb.XGBRegressor(), | |
| "lightgbm": lgb.LGBMRegressor(), | |
| "catboost": cb.CatBoostRegressor(verbose=0) | |
| } | |
| # Function to train and evaluate a regression model | |
| def train_regression_model(model_name, X_train, X_test, y_train, y_test): | |
| model = regression_models[model_name] | |
| model.fit(X_train, y_train) | |
| y_pred = model.predict(X_test) | |
| metrics = { | |
| "R2": r2_score(y_test, y_pred), | |
| "MSE": mean_squared_error(y_test, y_pred), | |
| "RMSE": root_mean_squared_error(y_test, y_pred), | |
| "MAE": mean_absolute_error(y_test, y_pred), | |
| "MAPE": mean_absolute_percentage_error(y_test, y_pred) | |
| } | |
| return model, metrics,y_pred | |