|
import pandas as pd |
|
import gradio as gr |
|
|
|
housing = pd.read_csv("housing.csv") |
|
|
|
|
|
data_set_clean = housing.dropna(subset=["total_bedrooms"]) |
|
data_labels = data_set_clean["median_house_value"].copy() |
|
data_features = data_set_clean.drop("median_house_value", axis=1) |
|
|
|
|
|
from sklearn.preprocessing import MinMaxScaler |
|
scaler = MinMaxScaler() |
|
scaler.fit(data_features) |
|
|
|
data_features_normalized = scaler.transform(data_features) |
|
|
|
|
|
from sklearn.tree import DecisionTreeRegressor |
|
tree_reg = DecisionTreeRegressor() |
|
tree_reg.fit(data_features_normalized, data_labels) |
|
|
|
|
|
input_module_list = [] |
|
for col_name in data_features: |
|
input_module_list.append(gr.inputs.Slider(minimum= data_features[col_name].min(), |
|
maximum= data_features[col_name].max(), |
|
label = col_name)) |
|
|
|
|
|
output_module1 = gr.outputs.Textbox(label = "Prediction") |
|
output_module2 = gr.outputs.Image(label = "Output Image") |
|
|
|
import matplotlib.pyplot as plt |
|
import matplotlib.image as mping |
|
|
|
|
|
def run_model(input1, intput2, input3, input4, input5, input6, input7, input8): |
|
|
|
data_point = [[input1, intput2, input3, input4, input5, input6, input7, input8]] |
|
scaled_data_point = scaler.transform(data_point) |
|
output1 = tree_reg.predict(scaled_data_point)[0] |
|
|
|
housing.plot(kind='scatter', x='longitude', y='latitude', alpha=.4, |
|
s=housing['population']/100, label='population', figsize=(10,7), |
|
c='median_house_value', cmap=plt.get_cmap('jet'), colorbar=True, |
|
sharex=False) |
|
plt.legend() |
|
plt.scatter(x=input1, y=intput2, label="Your Point", c=output1, cmap=plt.get_cmap('jet')) |
|
plt.annotate('Your Point', xy=(input1, intput2), xytext=(-116,40), arrowprops={'width':5, |
|
'headwidth':10, |
|
'headlength':10, |
|
'shrink':0}) |
|
plt.savefig('newprediction.png') |
|
output2 = mping.imread(f'newprediction.png') |
|
return output1, output2 |
|
|
|
gr.Interface(fn=run_model, |
|
inputs=input_module_list, |
|
outputs=[output_module1,output_module2], |
|
).launch() |