Spaces:
Sleeping
Sleeping
Commit
·
2cc4b8e
1
Parent(s):
279040d
Update app.py
Browse files
app.py
CHANGED
@@ -4,7 +4,10 @@ import numpy as np
|
|
4 |
import pandas as pd
|
5 |
from datasets import load_dataset
|
6 |
|
|
|
7 |
model = tf.keras.models.load_model('model/price_model.h5')
|
|
|
|
|
8 |
location_mapping = {1: 'Астрахань', 2: 'Волгоград', 3: 'Краснодар', 4: 'Ростов-на-Дону', 5: 'Майкоп', 6: 'Элиста'}
|
9 |
district_mapping = {
|
10 |
1: [11, 12, 13, 14, 15],
|
@@ -23,6 +26,8 @@ district_names = {
|
|
23 |
61: 'Элиста - Центральный'
|
24 |
}
|
25 |
author_type_mapping = {0: 'Риелтор', 1: 'Частный владелец'}
|
|
|
|
|
26 |
dataset = load_dataset("1sozidatel1/sfd_housing_prices_november_2024")
|
27 |
data = pd.DataFrame(dataset['train'])
|
28 |
feature_cols = ['author_type_id', 'location_id', 'district_id', 'floor', 'rooms_count', 'total_meters']
|
@@ -49,9 +54,11 @@ def update_districts(location):
|
|
49 |
districts = [district_names[district_id] for district_id in district_mapping[location_id]]
|
50 |
return gr.update(choices=districts)
|
51 |
|
|
|
52 |
with gr.Blocks() as demo:
|
53 |
gr.Markdown("# Модель предсказания цен на недвижимость")
|
54 |
gr.Markdown("Этот интерфейс позволяет предсказать цену на недвижимость на основе различных параметров, таких как тип продавца, город, район, этаж, количество комнат и площадь. Введите необходимые данные и нажмите кнопку 'Предсказать цену', чтобы получить предсказание 💵")
|
|
|
55 |
with gr.Row():
|
56 |
with gr.Column():
|
57 |
author_type = gr.Dropdown(choices=list(author_type_mapping.values()), label="Тип продавца")
|
@@ -61,10 +68,12 @@ with gr.Blocks() as demo:
|
|
61 |
rooms_count = gr.Dropdown(choices=[1, 2, 3, 4, 5], label="Количество комнат")
|
62 |
total_meters = gr.Number(label="Площадь, кв.м")
|
63 |
predict_btn = gr.Button("Предсказать цену")
|
|
|
64 |
with gr.Column():
|
65 |
price = gr.Number(label="Предсказанная цена, (тыс. руб.)")
|
66 |
-
|
67 |
location.change(update_districts, inputs=location, outputs=district)
|
68 |
predict_btn.click(predict_price, inputs=[author_type, location, district, floor, rooms_count, total_meters], outputs=price)
|
69 |
|
70 |
-
|
|
|
|
4 |
import pandas as pd
|
5 |
from datasets import load_dataset
|
6 |
|
7 |
+
# Загрузка модели
|
8 |
model = tf.keras.models.load_model('model/price_model.h5')
|
9 |
+
|
10 |
+
# Карты местоположений и районов
|
11 |
location_mapping = {1: 'Астрахань', 2: 'Волгоград', 3: 'Краснодар', 4: 'Ростов-на-Дону', 5: 'Майкоп', 6: 'Элиста'}
|
12 |
district_mapping = {
|
13 |
1: [11, 12, 13, 14, 15],
|
|
|
26 |
61: 'Элиста - Центральный'
|
27 |
}
|
28 |
author_type_mapping = {0: 'Риелтор', 1: 'Частный владелец'}
|
29 |
+
|
30 |
+
# Загрузка данных
|
31 |
dataset = load_dataset("1sozidatel1/sfd_housing_prices_november_2024")
|
32 |
data = pd.DataFrame(dataset['train'])
|
33 |
feature_cols = ['author_type_id', 'location_id', 'district_id', 'floor', 'rooms_count', 'total_meters']
|
|
|
54 |
districts = [district_names[district_id] for district_id in district_mapping[location_id]]
|
55 |
return gr.update(choices=districts)
|
56 |
|
57 |
+
# Создание интерфейса Gradio
|
58 |
with gr.Blocks() as demo:
|
59 |
gr.Markdown("# Модель предсказания цен на недвижимость")
|
60 |
gr.Markdown("Этот интерфейс позволяет предсказать цену на недвижимость на основе различных параметров, таких как тип продавца, город, район, этаж, количество комнат и площадь. Введите необходимые данные и нажмите кнопку 'Предсказать цену', чтобы получить предсказание 💵")
|
61 |
+
|
62 |
with gr.Row():
|
63 |
with gr.Column():
|
64 |
author_type = gr.Dropdown(choices=list(author_type_mapping.values()), label="Тип продавца")
|
|
|
68 |
rooms_count = gr.Dropdown(choices=[1, 2, 3, 4, 5], label="Количество комнат")
|
69 |
total_meters = gr.Number(label="Площадь, кв.м")
|
70 |
predict_btn = gr.Button("Предсказать цену")
|
71 |
+
|
72 |
with gr.Column():
|
73 |
price = gr.Number(label="Предсказанная цена, (тыс. руб.)")
|
74 |
+
|
75 |
location.change(update_districts, inputs=location, outputs=district)
|
76 |
predict_btn.click(predict_price, inputs=[author_type, location, district, floor, rooms_count, total_meters], outputs=price)
|
77 |
|
78 |
+
if __name__ == "__main__":
|
79 |
+
demo.launch()
|