import gradio as gr import numpy as np from joblib import load KNN_model = load('best_knn_model.joblib') def model_prediction(longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income): test_data = np.array([ [longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income] ]) return KNN_model.predict(test_data)[0] longitude = gr.Slider(-124.35, -114.310, step=0.5, label = "Longitude") latitude = gr.Slider(32.45, 41.95, step=0.5, label = "Latitude") housing_median_age = gr.Slider(1, 52, step=1, label = "Housing Median Age") total_rooms = gr.Slider(2, 3932, step=100, label = "Total Rooms") total_bedrooms = gr.Slider(1, 6445, step=100, label = "Total Bedrooms") population = gr.Slider(3, 36820, step=1000, label = "Population") households = gr.Slider(1, 6082, step=100, label = "Households") median_income = gr.Slider(0.4999, 15, step=0.5, label = "Median Income") default_test_data = np.array([ [-124.35, 32.45, 1, 2, 1, 3, 1, 0.4999] ]) predicted_housing_price = gr.Number(label="Predicted Housing Price", value=KNN_model.predict(default_test_data)[0]) gr.Interface(fn=model_prediction, inputs=[longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income], outputs=predicted_housing_price ).launch()