File size: 1,086 Bytes
eeae587
 
 
 
 
 
4ca5c57
 
 
eeae587
4ca5c57
 
 
 
 
 
 
 
 
 
 
 
 
eeae587
 
 
4ca5c57
 
 
 
eeae587
 
4ca5c57
 
 
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
33
34
35
import gradio as gr
import pandas as pd
import joblib
import numpy as np
from sklearn.ensemble import RandomForestRegressor

# ——— 加载你训练好的模型和特征名 ———
model = joblib.load("rf_model.joblib")
feature_names = joblib.load("rf_features.joblib")  # 应当是像 ["feature1", "feature2", ...]

# ——— 定义预测函数 ———
def predict_energy(*inputs):
    # 将输入打包成 DataFrame
    df = pd.DataFrame([inputs], columns=feature_names)
    # 调用模型预测
    pred = model.predict(df)
    return f"预测能耗为:{pred[0]:.2f}"

# ——— 构建 Gradio 界面 ———
# 动态为每个特征创建一个 Number 输入框
input_components = [
    gr.Number(label=name) for name in feature_names
]

demo = gr.Interface(
    fn=predict_energy,
    inputs=input_components,
    outputs="text",
    title="🏡 Energy Usage Predictor",
    description="基于 RandomForest 已训练模型 (rf_model.joblib),输入若干特征,输出能耗预测结果"
)

# ——— 启动 ———
if __name__ == "__main__":
    demo.launch()