iPAS 考題解析以下使用 scikit-learn 進行 KNN 模型交叉驗證的程式碼,執行後 cv_scores 的型別和長度為何? ```python from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score from sklearn.datasets import load_iris X, y = load_iris(return_X_y=True) knn = KNeighborsClassifier(n_neighbors=5) cv_scores = cross_val_score(knn, X, y, cv=5) print(type(cv_scores), len(cv_scores)) ```
你的作答
在題目頁作答不會存進學習紀錄,想留下紀錄可以到題庫練習。
解析
正確答案:B. numpy.ndarray, 5(每個 fold 一個分數)
cross_val_score 回傳 numpy.ndarray,長度等於 cv 參數(5),每個元素是對應 fold 的驗證集準確率。若要取平均,需另外呼叫 .mean()。這是常見考點:cross_val_score 回傳陣列,不是單一平均值。
每個選項為什麼對或錯
-
A float, 1(只有一個平均分) 錯誤選項
cross_val_score 不直接回傳平均值,而是每個 fold 的分數。
-
B numpy.ndarray, 5(每個 fold 一個分數) 正解
numpy.ndarray 且長度 5,此為正確描述。
-
C list, 5(Python 列表) 錯誤選項
cross_val_score 回傳 numpy.ndarray,不是 Python list(雖然可轉換)。
-
D dict, 5(包含 train/test 分數) 錯誤選項
cross_val_score 預設只回傳測試分數,不是 dict。
答案、題目或解析有問題?回報這題