以下使用 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)) ```

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)) ```

  • A. float, 1(只有一個平均分)
  • B. numpy.ndarray, 5(每個 fold 一個分數) ✓ 正確答案
  • C. list, 5(Python 列表)
  • D. dict, 5(包含 train/test 分數)

詳細解析

cross_val_score 回傳 numpy.ndarray,長度等於 cv 參數(5),每個元素是對應 fold 的驗證集準確率。若要取平均,需另外呼叫 .mean()。這是常見考點:cross_val_score 回傳陣列,不是單一平均值。

出題年份:114 難度:★★★