|
|
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") |
|
|
|
|
|
|
|
|
def predict_energy(*inputs): |
|
|
|
|
|
df = pd.DataFrame([inputs], columns=feature_names) |
|
|
|
|
|
pred = model.predict(df) |
|
|
return f"预测能耗为:{pred[0]:.2f}" |
|
|
|
|
|
|
|
|
|
|
|
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() |