logo
Loading...

Cross_val_score 出來的結果 - Cupoy

Q1:請問一下這出來的結果就是R^2(相關係數)嗎? Q2:請問利用cross_val_score...

Cross_val_score 出來的結果

2022/04/21 下午 04:14
數值型特徵 - 去除離群值
Jicri
觀看數:10
回答數:1
收藏數:0

![image](http://kwassistfile.cupoy.com/000001804B2CB8AD000000236375706F795F72656C656173655155455354/1643188284884/large) Q1:請問一下這出來的結果就是R^2(相關係數)嗎? Q2:請問利用cross_val_score(estimator, train_X, train_Y, cv=5).mean(),CV=5 分成五組是將整個DATA分成五組嗎?大致上是怎麼分的? ex ALL data :A B C D E F G H I J 這些欄位那 CV=5 是分成 AB/CD/EF/GH/IJ 這樣嗎? 如果是的話是出來的準確度怎麼知道是哪個欄位影響的?還是這種情況要CV=10是最好的?

回答列表

  • 2022/04/23 上午 00:30
    王健安
    贊同數:0
    不贊同數:0
    留言數:0

    Jicri 您好, Q1 解答: 根據 Sklearn 官方文件說明, 直接使用 .score 或其他引用計算評估分數的函數(諸如:cross_val_score), 計算的評估分數會按照每個模型預設的不同而有不同, 在 Linear Regression 中的確是計算 $$ R^2 $$。 Q2 解答: cross_val_score 會涉及到 Cross Validation 的概念, 透過切割不同資料展示出最佳的模型。(這裡的「資料」在表格中指的是 Row,而非 Column) 如下圖所示,假設 CV = 5, 代表「有五組訓練集與測試集組合」的資料, 每一組的訓練集與測試集資料皆不同, 在 Sklearn 中則會按照資料先後順序進行切割。 ![image](http://kwassistfile.cupoy.com/000001805211910E000000166375706F795F72656C65617365414E53/1643188284886/large) 我們會將每組使用訓練資料訓練出模型、使用測試評估模型好壞, 因此當 CV = 5,有五組不同的訓練集與測試集資料, 代表會有五個不同的模型與評估結果, 而 cross_val_score(estimator, train_X, train_Y, cv=5).mean() 則是將五個評估結果進行平均, 得到綜合性的結果。 參考資料: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html https://github.com/scikit-learn/scikit-learn/blob/69132ebbd39f070590ca01813340b5b12c0d02ab/sklearn/model_selection/_split.py#L365