ConstantCoder commited on
Commit
ff9bbdc
1 Parent(s): 78f73f4

Upload 3 files

Browse files
Files changed (3) hide show
  1. app.py +171 -0
  2. cars.xls +0 -0
  3. requirements.txt +4 -0
app.py ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ # coding: utf-8
3
+
4
+ # ## Car Prediction
5
+ # İkinci el araç fiyatlarını (özelliklerine göre) tahmin eden modeller oluşturma ve MLOPs ile Hugging Fcae üzerinden yayımlayacağız
6
+
7
+ # In[42]:
8
+
9
+
10
+ import pandas as pd
11
+ from sklearn.model_selection import train_test_split #veri setini bölme işlemleri
12
+ from sklearn.linear_model import LinearRegression #Doğrusal regresyon
13
+ from sklearn.metrics import mean_squared_error # modelimizin performansını ölçmek için
14
+ from sklearn.compose import ColumnTransformer # sütun dönüşüm işlemleri
15
+ from sklearn.preprocessing import OneHotEncoder, StandardScaler # kategori- sayısal dönüşüm ve ölçekleme işlemleri
16
+ from sklearn.pipeline import Pipeline # veri işleme hattı
17
+ from sklearn.metrics import mean_squared_error, r2_score
18
+
19
+
20
+ # In[2]:
21
+
22
+
23
+ #excel dosyalarını okumak için
24
+
25
+
26
+ # In[28]:
27
+
28
+
29
+ get_ipython().system('pip install xldr')
30
+
31
+
32
+ # # Veri dosyasını yükle
33
+
34
+ # In[7]:
35
+
36
+
37
+ ls
38
+
39
+
40
+ # In[29]:
41
+
42
+
43
+ df=pd.read_excel("cars.xls")
44
+ df
45
+
46
+
47
+ # In[30]:
48
+
49
+
50
+ df.info()
51
+
52
+
53
+ # In[10]:
54
+
55
+
56
+ #veri ön işleme
57
+
58
+
59
+ # In[31]:
60
+
61
+
62
+ x=df.drop('Price',axis=1) #fiyat sütununu çıkar fiyata etki edenler kalsın
63
+ y=df['Price'] #tahmin
64
+
65
+
66
+ # In[32]:
67
+
68
+
69
+ x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=42)
70
+
71
+
72
+ # # Veri ön işleme, standartlaştırma ve OHE işlemlerini otomatikleştiriyoruz (standartlaştırıyoruz). Artık preprocess kullanarak kullanıcında arayüz aracılığıyla gelen veriyi modelimize uygun hale çevirebiliriz
73
+
74
+ # In[33]:
75
+
76
+
77
+ preprocess=ColumnTransformer(
78
+ transformers=[
79
+ ('num',StandardScaler(),['Mileage', 'Cylinder','Liter','Doors']),
80
+ ('cat',OneHotEncoder(),['Make','Model','Trim','Type'])
81
+ ]
82
+ )
83
+
84
+
85
+ # In[34]:
86
+
87
+
88
+ my_model=LinearRegression()
89
+
90
+
91
+ # In[35]:
92
+
93
+
94
+ #pipeline ı tanımla
95
+ pipe=Pipeline(steps=[('preprocessor',preprocess),('model',my_model)])
96
+
97
+
98
+ # In[38]:
99
+
100
+
101
+ #pipeline fit
102
+ pipe.fit(x_train,y_train)
103
+
104
+
105
+ # In[43]:
106
+
107
+
108
+ y_pred=pipe.predict(x_test)
109
+ print('RMSE',mean_squared_error(y_test,y_pred)**0.5)
110
+ print('R2',r2_score(y_test,y_pred))
111
+
112
+
113
+ # In[44]:
114
+
115
+
116
+ #isterseniz veri setinin tammamıyla tekrar eğitim yapabilirsiniz.
117
+ #pipe.fit(X,y)
118
+
119
+
120
+ # ## Streamlit ile modeli yayma/deploy/kullanıma sunma
121
+
122
+ # In[41]:
123
+
124
+
125
+ get_ipython().system('pip install streamlit')
126
+
127
+
128
+ # Python ile yapılan çalışmnalrın hızlı bir şekilde deploy edilmesi için HTML render arayüzler tasarlamanızı sağlar
129
+
130
+ # In[47]:
131
+
132
+
133
+ import streamlit as st
134
+ #price tahmin fonksiyonu tanımla
135
+ def price(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise,sound,leather):
136
+ input_data=pd.DataFrame({'Make':[make],
137
+ 'Model':[model],
138
+ 'Trim':[trim],
139
+ 'Mileage':[mileage],
140
+ 'Type':[car_type],
141
+ 'Cylinder':[cylinder],
142
+ 'Liter':[liter],
143
+ 'Doors':[doors],
144
+ 'Cruise':[cruise],
145
+ 'Sound':[sound],
146
+ 'Leather':[leather]})
147
+ prediction=pipe.predict(input_data)[0]
148
+ return prediction
149
+ st.title("II. El Araba Fiyatı Tahmin:red_car: @aysel_olcer")
150
+ st.write('Arabanın özelliklerini seçiniz')
151
+ make=st.selectbox('Marka',df['Make'].unique())
152
+ model=st.selectbox('Model',df[df['Make']==make]['Model'].unique())
153
+ trim=st.selectbox('Trim',df[(df['Make']==make) &(df['Model']==model)]['Trim'].unique())
154
+ mileage=st.number_input('Kilometre',100,200000)
155
+ car_type=st.selectbox('Araç Tipi',df['Type'].unique())
156
+ cylinder=st.selectbox('Cylinder',df['Cylinder'].unique())
157
+ liter=st.number_input('Yakıt Hacmi',1,10)
158
+ doors=st.selectbox('Kapı sayısı',df['Doors'].unique())
159
+ cruise=st.radio('Hız Sbt.',[True,False])
160
+ sound=st.radio('Ses Sis.',[True,False])
161
+ leather=st.radio('Deri döşemes.',[True,False])
162
+ if st.button('Tahmin Et'):
163
+ pred=price(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise,sound,leather)
164
+ st.write('Fiyat:$',round(pred[0],2))
165
+
166
+
167
+ # In[ ]:
168
+
169
+
170
+
171
+
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