如何在火车数据集上使用SMAPE评估指标?

时间:2018-07-20 14:20:32

标签: python pandas numpy scikit-learn

我正在使用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.scoremodel.score(X_test, y_test)还是model.smape(X_test, y_test)

如果我使用model.score(X_test, y_test),则得分为-0.4678402626438。请建议我如何在我的随机森林回归模型中使用SMAPE指标。

1 个答案:

答案 0 :(得分:1)

model.fit(X_train, y_train)之后:

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