rafhiromadoni commited on
Commit
17ee891
·
verified ·
1 Parent(s): b974e64

Upload 3 files

Browse files
Files changed (3) hide show
  1. app.py +64 -0
  2. real_estate_model.pkl +3 -0
  3. requirements.txt +3 -0
app.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ import joblib
4
+
5
+ # 1. LOAD MODEL
6
+ print("Memuat model Real Estate Valuation...")
7
+ model = joblib.load('real_estate_model.pkl')
8
+
9
+ # 2. FUNGSI PREDIKSI REGRESI
10
+ def predict_price(house_age, distance_mrt, num_stores, latitude, longitude):
11
+ # Susun data input ke dalam DataFrame.
12
+ # PENTING: Sesuaikan nama kolom di bawah ini dengan nama kolom saat Anda melakukan training di Colab!
13
+ input_df = pd.DataFrame([[
14
+ house_age, distance_mrt, num_stores, latitude, longitude
15
+ ]], columns=['X2 house age', 'X3 distance to the nearest MRT station', 'X4 number of convenience stores', 'X5 latitude', 'X6 longitude'])
16
+
17
+ try:
18
+ # Lakukan prediksi (menghasilkan angka kontinu/harga)
19
+ predicted_price = model.predict(input_df)[0]
20
+
21
+ # Format output sebagai harga
22
+ return f"### 🏡 Estimasi Harga Properti (per unit area): \n# **${predicted_price:,.2f}**"
23
+ except Exception as e:
24
+ return f"⚠️ Terjadi error saat prediksi: Cek apakah nama kolom input sudah sesuai dengan model Anda. Error: {str(e)}"
25
+
26
+ # 3. ANTARMUKA GRADIO
27
+ with gr.Blocks(theme=gr.themes.Soft()) as demo:
28
+ gr.Markdown("""
29
+ <h1 style='text-align: center;'>🏙️ AI Real Estate Valuation</h1>
30
+ <p style='text-align: center;'>Aplikasi Machine Learning (Regresi) untuk memprediksi harga wajar suatu properti berdasarkan fasilitas di sekitarnya.</p>
31
+ """)
32
+
33
+ with gr.Row():
34
+ with gr.Column(scale=1):
35
+ gr.Markdown("**📍 Spesifikasi & Lokasi Properti**")
36
+ house_age = gr.Slider(minimum=0, maximum=50, value=15, step=1, label="Usia Rumah (Tahun)")
37
+ distance_mrt = gr.Number(value=500, label="Jarak ke Stasiun MRT Terdekat (Meter)")
38
+ num_stores = gr.Slider(minimum=0, maximum=10, value=4, step=1, label="Jumlah Minimarket/Toko Terdekat")
39
+
40
+ gr.Markdown("**🗺️ Koordinat Geografis**")
41
+ latitude = gr.Number(value=24.97, label="Garis Lintang (Latitude)")
42
+ longitude = gr.Number(value=121.54, label="Garis Bujur (Longitude)")
43
+
44
+ btn_predict = gr.Button("💰 Prediksi Harga Wajar", variant="primary")
45
+
46
+ with gr.Column(scale=1):
47
+ gr.Markdown("**📊 Hasil Analisis AI**")
48
+ out_price = gr.Markdown()
49
+
50
+ gr.Markdown("""
51
+ ---
52
+ **💡 Info Model:**
53
+ Model ini menggunakan algoritma Regresi untuk menemukan pola hubungan antara jarak fasilitas umum (seperti MRT dan minimarket) terhadap harga tanah/bangunan di area tersebut.
54
+ """)
55
+
56
+ # Hubungkan tombol
57
+ btn_predict.click(
58
+ fn=predict_price,
59
+ inputs=[house_age, distance_mrt, num_stores, latitude, longitude],
60
+ outputs=out_price
61
+ )
62
+
63
+ if __name__ == "__main__":
64
+ demo.launch()
real_estate_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d80ad00ce97bc604a6340b7bc34d1794aed08083fc6ae034b367047ce59bcf60
3
+ size 5550785
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ pandas
2
+ scikit-learn
3
+ joblib