代码之家  ›  专栏  ›  技术社区  ›  stone rock

如何在列车数据集上使用SMAPE评估度量?

  •  1
  • stone rock  · 技术社区  · 6 年前

    我使用的是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)

    如果我使用 模型分数(x_测试,y_测试) 我得到了 -0.4678402626438 分数。请建议我如何在我的随机森林回归模型中使用smape度量。

    1 回复  |  直到 6 年前
        1
  •  1
  •   xyzjayne    6 年前

    model.fit(X_train, y_train) :

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