twodottie commited on
Commit
70281c6
·
verified ·
1 Parent(s): 6398c99

Upload 3 files

Browse files
Files changed (3) hide show
  1. app.py +76 -0
  2. cars.xls +0 -0
  3. requirements.txt +3 -0
app.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #kullanıcının girdiği özelliklerdeki arabanın fiyatını tahmin eden web sitesi
2
+
3
+ import pandas as pd
4
+ from sklearn.model_selection import train_test_split
5
+ from sklearn. linear_model import LinearRegression
6
+ from sklearn.metrics import mean_squared_error, r2_score
7
+ from sklearn.pipeline import Pipeline
8
+ from sklearn.compose import ColumnTransformer
9
+ from sklearn.preprocessing import StandardScaler, OneHotEncoder
10
+ import streamlit as st
11
+
12
+ df=pd.read_excel('cars.xls')
13
+ x=df.drop('Price',axis=1)
14
+ y=df [ ['Price' ] ]
15
+
16
+ x_train,x_test,y_train,y_test=train_test_split(x,y,test_size =.20, random_state=42)
17
+
18
+ preprocessor=ColumnTransformer(
19
+ transformers=[
20
+ ('num',StandardScaler(), ['Mileage','Cylinder','Liter','Doors']),
21
+ ('cat',OneHotEncoder(),['Make','Model','Trim','Type' ])
22
+ ]
23
+ )
24
+
25
+ model=LinearRegression()
26
+
27
+ pipeline=Pipeline(steps=[('preprocessor',preprocessor),('regressor',model)])
28
+
29
+ pipeline.fit(x_train,y_train)
30
+ pred=pipeline.predict(x_test)
31
+
32
+ rmse=mean_squared_error(pred,y_test) **.5
33
+ r2=r2_score(pred,y_test)
34
+
35
+ def price_pred(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise, sound,leather):
36
+ input_data=pd.DataFrame({
37
+ 'Make' : [make],
38
+ 'Model': [model],
39
+ 'Trim': [trim],
40
+ 'Mileage': [mileage],
41
+ 'Type' : [car_type],
42
+ 'Cylinder':[cylinder],
43
+ 'Liter': [liter],
44
+ 'Doors' : [doors],
45
+ 'Cruise': [cruise],
46
+ 'Sound' : [sound],
47
+ 'Leather' : [leather]
48
+ })
49
+
50
+ prediction=pipeline.predict(input_data)[0]
51
+ return prediction
52
+
53
+ def main():
54
+ st.title('MLOps Car Price Prediction :red_car:')
55
+ st.write('Enter Car Details to predict the price')
56
+ make=st.selectbox('Make',df['Make' ].unique())
57
+ model=st.selectbox('Model',df[df['Make'] == make] ['Model'].unique())
58
+ trim=st.selectbox('Trim',df[(df['Make'] == make)& (df['Model' ] == model)]['Trim' ].unique())
59
+ mileage=st.number_input('Mileage',200,60000)
60
+ car_type=st.selectbox('Type',df['Type' ].unique())
61
+ cylinder=st.selectbox('Cylinder',df['Cylinder' ].unique())
62
+ liter=st.number_input('Liter',1,6)
63
+ doors=st.selectbox('Doors',df['Doors' ].unique())
64
+ cruise=st.radio('Cruise',[0,1])
65
+ sound=st.radio('Sound',[0,1])
66
+ leather=st.radio('Leather',[0,1])
67
+
68
+ if st.button('Predict'):
69
+ price= price_pred(make,model, trim,mileage, car_type, cylinder, liter,doors,cruise, sound,leather)
70
+ price=float(price)
71
+ st.write(f'The predicted price is: ${price:.2f}')
72
+
73
+ if __name__ == '__main__':
74
+ main()
75
+
76
+
cars.xls ADDED
Binary file (142 kB). View file
 
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ streamlit
2
+ scikit-learn
3
+ pandas