|
from src.preprocessing import Preprocessing |
|
from src.model import ModelBuilder |
|
from tests import test2direct |
|
import pandas as pd |
|
import pickle |
|
import os |
|
|
|
def main(): |
|
|
|
data = pd.read_csv("data/bengaluru_house_prices.csv") |
|
|
|
|
|
print("Starting Data Preprocessing...") |
|
preprocessor = Preprocessing(data) |
|
preprocessor.clean_data() |
|
preprocessor.feature_engineering() |
|
preprocessor.remove_bhk_outliers() |
|
preprocessor.encode_features() |
|
preprocessor.scale_features() |
|
preprocessor.handle_missing_values() |
|
print("Preprocessing completed!") |
|
|
|
|
|
print("Starting Model Building and Evaluation...") |
|
model_builder = ModelBuilder(data=preprocessor.data) |
|
X_train, X_test, y_train, y_test = model_builder.split_data(target_column='price') |
|
|
|
model_builder.train_model(X_train, y_train) |
|
mse, r2 = model_builder.evaluate_model(X_test, y_test) |
|
|
|
|
|
|
|
|
|
print("Trained model saved successfully!") |
|
|
|
|
|
model_builder.save_model_as_pickle() |
|
|
|
|
|
model_builder.save_features_as_pickle(data=preprocessor.data) |
|
|
|
test2direct.main() |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |
|
|