import pandas as pd import gradio as gr from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from sklearn.linear_model import LinearRegression housing = pd.read_csv("housing.csv") train_set, test_set = train_test_split(housing, test_size=0.2, random_state=10) train_set_clean = train_set.dropna(subset=["total_bedrooms"]) train_labels = train_set_clean["median_house_value"].copy() train_features = train_set_clean.drop("median_house_value", axis=1) scaler = MinMaxScaler() scaler.fit(train_features) train_features_normalized = scaler.transform(train_features) lin_reg = LinearRegression() lin_reg.fit(train_features_normalized, train_labels) def housing_price_prediction(longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income): input_data = {'longitude':longitude, 'latitude':latitude, 'housing_median_age':housing_median_age, 'total_rooms':total_rooms, 'total_bedrooms':total_bedrooms, 'population':population, 'households':households, 'median_income':median_income } features = pd.DataFrame(columns=['longitude', 'latitude', 'housing_median_age', 'total_rooms', 'total_bedrooms', 'population', 'households', 'median_income']) features = features.append(input_data,ignore_index=True) features_normalized = scaler.transform(features) return lin_reg.predict(features_normalized)[0], None longitude_input = gr.inputs.Slider(scaler.data_min_[0], scaler.data_max_[0], label = "Longitude") latitude_input = gr.inputs.Slider(scaler.data_min_[1], scaler.data_max_[1], label = "Latitude") housing_median_age_input = gr.inputs.Slider(scaler.data_min_[2], scaler.data_max_[2], step=1, label = "Housing median age (Year)") total_rooms_input = gr.inputs.Slider(scaler.data_min_[3], scaler.data_max_[3], step=1, label = "Total rooms") total_bedrooms_input = gr.inputs.Slider(scaler.data_min_[4], scaler.data_max_[4], step=1, label = "Total bedrooms") population_input = gr.inputs.Slider(scaler.data_min_[5], scaler.data_max_[5], step=1, label = "Population") household_input = gr.inputs.Slider(scaler.data_min_[6], scaler.data_max_[6], step=1, label = "Household") median_income_input = gr.inputs.Slider(scaler.data_min_[7], scaler.data_max_[7], label = "Median income") predicted_output = gr.outputs.Textbox(label = "Predicted housing prices") image_output = gr.outputs.Image(label = "Visualize your location") gr.Interface(fn=housing_price_prediction, inputs=[longitude_input, latitude_input, housing_median_age_input, total_rooms_input, total_bedrooms_input, population_input, household_input, median_income_input], outputs=[predicted_output, image_output]).launch()