Senasu commited on
Commit
526c299
·
verified ·
1 Parent(s): 82ac28e

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +166 -0
  2. requirements.txt +4 -0
app.py ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ # coding: utf-8
3
+
4
+ # # Car Prediction
5
+
6
+ # In[1]:
7
+
8
+
9
+ #pip install pandas
10
+
11
+
12
+ # In[2]:
13
+
14
+
15
+ import pandas as pd
16
+
17
+
18
+ # In[3]:
19
+
20
+
21
+ #pip install -U scikit-learn
22
+
23
+
24
+ # In[4]:
25
+
26
+
27
+ from sklearn.model_selection import train_test_split
28
+ from sklearn.linear_model import LinearRegression
29
+ from sklearn.metrics import r2_score,mean_squared_error
30
+ from sklearn.compose import ColumnTransformer
31
+ from sklearn.preprocessing import OneHotEncoder,StandardScaler
32
+ from sklearn.pipeline import Pipeline
33
+
34
+
35
+ # In[5]:
36
+
37
+
38
+ #pip install xlrd
39
+
40
+
41
+ # In[6]:
42
+
43
+
44
+ ls
45
+
46
+
47
+ # In[7]:
48
+
49
+
50
+ #Veriyi Yükle
51
+ df=pd.read_excel('cars.xls')
52
+ df
53
+
54
+
55
+ # In[8]:
56
+
57
+
58
+ df.info()
59
+
60
+
61
+ # ## Veri Önişleme
62
+
63
+ # In[9]:
64
+
65
+
66
+ x=df.drop('Price',axis=1)
67
+ y=df['Price']
68
+
69
+
70
+ # In[10]:
71
+
72
+
73
+ x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=.2,random_state=42)
74
+
75
+
76
+ # In[15]:
77
+
78
+
79
+ preprocess=ColumnTransformer(
80
+ transformers=[
81
+ ('num',StandardScaler(),['Mileage','Cylinder','Liter','Doors']),
82
+ ('cat',OneHotEncoder(),['Make','Model','Trim','Type'])
83
+ ]
84
+ )
85
+
86
+
87
+ # In[16]:
88
+
89
+
90
+ my_model=LinearRegression()
91
+
92
+
93
+ # In[17]:
94
+
95
+
96
+ # Pipeline Tanımlama
97
+ pipe=Pipeline(steps=[('preprocessor',preprocess),('model',my_model)])
98
+
99
+
100
+ # In[18]:
101
+
102
+
103
+ pipe.fit(x_train,y_train)
104
+
105
+
106
+ # In[20]:
107
+
108
+
109
+ y_pred=pipe.predict(x_test)
110
+ print('RMSE',mean_squared_error(y_test,y_pred)**0.5)
111
+ print('R2',r2_score(y_test,y_pred))
112
+
113
+
114
+ # In[21]:
115
+
116
+
117
+ #pip install streamlit
118
+
119
+
120
+ # In[22]:
121
+
122
+
123
+ import streamlit as st
124
+
125
+
126
+ # In[23]:
127
+
128
+
129
+ def price(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise,sound,leather):
130
+ input_data=pd.DataFrame({'Make':[make],
131
+ 'Model':[model],
132
+ 'Trim':[trim],
133
+ 'Mileage':[mileage],
134
+ 'Type':[car_type],
135
+ 'cylinder':[cylinder],
136
+ 'Liter':[liter],
137
+ 'Doors':[doors],
138
+ 'Cruise':[cruise],
139
+ 'Sound':[sound],
140
+ 'Leather':[leather]
141
+ })
142
+ prediction=pipe.predict(input_data)[0]
143
+ return prediction
144
+ st.title("II. El Araba Fiyatı Tahmin:red_car: @SenasuDemir")
145
+ st.write('Arabanın özelliklerini seçiniz')
146
+ make=st.selectbox('Marka',df['Make'].unique())
147
+ model=st.selectbox('Model',df[df['Make']==make]['Model'].unique())
148
+ trim=st.selectbox('Trim',df[(df['Make']==make) &(df['Model']==model)]['Trim'].unique())
149
+ mileage=st.number_input('Kilometre',100,200000)
150
+ car_type=st.selectbox('Araç Tipi',df[(df['Make']==make) &(df['Model']==model)&(df['Trim']==trim)]['Type'].unique())
151
+ cylinder=st.selectbox('Cylinder',df['Cylinder'].unique())
152
+ liter=st.number_input('Motor Hacmi',1,10)
153
+ doors=st.selectbox('Kapı sayısı',df['Doors'].unique())
154
+ cruise=st.radio('Hız Sabitleyici',[True,False])
155
+ sound=st.radio('Ses Sistemi',[True,False])
156
+ leather=st.radio('Deri döşeme.',[True,False])
157
+ if st.button('Tahmin'):
158
+ pred=price(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise,sound,leather)
159
+ st.write('Fiyat:$', round(pred[0],2))
160
+
161
+
162
+ # In[ ]:
163
+
164
+
165
+
166
+
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