|
import os |
|
import pickle |
|
import tensorflow as tf |
|
import gradio as gr |
|
import pandas as pd |
|
import numpy as np |
|
from sklearn.preprocessing import StandardScaler |
|
|
|
data_heading = ['longitude', 'latitude', 'housing_median_age', 'total_rooms', |
|
'total_bedrooms', 'population', 'households', 'median_income', |
|
'median_house_value'] |
|
|
|
|
|
with open("./model/scaler_sklearn.pkl", "rb") as f: |
|
scaler = pickle.load(f) |
|
loaded_model = tf.keras.saving.load_model('./model/house_value_model.keras') |
|
|
|
def test_ml_model(longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income, median_house_value): |
|
|
|
df_test = pd.DataFrame(data=[[longitude, latitude, housing_median_age, |
|
total_rooms, total_bedrooms, population, |
|
households, median_income, median_house_value]], columns=data_heading) |
|
df_test_norm = pd.DataFrame(scaler.fit_transform(df_test), columns=data_heading) |
|
features = {name:np.array(value) for name, value in df_test_norm.items()} |
|
|
|
result = loaded_model.predict(features) |
|
if result['dense'][0][0] > 0.5: |
|
return 'Prediction: Houses in this neighborhood are above average price.' |
|
return 'Prediction: Houses in this neighborhood are below average price.' |
|
|
|
demo = gr.Interface(fn=test_ml_model, |
|
inputs=[gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0), |
|
gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0), |
|
gr.Number(value=0.0), gr.Number(value=0.0), gr.Number(value=0.0)], |
|
outputs="text", |
|
description="It will help to classifiy the houses in this neighborhood above a avaerage price or not.", |
|
title='Classifier') |
|
|
|
demo.launch() |