Day_026_HW 準確度反而上升的結果解釋
老師們您好,
關於day 26作業上的執行,我使用與解答略為不同的方式進行經度實際距離cos轉換,我的程式碼如下:
df['distance_real'] = ((df['pickup_latitude'].map(lambda x: math.cos(x/180*math.pi))*df['longitude_diff'])**2 + df['latitude_diff']**2)**0.5
我得到的結果看在gradient boosting看來跟解答情況類似,但是linear regression的結果卻提昇了將近10倍,達到23%。
但是只跑real distance單變量時(作業2),結果也跟解答差不多,R^2都不到1%
想知道:
1. 會發生原因,是因為找出real distance與2D distance 對Fare 的 mask association嗎?
2. 為什麼gradient boosting跟Linear regression面對「多一個變數的變化」會差這麼多?
3. 在真實世界中,這算是個aha-moment嗎?還是有什麼實際操作來更審慎的看待這個發現?
完整程式碼:
import math
df['distance_real'] = ((df['pickup_latitude'].map(lambda x: math.cos(x/180*math.pi))*df['longitude_diff'])**2 + df['latitude_diff']**2)**0.5
# 觀察結果
train_X = scaler.fit_transform(df)
print(f'Linear Reg Score : {cross_val_score(Linear, train_X, train_Y, cv=5).mean()}')
print(f'Gradient Boosting Reg Score : {cross_val_score(GDBT, train_X, train_Y, cv=5).mean()}')
回答列表
-
2019/05/21 上午 10:24陳明佑 (Ming You Chen)贊同數:0不贊同數:0留言數:1
嗯...這點是有些奇怪,
可能執行上有點隨機性, 加上原本線性模型太差的結果
不過回歸問題還是以最好的模型為主,
所以分數更接近 1 的梯度提升樹, 還是明顯比線性回歸好很多
-
2019/05/22 下午 02:28張維元 (WeiYuan)贊同數:1不贊同數:0留言數:1
嗨,這個部分很多同學提出疑問,重跑的差異跟解讀有不同,這邊我想請主辦單位統一公告好了。