我正在使用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与上述randomforest回归器一起使用?我应该使用model.score
即model.score(X_test, y_test)
还是model.smape(X_test, y_test)
如果我使用model.score(X_test, y_test)
,则得分为-0.4678402626438
。请建议我如何在我的随机森林回归模型中使用SMAPE指标。
答案 0 :(得分:1)
在model.fit(X_train, y_train)
之后:
y_pred = model.predict(x_test)
print(smape(y_test,y_pred))