#1. Importing Lib import gradio as gr import numpy as np import pandas as pd from sklearn.model_selection import train_test_split #from sklearn.ensemble import RandomForestRegressor from xgboost import XGBRegressor from sklearn.metrics import r2_score #2. Data Preprocessing df=pd.read_csv("housing.csv") df.head() df.tail() df.info() df.describe() df.isnull().sum() df["ocean_proximity"].unique() df.replace({"ocean_proximity":{"NEAR BAY":0,"<1H OCEAN":1,"INLAND":2,"NEAR OCEAN":3,"ISLAND":4}},inplace=True) # Spliting data into X and y x=df.drop("median_house_value",axis=1) y=df["median_house_value"] #3. Modeling Part x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0) model=XGBRegressor() model.fit(x_train,y_train) model.fit(x_test,y_test) x_predict=model.predict(x_train) x_accuracy=r2_score(x_predict,y_train) y_predict=model.predict(x_test) y_accuracy=r2_score(y_predict,y_test) #4. UI For Model # Define the prediction function def predict_house_value(longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income, ocean_proximity): input_data = np.array([longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income, ocean_proximity]).reshape(1, -1) prediction = model.predict(input_data) return prediction[0] # Define the Gradio interface inputs = [ gr.Slider(label="Longitude", minimum=-124.35, maximum=-114.31), # Longitude range from min to max gr.Slider(label="Latitude", minimum=32.54, maximum=41.95), # Latitude range from min to max gr.Slider(label="Housing Median Age", minimum=1, maximum=52), # Housing median age from min to max gr.Slider(label="Total Rooms", minimum=2, maximum=39320), # Total rooms range from min to max gr.Slider(label="Total Bedrooms", minimum=1, maximum=6445), # Total bedrooms range from min to max gr.Slider(label="Population", minimum=3, maximum=35682), # Population range from min to max gr.Slider(label="Households", minimum=1, maximum=6082), # Households range from min to max gr.Slider(label="Median Income", minimum=0.4999, maximum=15.0001), # Median income range from min to max gr.Dropdown([0,1,2,3,4], label="Ocean Proximity( 0=NEAR BAY, 1=<1H OCEAN, 2=INLAND, 3=NEAR OCEAN, 4=ISLAND)") ] outputs = gr.Textbox(label="Predicted House Value") gr.Interface(fn=predict_house_value, inputs=inputs, outputs=outputs, live=True).launch()