saifhmb
Update prediction formula to model.predict(sc.transform([[Age, EstimatedSalary]]))
d3fd480
unverified
# importing libraries | |
from datasets import load_dataset, load_dataset_builder | |
import numpy as np | |
import matplotlib.pyplot as plt | |
import pandas as pd | |
import sklearn | |
from sklearn.model_selection import train_test_split | |
from sklearn.preprocessing import StandardScaler | |
from sklearn.linear_model import LogisticRegression | |
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay, accuracy_score, precision_score, recall_score, classification_report | |
from transformers import Trainer, TrainingArguments | |
from skops import hub_utils | |
import pickle | |
from skops.card import Card, metadata_from_config | |
from pathlib import Path | |
from tempfile import mkdtemp, mkstemp | |
import streamlit as st | |
from PIL import Image | |
# Loading the dataset | |
dataset_name = "saifhmb/social-network-ads" | |
dataset = load_dataset(dataset_name, split = 'train') | |
dataset = pd.DataFrame(dataset) | |
X = dataset.iloc[:, :-1].values | |
y = dataset.iloc[:, -1].values | |
# Spliting the datset into Training and Test set | |
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0) | |
# Feature Scaling | |
sc = StandardScaler() | |
X_train = sc.fit_transform(X_train) | |
X_test = sc.transform(X_test) | |
# Training Logit Reg Model using the Training set | |
model = LogisticRegression() | |
model.fit(X_train, y_train) | |
# Predicting the Test result | |
y_pred = model.predict(X_test) | |
# Making the Confusion Matrix and evaluating performance | |
cm = confusion_matrix(y_pred, y_test, labels=model.classes_) | |
disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=model.classes_) | |
disp.plot() | |
plt.show() | |
acc = accuracy_score(y_test, y_pred) | |
ps = precision_score(y_test, y_pred) | |
rs = recall_score(y_test, y_pred) | |
# Pickling the model | |
pickle_out = open("model.pkl", "wb") | |
pickle.dump(model, pickle_out) | |
pickle_out.close() | |
# Loading the model to predict on the data | |
pickle_in = open('model.pkl', 'rb') | |
model = pickle.load(pickle_in) | |
def welcome(): | |
return 'welcome all' | |
# defining the function which will make the prediction using the data which the user inputs | |
def prediction(Age, EstimatedSalary): | |
prediction = model.predict(sc.transform([[Age, EstimatedSalary]])) | |
print(prediction) | |
return prediction | |
# this is the main function in which we define our webpage | |
def main(): | |
# giving the webpage a title | |
st.title("Customer Vehicle Purchase Prediction") | |
Age = st.text_input("Age", "Type Here") | |
EstimatedSalary = st.text_input("EstimatedSalary", "Type Here") | |
result = "" | |
if st.button("Predict"): | |
result = prediction(Age, EstimatedSalary) | |
st.success('The output is {}'.format(result)) | |
if __name__=='__main__': | |
main() | |