File size: 1,562 Bytes
4881268
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9aee083
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import gradio as gr
import joblib
import numpy as np

# Загрузка модели
model = joblib.load('house_price_model.pkl')

def predict_price(square, rooms):
    """Функция, которую обернёт Gradio"""
    input_data = np.array([[square, rooms]])
    price = model.predict(input_data)[0]
    return f"{price:.0f} тыс. у.е."

# Создаём интерфейс
with gr.Blocks(title="Оценка дома", theme=gr.themes.Soft()) as demo:
    gr.Markdown("# 🏡 Предсказание цены дома с помощью Gradio")
    gr.Markdown("Введите параметры — модель линейной регрессии предскажет стоимость.")
    
    with gr.Row():
        square_input = gr.Number(label="Площадь (м²)", value=80.0, minimum=10.0, maximum=200.0)
        rooms_input = gr.Slider(label="Количество комнат", minimum=1, maximum=5, step=1, value=3)
    
    price_output = gr.Textbox(label="Прогнозируемая цена", interactive=False)
    
    predict_btn = gr.Button("Рассчитать", variant="primary")
    predict_btn.click(fn=predict_price, inputs=[square_input, rooms_input], outputs=price_output)
    
    gr.Markdown("### Коэффициенты модели")
    gr.Markdown(f"- За 1 м²: {model.coef_[0]:.2f} тыс. у.е.\n- За 1 комнату: {model.coef_[1]:.2f} тыс. у.е.\n- База: {model.intercept_:.0f} тыс. у.е.")

# Запуск
demo.launch(server_name="0.0.0.0", server_port=7860, share=False)