Yogyakarta_Housing_Price_Prediction / Yogyakarta_Housing_Price_Prediction.py
Zainajabroh's picture
Update Yogyakarta_Housing_Price_Prediction.py
7c95e19 verified
#Make gradio
from joblib import load
import gradio as gr
import numpy as np
encoder_location = load("encoder.pkl")
regressor_model = load("Yogyakarta_housing_price_prediction_model.pkl")
# features ['bed', 'bath', 'carport', 'surface_area(m2)', 'building_area(m2)', 'location']
output_scaler = load("label_scaler.pkl")
input_scaler = load("Feature_scaler.pkl")
def Yogyakarta_Housing_Price_Prediction(bed,bath,carport,surface_are,building_area,location):
encoded_location = encoder_location.transform([[location]])[0]
input_features = np.array([[bed,bath,carport,surface_are,building_area,encoded_location]])
input_features = input_scaler.transform(input_features)
predicted_price = regressor_model.predict(input_features)
predicted_price = predicted_price.reshape(-1,1)
predicted_price = output_scaler.inverse_transform(predicted_price)
predicted_price = predicted_price[0][0]
if predicted_price >= 1000000000:
return f"Rp {np.round((predicted_price/1000000000),2)} Milliar"
else:
return f"Rp {np.round((predicted_price/1000000),2)} Juta"
UI = gr.Interface(fn = Yogyakarta_Housing_Price_Prediction,
inputs = [
gr.Number(label="Jumlah Kamar"),
gr.Number(label="Jumlah Kamar Mandi"),
gr.Number(label = "Jumlah Parkiran"),
gr.Slider(1,2000,step=1,label = "Luas lahan (m²)"),
gr.Slider(1,2000,step = 1, label = "Luas Bangunan (m²)"),
gr.Dropdown(["Bantul","Sleman","Yogyakarta"], label = "Lokasi")
],
outputs = gr.Label(label = "Prediksi Harga Rumah"),
title = "Prediksi Harga Rumah di DIY")
UI.launch()