car-purchasing / app.py
jackesfonseca's picture
Update app.py
e579800
import gradio as gr
import torch, numpy as np, pandas as pd
import seaborn as sns
from pathlib import Path
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score
from torch import tensor
def car_purchase(sex, age, annual_salary, credit_card_debt, net_worth):
sex_value = 1 if sex=='female' else 0
age_value = int(age)
annual_salary_value = float(annual_salary)
credit_card_debt_value = float(credit_card_debt)
net_worth_value = float(net_worth)
input_list = [[sex_value, age_value, annual_salary_value, credit_card_debt_value, net_worth_value]]
df = pd.read_csv('Car_Purchasing_Data.csv')
df = df.drop(columns=['Customer Name', 'Customer e-mail', 'Country'])
df.rename(columns={'Gender': 'gender',
'Age': 'age',
'Annual Salary': 'annual_salary',
'Credit Card Debt': 'credit_card_debt',
'Net Worth': 'net_worth',
'Car Purchase Amount': 'car_purchase_amount'},
inplace=True)
t_dep = df.iloc[:,:-1]
t_indep = df.iloc[:,-1]
dep_train, dep_test, indep_train, indep_test = train_test_split(t_dep, t_indep, test_size=0.2,random_state=0)
regressor = LinearRegression()
regressor.fit(dep_train.values,indep_train.values)
indep_pred = regressor.predict(dep_test.values)
new_pred = regressor.predict(input_list)
return new_pred[0]
demo = gr.Interface(
fn=car_purchase,
title="Car Purchase Analytics",
description="Experiment with the features to predict car purchase amount.",
allow_flagging="never",
inputs=[
gr.inputs.Radio(['female', 'male'], label="Sex"),
gr.inputs.Number(default=46.0, label="Age"),
gr.inputs.Number(default=62127.239608, label="Annual Salary"),
gr.inputs.Number(default=9607.645049, label="Credit Card Debt"),
gr.inputs.Number(default=431475.713625, label="Net Worth"),
],
outputs="text")
demo.launch()