mobile-price / app.py
jackesfonseca's picture
Update app.py
0a9446f
import gradio as gr
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
def mobile_price(battery_power, blue, clock_speed, dual_sim, fc, four_g, int_memory, m_dep, mobile_wt, n_cores, pc, px_height, px_width, ram, sc_h, sc_w, talk_time, three_g, touch_screen, wifi):
input_list = [[battery_power, blue, clock_speed, dual_sim, fc, four_g, int_memory, m_dep, mobile_wt, n_cores, pc, px_height, px_width, ram, sc_h, sc_w, talk_time, three_g, touch_screen, wifi]]
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")
y = train.price_range.values
x_data = train.drop(["price_range"],axis=1)
x = (x_data-np.min(x_data)/(np.max(x_data)-np.min(x_data))).values
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.20, random_state=45)
rf = RandomForestClassifier(n_estimators=100, random_state=1)
rf.fit(x_train,y_train)
y_pred = rf.predict(x_test)
new_pred = rf.predict(input_list)
return new_pred[0]
demo = gr.Interface(
fn=mobile_price,
title="Mobile Price Classification",
description="Experiment with the features to predict Mobile Price Classification.",
allow_flagging="never",
inputs=[
gr.inputs.Number(default=1238.51, label="Battery Power"),
gr.inputs.Number(default=0, label="Blue"),
gr.inputs.Number(default=1.52, label="Clock Speed"),
gr.inputs.Number(default=0.50, label="Dual Sim"),
gr.inputs.Number(default=4.30, label="FC"),
gr.inputs.Number(default=0, label="Four_C"),
gr.inputs.Number(default=32.04, label="Int Memory"),
gr.inputs.Number(default=0.50, label="M Dep"),
gr.inputs.Number(default=140.24, label="Mobile WT"),
gr.inputs.Number(default=4.52, label="Cores"),
gr.inputs.Number(default=15.00, label="PC"),
gr.inputs.Number(default=645.10, label="PX Height"),
gr.inputs.Number(default=1251.51, label="PX Width"),
gr.inputs.Number(default=2124.21, label="RAM"),
gr.inputs.Number(default=12.30, label="SC h"),
gr.inputs.Number(default=5.76, label="SC w"),
gr.inputs.Number(default=11.01, label="Talk Time"),
gr.inputs.Number(default=1, label="Three G"),
gr.inputs.Number(default=1, label="Touch Screen"),
gr.inputs.Number(default=1, label="Wifi"),
],
outputs="text")
demo.launch()