neslisahozturk commited on
Commit
2c41d18
1 Parent(s): f412dd3

Upload 3 files

Browse files
Files changed (3) hide show
  1. car_predict_app.py +161 -0
  2. cars.xls +0 -0
  3. requirements.txt +4 -0
car_predict_app.py ADDED
@@ -0,0 +1,161 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ # coding: utf-8
3
+
4
+ # In[15]:
5
+
6
+
7
+ import pandas as pd
8
+ import numpy as np
9
+ import seaborn as sns
10
+ import warnings
11
+ warnings.filterwarnings("ignore")
12
+ from sklearn.linear_model import LinearRegression
13
+ from sklearn.metrics import r2_score,mean_squared_error
14
+ from sklearn.compose import ColumnTransformer
15
+ from sklearn.preprocessing import OneHotEncoder, StandardScaler
16
+ from sklearn.pipeline import Pipeline
17
+ from sklearn.model_selection import train_test_split
18
+
19
+
20
+ # In[4]:
21
+
22
+
23
+ pip install xldr
24
+
25
+
26
+ # In[6]:
27
+
28
+
29
+ ls
30
+
31
+
32
+ # In[7]:
33
+
34
+
35
+ df=pd.read_excel("cars.xls")
36
+
37
+
38
+ # In[8]:
39
+
40
+
41
+ df.head()
42
+
43
+
44
+ # In[9]:
45
+
46
+
47
+ #veri ön işleme,standartlıştırma
48
+
49
+
50
+ # In[10]:
51
+
52
+
53
+ X=df.drop("Price",axis=1)
54
+
55
+
56
+ # In[13]:
57
+
58
+
59
+ y=df["Price"]
60
+
61
+
62
+ # In[16]:
63
+
64
+
65
+ X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)
66
+
67
+
68
+ # In[17]:
69
+
70
+
71
+ preprocess=ColumnTransformer(
72
+ transformers=[
73
+ ("num",StandardScaler(),["Mileage","Cylinder","Liter","Doors"]),
74
+ ("cat",OneHotEncoder(),["Make","Model","Trim","Type"])
75
+ ]
76
+ )
77
+
78
+
79
+ # In[20]:
80
+
81
+
82
+ my_model=LinearRegression()
83
+ pipe=Pipeline(steps=[("preprocessor",preprocess),("model",my_model)])
84
+
85
+
86
+ # In[21]:
87
+
88
+
89
+ pipe.fit(X_train,y_train)
90
+
91
+
92
+ # In[24]:
93
+
94
+
95
+ y_pred=pipe.predict(X_test)
96
+ rmse=mean_squared_error(y_test,y_pred)**0.5
97
+ r2=r2_score(y_test,y_pred)
98
+ r2,rmse
99
+
100
+
101
+ # In[25]:
102
+
103
+
104
+ #modeli yayma, kullanıma sunma
105
+
106
+
107
+ # ### Streamlit
108
+
109
+ # In[28]:
110
+
111
+
112
+ get_ipython().system('pip install streamlit')
113
+
114
+
115
+ # In[29]:
116
+
117
+
118
+ import streamlit as st
119
+
120
+
121
+ # In[34]:
122
+
123
+
124
+ def price(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise,sound,leather):
125
+ input_data=pd.DataFrame({"Make":[make],
126
+ "Model":[model],
127
+ "Trim":[trim],
128
+ "Mileage":[mileage],
129
+ "Type":[car_type],
130
+ "Cylinder":[cylinder],
131
+ "Liter":[liter],
132
+ "Doors":[doors],
133
+ "Cruise":[cruise],
134
+ "Sound":[sound],
135
+ "Leather":[leather]})
136
+ prediction=pipe.predict(input_data)[0]
137
+ return prediction
138
+ st.title("Car Price Prediction:blue_car:@neslisahozturk")
139
+ st.write("Select the features of the car")
140
+ make=st.selectbox("Brand",df["Make"].unique())
141
+ model=st.selectbox("Model",df[df["Make"]==make]["Model"].unique())
142
+ trim=st.selectbox("Trim",df[(df["Make"]==make)&(df["Model"]==model)]["Trim"].unique())
143
+ mileage=st.number_input("Km",100,df["Mileage"].max())
144
+ car_type=st.selectbox("Car Type",df["Type"].unique())
145
+ cylinder=st.selectbox("Cylinder",df["Cylinder"].unique())
146
+ liter=st.number_input("Fuel Volume",df["Liter"].min(),df["Liter"].max())
147
+ doors=st.selectbox("Number of Doors",df["Doors"].unique())
148
+ cruise=st.radio("Velocity Constant",[True,False])
149
+ sound=st.radio("Sound System",[True,False])
150
+ leather=st.radio("Leather Seats",[True,False])
151
+
152
+ if st.button("Predict"):
153
+ pred=price(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise,sound,leather)
154
+ st.write("Fiyat:$",round(pred[0],2))
155
+
156
+
157
+ # In[ ]:
158
+
159
+
160
+
161
+
cars.xls ADDED
Binary file (142 kB). View file
 
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ streamlit==1.31.1
2
+ scikit-learn==1.4.1.post1
3
+ pandas==2.1.0
4
+ xlrd==2.0.1