Skip to main content
 首页 » 编程设计

python之如何在训练数据集上使用 SMAPE 评估指标

2024年12月31日32jirigala

我正在使用 SMAPE(对称平均绝对百分比误差)评估指标。

公式:https://en.wikipedia.org/wiki/Symmetric_mean_absolute_percentage_error

def smape(A, F): 
    return 100/len(A) * np.sum(2 * np.abs(F - A) / (np.abs(A) + np.abs(F))) 

我正在使用上述函数来计算 SMAPE。

现在我正在尝试使用 SMAPE 上面的代码评估我的模型,但我无法理解如何在训练数据集上使用它进行评估,然后预测测试数据集的值。

我的代码:

from sklearn.ensemble import RandomForestRegressor 
from sklearn.model_selection import train_test_split 
from sklearn.preprocessing import StandardScaler 
 
# Train and test data split 70-30  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) 
 
# Establish model 
model = RandomForestRegressor(n_jobs=-1) 
 
model.fit(X_train, y_train) 

现在如何将 SMAPE 与上述随机森林回归器一起使用?我应该使用 model.score 即 model.score(X_test, y_test) 还是 model.smape(X_test, y_test)

如果我使用 model.score(X_test, y_test) 我得到 -0.4678402626438 分数。请建议我如何将 SMAPE 指标与我的随机森林回归模型一起使用。

请您参考如下方法:

在 model.fit(X_train, y_train) 之后:

y_pred = model.predict(x_test) 
print(smape(y_test,y_pred))