logo
Loading...

cross_val_score參數設定 - Cupoy

cross_val_score(estimator, train_X, train_Y, cv=5)...

cross_val_score參數設定

2020/03/11 上午 09:08
機器學習共學討論版
江柏勳
觀看數:62
回答數:3
收藏數:2

cross_val_score(estimator, train_X, train_Y, cv=5).mean()

想請問一下裡面參數的意義?(藉由這些參數我們做哪些事)

話說這裡的estimator對應到的是LinearRegression()

回答列表

  • 2020/03/11 下午 10:31
    李子明
    贊同數:0
    不贊同數:0
    留言數:3

    train_X是訓練集(題目),train_Y是標籤集(答案),舉個例子:

    題目是:「11,12,22,34,51」,答案是「2,3,4,7,6」

    很明顯地可看出答案其實是「十位數加上個位數」。


    estimator是一種方法,以上例為例,這個方法的目的是為了找出「十位數加上個位數」這種事實,所以當題目與答案輸入到方法中,方法就會輸出這個方法認為的解答,而我們希望這個解答是完美的答案,即「十位數加上個位數」這樣子完美的答案。


    上面講的方法可以是你問題中講的LinearRegression,也可以是其他的方法,不同的方法,得到的解答可能都會不同,但通常解答不會是完美的,不完美的解答分成兩種,其中一種叫做overfitting,意思是當輸入的題目剛好都是訓練集中的題目時(「11,12,22,34,51」),這個方法都可以近似完美的推論出正確的答案(「2,3,4,7,6」),但如果不在訓練集中的時候,這個方法就很容易推論錯誤,比如「33,44」都不會被正確的推論為「6,8」。


    簡單的講,overfitting就是,新聘的老師教學生用取巧的方式來背題庫的解答去參加考試,如果考試題目都跟題庫可以用類似的取巧手段時,就會考高分的意思是一樣的。(聽說三十年前的托福考試就有人整理出公式來,看到什麼選什麼答案就可以拿到高分)


    為了確認是否有overfitting,我們會用題庫之外的題目來檢查學生是不是只學會取巧的方式來參加考試,但我們手上的題目又只有這麼多而已,舊老師又離職了,我們也不懂得出新的題目,那怎麼辨呢?


    答案之一是,我們依然還是要給學生題庫,但不全給,比如我們手上有100題,但只給80題,自己保留20題,等到考試時,我們只出這20題,其他已經給學生的80題完全不出現在考試券上,這樣子用來驗證學生是否真的有學到東西,不過又因為題目的巧合性,所以只這樣做的話仍然是不夠保險的,因此下一屆的學生,也同樣保留20題來當考題,但這個20題與上屆的20題是不同的20題,用來避開題目的巧合性,再下一屆也是保留沒當過考題的20題,…,因此,可以考五屆學生,拿五屆學生的差異分數來取得平均分數,我們就會比較有信心的用這個平均分數來確認這位新聘的老師創造出來的取巧方式是不是足夠的好。


    你問題中的cv=5,就是把題庫分成五等份,意即100題題庫分給五屆學生來考試,目的是為了確認新聘老師教給學生的取巧方式是不是夠好。


    cross_val_score的道理差不多是這樣的了,但還是有一點是不一樣的,那就是cross_val_score並不是拿五屆的學生來做這種事,而是同一屆的學生,用重置學生大腦中的記憶,讓他們回到應考前的狀態來完成這樣子的事。

  • 2020/03/12 下午 00:04
    Jeffrey
    贊同數:0
    不贊同數:0
    留言數:1

    將複雜的資料數據,擬和至一條直線上,就能方便預測未來的資料;

    所以, y= f(x) = ax+b, 所以會找出一條直線,  以 x 數據的分布, 讓 y 的分布距離匯出的直線等距或是最小距離

  • 2020/03/17 上午 01:36
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:1

    話說這裡的estimator對應到的是LinearRegression()


    => 對的,estimator 是指任何一種模型。 cross_val_score 的用法是將「資料切成 N 份,取其中一份做 training 剩下 N-1 份做 testing,重複 N 次」cv=5 就是 N = 5。


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