-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.py
More file actions
124 lines (101 loc) · 5.09 KB
/
Main.py
File metadata and controls
124 lines (101 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import matplotlib.pyplot as plt
from streamlit_option_menu import option_menu
import streamlit as st
import pandas as pd
from sklearn.metrics import r2_score
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
df = pd.read_csv("FuelConsumptionCo2.csv")
file1 = "data.csv"
lt = LabelEncoder()
df['VEHICLECLASS'] = lt.fit_transform(df['VEHICLECLASS'])
df['TRANSMISSION'] = lt.fit_transform(df['TRANSMISSION'])
df['FUELTYPE'] = lt.fit_transform(df['FUELTYPE'])
x = df.drop(['MODELYEAR', 'MAKE', 'MODEL', 'FUELCONSUMPTION_CITY', 'FUELCONSUMPTION_HWY', 'FUELCONSUMPTION_COMB',
'FUELCONSUMPTION_COMB_MPG'], axis=1)
y = df[['FUELCONSUMPTION_CITY', 'FUELCONSUMPTION_HWY', 'FUELCONSUMPTION_COMB']]
xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.2, random_state=120)
lg = LinearRegression()
lg.fit(xtrain, ytrain)
with st.sidebar:
selected = option_menu("Menu",["Home","Project","Login","SignUp","Dataset"],default_index=0)
if selected=="Project":
vehicle_class = st.selectbox("Vehicle Class", options=sorted(df['VEHICLECLASS'].unique()))
engine_size = st.number_input("Engine Size", min_value=0.0, value=1.0)
cylinders = st.number_input("Number of Cylinders", min_value=1, value=4)
transmission = st.selectbox("Transmission", options=sorted(df['TRANSMISSION'].unique()))
fuel_type = st.selectbox("Fuel Type", options=sorted(df['FUELTYPE'].unique()))
co2 = st.text_input("CO2Emissions")
st.write("0.Compact 1.Full-Size 2.mid-size 3.mini-compact 4.Minivan 5.Pickup Truck Small 6.Pickup Truck Standard 7.Special Purpose Vehicle 8.Station Wagon Mid-size 9.Station Wagon Small 10.SubCompact 11.Suv-SmALL 12.Suv-Standard 13.Two-Seater 14.Van Cargo 15.Van Passenger")
st.write("0.A4 1.A5 2.A6 3.A7 4.A8 5.A9 6.AM5 7.AM6 8.AM7 9.AS4 10.AS5 11.AS6 12.AS7 13.AS8 14.AS9 15.AV 16.AV6 17.AV7 18.AV8 19.M5 20.M6")
st.write("D=0 , E=1 , X=2 , Z=3")
user_data = pd.DataFrame([[vehicle_class, engine_size, cylinders, transmission, fuel_type, co2]])
if st.button('Predict'):
prediction = lg.predict(user_data)
st.subheader("Predictions")
st.write("Fuel Consumption in City:", round(prediction[0][0], 2))
st.write("Fuel Consumption on Highway:", round(prediction[0][1], 2))
st.write("Combined Fuel Consumption:", round(prediction[0][2], 2))
elif selected=="Login":
st.header("Login Form")
with st.form(key='form1'):
email = st.text_input("Enter Email :")
password = st.text_input("Enter password :", type='password')
submit = st.form_submit_button(label="Submit")
if submit:
lines = []
try:
with open(file1, mode='r') as file:
lines = file.readlines()
except FileNotFoundError:
pass
found = False
if lines:
for line in lines[1:]: # Skip the header row
stored_email, stored_password = line.strip().split(',', 1)
if email == stored_email and password == stored_password:
st.success("Welcome, user!")
found = True
break
if not found:
st.error("Email and password do not exist.")
elif selected=="SignUp":
st.header("Sign Up Form")
with st.form(key='form2'):
firstname = st.text_input("Enter first name:")
lastname = st.text_input("Enter Last name:")
age = st.number_input("Enter your age:")
dob = st.date_input("Enter your DOB:")
tech = st.multiselect("Select your Tech:", ['Python', 'ML', 'Django'])
email = st.text_input("Enter Email :")
password = st.text_input("Enter Password :",type='password')
submit = st.form_submit_button(label='Submit')
if submit:
data = [[firstname,lastname,age,dob,tech,email,password]]
with open(file1, mode='a', newline='') as file:
file.seek(0, 2)
if file.tell() == 0:
file.write('First Name,Last Name,Age,Date of Birth,Technologies,Email,Password\n')
st.write(f"**First Name:** {firstname}")
st.write(f"**Last Name:** {lastname}")
st.write(f"**Age:** {age}")
st.write(f"**Date of Birth:** {dob}")
st.write(f"**Technologies:** {', '.join(tech)}")
st.write(f"**Email:** {email}")
st.write(f"**Password:** (hidden for security)")
st.success("Data saved successfully.")
elif selected=="Dataset":
st.header("Dataset")
data =pd.read_csv("FuelConsumptionCo2.csv")
st.dataframe(data,width=1000)
elif selected=="Home":
st.header("Home Page")
st.subheader("Welcome to Home Page")
st.write("Project info")
lg_predictions = lg.predict(xtest)
plt.scatter(ytest,lg_predictions,color='red')
plt.xlabel("True Values")
plt.ylabel("Predictions")
plt.grid(True)
plt.show()