miturkoglu96 commited on
Commit
68e5899
·
verified ·
1 Parent(s): 2656d30

Upload 3 files

Browse files
Files changed (3) hide show
  1. app.py +87 -0
  2. cars.xls +0 -0
  3. requirements.txt +4 -0
app.py ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 Face üzerinden yayımlayacağız.
6
+
7
+
8
+ import pandas as pd
9
+ from sklearn.model_selection import train_test_split #veri setini bölme işlemleri
10
+ from sklearn.linear_model import LinearRegression #Dogrusal Regresyon
11
+ from sklearn.metrics import r2_score, mean_squared_error #modelimizin performansını ölçmek için
12
+ from sklearn.compose import ColumnTransformer #Sütun dönüşüm işlemleri
13
+ from sklearn.preprocessing import OneHotEncoder, StandardScaler #Kategori - Sayısal dönüşüm ve ölçeklendirme
14
+ from sklearn.pipeline import Pipeline #Veri işleme hattı
15
+
16
+
17
+ df=pd.read_excel("cars.xls")
18
+ df.head()
19
+ df.info()
20
+
21
+ #Veri ön işleme
22
+ X=df.drop('Price',axis=1) #Fiyat sutunu çıkar fiyata etki edenler kalsın
23
+ y=df['Price'] #tahmin edilecek sutun
24
+
25
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
26
+
27
+ # Veri ön işleme, standartlaştırma ve OHE işlemlerini otomatikleştiriyoruz (Standartlaştırıyoruz).Artık preprocess kullanarak kullanıcıda arayüz aracılığıyla gelen veriyi uygun hale çevirebiliriz.
28
+
29
+
30
+ preprocess=ColumnTransformer(
31
+ transformers=[
32
+ ('num', StandardScaler(),['Mileage','Cylinder','Liter','Doors']),
33
+ ('cat', OneHotEncoder(), ['Make','Model','Trim','Type'])
34
+ ]
35
+ )
36
+
37
+ my_model=LinearRegression()
38
+
39
+ #pipline tanımlama
40
+ pipe=Pipeline(steps=[('preprocessor', preprocess), ('model', my_model)])
41
+
42
+ #pipline fit edilmesi
43
+ pipe.fit(X_train, y_train)
44
+
45
+ y_pred=pipe.predict(X_test)
46
+ mean_squared_error(y_test,y_pred)**0.5,r2_score(y_test,y_pred)
47
+
48
+ # Python ile yapılan çalışmaların hızlı bir şekilde deploy edilmesi için HTML render arayüzler tasarlamamızı sağlar
49
+
50
+ import streamlit as st
51
+ #price tahmin fonksiyonu tanımlama
52
+ def price(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise,sound,leather):
53
+ input_data=pd.DataFrame({'Make':[make],
54
+ 'Model':[model],
55
+ 'Trim':[trim],
56
+ 'Mileage':[mileage],
57
+ 'Type':[car_type],
58
+ 'Cylinder':[cylinder],
59
+ 'Liter':[liter],
60
+ 'Doors':[doors],
61
+ 'Cruise':[cruise],
62
+ 'Sound':[sound],
63
+ 'Leather':[leather]})
64
+ prediction=pipe.predict(input_data)[0]
65
+ return prediction
66
+ st.title("II. El Araba Fiyat Tahmini:blue_car: @miturkoglu")
67
+ st.write('Arabanın özelliklerini seçiniz.Fiyat tahmini yapmak istediğiniz arabanın bilgilerini giriniz')
68
+ make=st.selectbox('Marka',df['Make'].unique())
69
+ model=st.selectbox('Model',df[df['Make']==make]['Model'].unique())
70
+ trim=st.selectbox('Trim',df[(df['Make']==make)&(df['Model']==model)]['Trim'].unique())
71
+ mileage=st.number_input('Kilometre',100,200000)
72
+ #mileage=st.slider("Mileage",int(df['Mileage'].min()),int(df['Mileage'].max()))
73
+ #car_type=st.selectbox('Araç Tipi',df['Type'].unique())
74
+ car_type=st.selectbox('Araç Tipi',df[(df['Make']==make) &(df['Model']==model)&(df['Trim']==trim)]['Type'].unique())
75
+ cylinder=st.selectbox('Cylinder',df['Cylinder'].unique())
76
+ liter=st.number_input('Yakıt Hacmi',1,10)
77
+ doors=st.selectbox('Kapı Sayısı',df['Doors'].unique())
78
+ cruise=st.selectbox('Hız Sabitleyici',[True,False])
79
+ sound=st.selectbox('Ses Sistemi',[True,False])
80
+ leather=st.selectbox('Deri Döşeme',[True,False])
81
+ if st.button('Tahmin Et'):
82
+ pred=price(make,model,trim,mileage,car_type,cylinder,liter,doors,cruise,sound,leather)
83
+ st.write('Tahmini Fiyat :red_car: $',round(pred[0],2))
84
+
85
+
86
+
87
+
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