Tôi đang bối rối về sự khác biệt giữa chỉ số chấm điểm chéo__kết_thị 'roc_auc' và roc_auc_score mà tôi chỉ có thể nhập và gọi trực tiếp.Sự khác nhau giữa cross_val_score với điểm = 'roc_auc' và roc_auc_score là gì?
Tài liệu (http://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter) cho biết rằng chỉ định điểm = 'roc_auc' sẽ sử dụng sklearn.metrics.roc_auc_score. Tuy nhiên, khi tôi thực hiện GridSearchCV hoặc cross_val_score với điểm = 'roc_auc' tôi nhận được các số rất khác nhau khi tôi gọi roc_auc_score trực tiếp.
Đây là mã của tôi để giúp chứng minh những gì tôi thấy:
# score the model using cross_val_score
rf = RandomForestClassifier(n_estimators=150,
min_samples_leaf=4,
min_samples_split=3,
n_jobs=-1)
scores = cross_val_score(rf, X, y, cv=3, scoring='roc_auc')
print scores
array([ 0.9649023 , 0.96242235, 0.9503313 ])
# do a train_test_split, fit the model, and score with roc_auc_score
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
rf.fit(X_train, y_train)
print roc_auc_score(y_test, rf.predict(X_test))
0.84634039111363313 # quite a bit different than the scores above!
tôi cảm thấy như tôi đang thiếu một cái gì đó rất đơn giản ở đây - có thể là một sai lầm trong cách Tôi đang thực hiện/giải thích một trong những số liệu ghi bàn .
Có ai có thể làm sáng tỏ lý do cho sự khác biệt giữa hai chỉ số tính điểm không?
Tôi cũng hoàn toàn bối rối bởi sự khác biệt này. Tôi cũng đã thử sử dụng hàm make_scorer() tiêu chuẩn để biến một hàm điểm thành một đối tượng Người ghi bàn chính xác cho cross_val_score, nhưng kết quả là như nhau. make_scorer() cho kết quả tương tự như việc thực hiện thủ công của tôi, trong khi 'roc_auc' cho điểm cao hơn. May mắn thay sự khác biệt là vài% trong ví dụ của tôi, không giống như bạn, nhưng vẫn: tôi nên tin vào chức năng nào? –