2

sklearn 패키지를 사용하여 로지스틱 회귀 모델을 만든 다음이를 평가합니다. 특히 교차 유효성 검사를 사용하여이 작업을 수행하려고하지만 cross_val_score 함수로 올바른 방법을 알아낼 수는 없습니다.Sklearn의 로지스틱 회귀 모델에 교차 유효성 검사 및 AUC-ROC 사용

documentation 및 일부 examples에 따르면 모델, 기능, 결과 및 채점 방법에 함수를 전달해야합니다. 그러나 AUC에는 예측이 필요하지 않으며 확률이 필요하므로 다른 임계 값을 시도하고이를 기반으로 ROC 곡선을 계산할 수 있습니다. 그렇다면 올바른 접근 방법은 무엇입니까? 이 함수는 가능한 점수 매기기 방법으로 'roc_auc'을 가지고 있으므로 호환 가능하다고 가정하고 있습니다. 올바른 방법을 사용하고 있는지 확실하지 않습니다. 아래 샘플 코드 스 니펫. 여기 내 cross_val_score 기능에 y을 통과해야하는 이유

from sklearn.linear_model import LogisticRegression 
from sklearn.cross_validation import cross_val_score 

features = ['a', 'b', 'c'] 
outcome = ['d'] 
X = df[features] 
y = df[outcome] 
crossval_scores = cross_val_score(LogisticRegression(), X, y, scoring='roc_auc', cv=10) 

기본적으로, 대신 로지스틱 회귀 모델에서 X을 사용하여 계산 확률의, 이해가 안 돼요. 그것은 그 부분을 독자적으로 할 것인가?

+0

질문이 있으십니까? 그렇다면 정답 옆에있는 확인란을 선택하여 정답을 표시해야합니다. 그렇지 않으면 무엇이 명확히 될 수 있습니까? –

답변

1

모든 감독 학습 방법 (로지스틱 회귀 포함)은 모델에 맞는 실제 값 y이 필요합니다.

  • 예측을 확인하고
(일반적으로 교차 유효성 검사를 사용하여 같은 데이터 '밖으로 열리는'에) 그 예측 점수 :

는 모델 피팅 후, 우리는 일반적으로 할

cross_val_score은 교차 검증 된 모델의 예측 점수를 제공합니다. 그러나 예측에 점수를 매기려면 먼저 예측을해야하며 예측을하려면 먼저 모델에 맞춰야합니다. X과 (true) y이 모두 필요합니다.

cross_val_score 참고로 다른 점수 측정 기준을 사용할 수 있습니다. 따라서 예를 들어 f1-score을 선택한 경우 cross-val-score 중에 생성 된 모델 예측은 모델의 predict() 메소드의 클래스 예측입니다. 메트릭으로 roc_auc을 선택한 경우 모델의 점수를 산정하는 데 사용 된 모델 예측은 확률 예측입니다 (모델의 predict_proba() 메소드 사용).

0

cross_val_score은 실제 값을 가진 입력에 대해 모델링하고 예측을 수행 한 다음 해당 예측을 실제 값인 채점 단계와 비교합니다. 그래서 y을 전달합니다 : 사실 값인 "지상 진실"입니다. scoring='roc_auc'를 지정하여 호출

roc_auc_score 기능은 y_truey_pred 모두에 의존 : 지상 진실과 예측 값이 모델에 대한 X에 따라.

관련 문제