AjiNiktech's picture
Update app.py
0d0073f verified
import streamlit as st
import numpy as np
import pickle
import streamlit.components.v1 as components
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
# Load the pickled model
def load_model():
return pickle.load(open('Diamond_Price_Prediction_LinearRegression.pkl', 'rb'))
# Function for model prediction
def model_prediction(model, features):
predicted = str(model.predict(features)[0])
return predicted
def transform(text):
text = le.fit_transform(text)
return text[0]
def app_design():
# Add input fields for High, Open, and Low values
image = 'Diamond price image.png'
st.image(image, use_column_width=True)
st.subheader("Enter the following values:")
Carat = st.number_input("Carat(Weight of Daimond)")
Cut = st.text_input("Cut(Quality) ('Ideal','Premium','Good','Very Good','Fair')")
Cut = transform([Cut])
Color = st.text_input("Color ('E','I','J','H','F','G','D')")
Color=transform([Color])
Clarity = st.text_input("Clarity ('SI2','SI1','VS1','VS2','VVS2','VVS1','I1','IF')")
Clarity=transform([Clarity])
Depth = st.number_input("Depth")
Table = st.number_input("Table")
X_length = st.number_input("X length")
Y_width = st.number_input("Y width")
Z_depth = st.number_input("Z depth")
# Create a feature list from the user inputs
features = [[Carat,Cut,Color,Clarity,Depth,Table,X_length,Y_width,Z_depth]]
# Load the model
model = load_model()
# Make a prediction when the user clicks the "Predict" button
if st.button('Predict Price'):
predicted_value = model_prediction(model, features)
st.success(f"The Price is: {predicted_value}")
def main():
# Set the app title and add your website name and logo
st.set_page_config(
page_title="Diamond Price Prediction.",
page_icon=":chart_with_upwards_trend:",
)
st.title("Welcome to our Diamond Price Prediction App!")
app_design()
if __name__ == '__main__':
main()