前言:育嬰雜事多,所以這個學習會緩慢地前進,假設有誰在認真看系列文的話、真是不好意思沒辦法太多產!
上篇文章談到Rsquared可以拿來做模型評估。本章就是實際來實作~
一樣是使用sklearn(scikit)這個python模組,裏頭還講了蠻多課堂上沒有的東西,包含如何防止overfitting的現象等等。
假設你只是想用scikit做R squared的話很簡單、就是使用sklearn.metrics.r2_score
連結
把預測值跟真實值加入參數後、就可以得到R2-score的分數
以前面多元迴歸的範例來算r2-score的話,我得到:
0.9347068473282987
數值上非常接近1、所以是蠻不錯的。
另外筆記一些東西,sklearn的使用說明第三大章我看了幾眼,第一章是說cross validation,我覺得是蠻深水區的東西XD 裡頭講到了我們選參數的時候往往是拿test set來做驗證、然後回頭選擇模型的相關參數,但是這就有data leak的問題(就變得不客觀,因為我們是已經先看了答案再回頭調整模型參數,那有可能會讓你的模型在做這資料時結果很好、但其他資料結果非常差),cross validation就是在防止這種狀況發生。這邊用的手法是把資料再分成三份,Training set,用來「學」,Validation set 用來協助選模型,然後Test set是拿來做最後驗證的結果。可實際上根本沒那麼多資料拿來切分,所以cross validation是把資料隨機打亂、分組並驗證的作法,例如,我們先在把訓練資料分成5份,
第1次:2,3,4,5 train → 1 validation
第2次:1,3,4,5 train → 2 validation
第3次:1,2,4,5 train → 3 validation
第4次:1,2,3,5 train → 4 validation
第5次:1,2,3,4 train → 5 validation
經過這五次的訓練、我們可以找到不錯的模型跟其參數,最後在拿來跟test set做驗證,如此一來模型才比較有效用。
而其他章節還談到classification 那段的模型參數怎麼調整(就怎麼分類拉XD)
我看了一下課程教材,最後一個實作內容是模型選擇,可能會談更細一點,到時候再另開章節補充好了。
學到目前為止、覺得Machine learning真的蠻好玩的,好玩的點對我來說是竟然有這個做法來做資料預測!!另外則是,資料永遠都跑得出來(感謝偉大的涵式庫撰寫者),但到底可不可以拿來使用? 預測的準確度有多高其中有很多很細節的方式討論(像是剛剛講的cross validation就是實務上非常需要的操作,以避免資料獨立性不佳)。
接下來的章節就是來學學classification了,我想跟迴歸會是非常不同的邏輯、不過資料百百種,要預測的狀況也百百種,就繼續學下去囉(還可以拿來當催眠小孩的素材)!