RIZAEFE commited on
Commit
bab4033
·
verified ·
1 Parent(s): 6ddb24b

Upload 4 files

Browse files
Files changed (4) hide show
  1. app.py +77 -0
  2. ev_fiyat_modeli.pkl +3 -0
  3. kc_house_data.csv +0 -0
  4. requirements.txt +4 -0
app.py ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ import numpy as np
3
+ import pickle
4
+ import streamlit as st
5
+ from sklearn.model_selection import train_test_split
6
+ from sklearn.linear_model import LinearRegression
7
+ from sklearn.pipeline import Pipeline
8
+ from sklearn.compose import ColumnTransformer
9
+ from sklearn.preprocessing import StandardScaler, OneHotEncoder
10
+
11
+ # Veri Setini Yükleyin
12
+ df = pd.read_csv('kc_house_data.csv')
13
+
14
+ # Girdileri ve çıktıları ayırma
15
+ X = df.drop('price', axis=1)
16
+ y = df[['price']]
17
+
18
+ # Eğitim ve test setlerine ayırma
19
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
20
+
21
+ # Ön işleme ve model pipeline'ı oluşturma
22
+ preprocessor = ColumnTransformer(transformers=[
23
+ ('num', StandardScaler(), ['bedrooms', 'bathrooms', 'sqft_living', 'sqft_lot', 'floors', 'sqft_above', 'sqft_basement', 'yr_built', 'yr_renovated', 'sqft_living15', 'sqft_lot15']),
24
+ ('cat', OneHotEncoder(), ['zipcode'])
25
+ ])
26
+
27
+ model = LinearRegression()
28
+ pipe = Pipeline(steps=[('preprocessor', preprocessor), ('model', model)])
29
+ pipe.fit(X_train, y_train)
30
+
31
+ # Modeli kaydet
32
+ with open('ev_fiyat_modeli.pkl', 'wb') as f:
33
+ pickle.dump(pipe, f)
34
+
35
+ # Modeli yükle
36
+ with open('ev_fiyat_modeli.pkl', 'rb') as f:
37
+ loaded_model = pickle.load(f)
38
+
39
+ # Tahmin fonksiyonu
40
+ def predict_price(bedrooms, bathrooms, sqft_living, sqft_lot, floors, sqft_above, sqft_basement, yr_built, yr_renovated, sqft_living15, sqft_lot15, zipcode):
41
+ input_data = pd.DataFrame({
42
+ 'bedrooms': [bedrooms],
43
+ 'bathrooms': [bathrooms],
44
+ 'sqft_living': [sqft_living],
45
+ 'sqft_lot': [sqft_lot],
46
+ 'floors': [floors],
47
+ 'sqft_basement': [sqft_basement],
48
+ 'sqft_above': [sqft_above],}
49
+ 'yr_built': [yr_built],
50
+ 'yr_renovated': [yr_renovated],
51
+ 'sqft_living15': [sqft_living15],
52
+ 'sqft_lot15': [sqft_lot15],
53
+ 'zipcode': [zipcode]
54
+ })
55
+ prediction = loaded_model.predict(input_data)[0][0]
56
+ return max(0, prediction) # Negatif değerleri sıfıra eşitle
57
+
58
+ # Streamlit arayüzü
59
+ st.title("Home Price Estimate")
60
+ st.write("Enter the features of the house")
61
+
62
+ bedrooms = st.number_input("Number of Attack Rooms", 1, 10)
63
+ bathrooms = st.number_input("Number of Bathrooms", 1, 5)
64
+ sqft_living = st.number_input("Metrekare (Yaşam Alanı)", 50, 10000)
65
+ sqft_lot = st.number_input("Square Meters (Living Space)", 50, 50000)
66
+ floors = st.number_input("Number of Floors", 1, 3)
67
+ sqft_above = st.number_input("Square Meters (Above Ground)", 50, 10000)
68
+ sqft_basement = st.number_input("Square Meters (Underground)", 0, 5000)
69
+ yr_built = st.number_input("Year of Construction", 1900, 2022)
70
+ yr_renovated = st.number_input("Year of Renovation", 0, 2022)
71
+ sqft_living15 = st.number_input("Nearby Square Meters (Living Space)", 50, 10000)
72
+ sqft_lot15 = st.number_input("Nearby Square Meters (Land Area)", 50, 50000)
73
+ zipcode = st.selectbox("Postal code", df['zipcode'].unique())
74
+
75
+ if st.button("Set an estimated price"):
76
+ pred = predict_price(bedrooms, bathrooms, sqft_living, sqft_lot, floors, sqft_above, sqft_basement, yr_built, yr_renovated, sqft_living15, sqft_lot15, zipcode)
77
+ st.write("Estimated Price: $", round(pred, 2))
ev_fiyat_modeli.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:09ac548111585d3787d50bc50c056ccaf21841fdb7f24a504a55eaed124dea9d
3
+ size 3887
kc_house_data.csv ADDED
The diff for this file is too large to render. See raw diff
 
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ pandas
2
+ numpy
3
+ scikit-learn
4
+ streamlit