logo
Loading...

使用混和泛化之後預測出來的結果為什麼要再使用np.expm1()才會是真正的結果? - Cupoy

想請問範例49最後使用混和泛化之後預測出來的結果為什麼要再使用np.expm1()才會是真正的結果p...

使用混和泛化之後預測出來的結果為什麼要再使用np.expm1()才會是真正的結果?

2020/04/20 下午 09:37
機器學習共學討論版
Jeff Huang
觀看數:25
回答數:2
收藏數:0

想請問範例49最後使用混和泛化之後預測出來的結果為什麼要再使用np.expm1()才會是真正的結果

pd.DataFrame({'Id': ids, 'SalePrice': np.expm1(blending_pred)})

因為前面的步驟我沒看到哪裡有先壓縮過資料如: np.log1p()

謝謝!

回答列表

  • 2020/04/21 下午 08:40
    李子明
    贊同數:1
    不贊同數:0
    留言數:0

    因為上面的:

    train_Y = np.log1p(df_train['SalePrice'])


    所以後續訓練出來的模型所推論出來的解都是對數這個等階的解:

    linear.fit(train_X, train_Y)

    gdbt.fit(train_X, train_Y)

    rf.fit(train_X, train_Y)


    那再接下來的blending_pred又是混合這三種的解

    blending_pred = linear_pred*0.30 + gdbt_pred*0.67 + rf_pred*0.03


    所以blending_pred也是對數這個等階的解,因此需要使用反算回指數等階的解。

  • 2020/04/25 下午 11:01
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    嗨,Jeff Huang


    如同子明說的,最主要原因是因為上面有使用到 np.log1p,所以必須轉回來。


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃