Sklearn의 make_scorer 함수에서 "배열에 대한 인덱스가 너무 많습니다"오류

Jhutch

목표 : Brier Score Loss를 사용하여 GridSearchCV를 사용하여 랜덤 포레스트 알고리즘 훈련

문제 : make_scorer를 사용할 때 대상 "y"에 대한 확률 예측이 잘못된 차원입니다.

이 질문을 살펴본 후 제안 프록시 기능을 사용하여 brier score 손실로 훈련 된 GridSearchCV를 사용하고 있습니다. 다음은 설정의 예입니다.

from sklearn.model_selection import GridSearchCV
from sklearn.metrics import brier_score_loss,make_scorer
from sklearn.ensemble import RandomForestClassifier
import numpy as np

def ProbaScoreProxy(y_true, y_probs, class_idx, proxied_func, **kwargs):
    return proxied_func(y_true, y_probs[:, class_idx], **kwargs)

brier_scorer = make_scorer(ProbaScoreProxy, greater_is_better=False, \
                           needs_proba=True, class_idx=1, proxied_func=brier_score_loss)

X = np.random.randn(100,2)
y = (X[:,0]>0).astype(int)

random_forest = RandomForestClassifier(n_estimators=10)

random_forest.fit(X,y)

probs = random_forest.predict_proba(X)

이제 probsand ybrier_score_loss또는 둘 중 하나에 직접 전달하면 ProbaScoreProxy오류가 발생하지 않습니다.

ProbaScoreProxy(y,probs,1,brier_score_loss)

출력 :

0.0006

이제 통과 brier_scorer:

brier_scorer(random_forest,X,y)

산출:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-28-1474bb08e572> in <module>()
----> 1 brier_scorer(random_forest,X,y)

~/anaconda3/lib/python3.6/site-packages/sklearn/metrics/_scorer.py in __call__(self, estimator, X, y_true, sample_weight)
    167                           stacklevel=2)
    168         return self._score(partial(_cached_call, None), estimator, X, y_true,
--> 169                            sample_weight=sample_weight)
    170 
    171     def _factory_args(self):

~/anaconda3/lib/python3.6/site-packages/sklearn/metrics/_scorer.py in _score(self, method_caller, clf, X, y, sample_weight)
    258                                                  **self._kwargs)
    259         else:
--> 260             return self._sign * self._score_func(y, y_pred, **self._kwargs)
    261 
    262     def _factory_args(self):

<ipython-input-25-5321477444e1> in ProbaScoreProxy(y_true, y_probs, class_idx, proxied_func, **kwargs)
      5 
      6 def ProbaScoreProxy(y_true, y_probs, class_idx, proxied_func, **kwargs):
----> 7     return proxied_func(y_true, y_probs[:, class_idx], **kwargs)
      8 
      9 brier_scorer = make_scorer(ProbaScoreProxy, greater_is_better=False,                            needs_proba=True, class_idx=1, proxied_func=brier_score_loss)

IndexError: too many indices for array

따라서 make_scorer확률 입력의 차원을 변경하기 위해 어떤 일이 일어나고있는 것처럼 보이지만 문제가 무엇인지 알 수 없습니다.

버전 :-sklearn : '0.22.2.post1'-numpy : '1.18.1'

여기 y에 올바른 차원 (1-d) 이 있으며 문제를 일으키는 차원 y_probs이 전달되는 것을 둘러 보면 찾을 수 ProbaScoreProxy있습니다.

마지막 질문에서 잘못 작성된 코드입니까? RF를 훈련시키기 위해 받아 들일 수 있는 make_score 객체를 갖는 궁극적 인 방법은 무엇입니까 GridSearchCV?

akilat90

목표 : Brier Score Loss를 사용하여 GridSearchCV를 사용하여 랜덤 포레스트 알고리즘 훈련

이 목표를 위해 매개 변수 의 문자열 값 'neg_brier_score'직접 사용할 수 있습니다.GridSearchCV scoring

예를 들면 :

gc = GridSearchCV(random_forest,
                  param_grid={"n_estimators":[5, 10]},
                  scoring="neg_brier_score")

gc.fit(X, y)
print(gc.scorer_) 
# make_scorer(brier_score_loss, greater_is_better=False, needs_proba=True)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Numpy 배열-IndexError : 배열에 대한 인덱스가 너무 많습니다.

분류에서Dev

IndexError 해결 방법 : 배열에 대한 인덱스가 너무 많습니다.

분류에서Dev

오류를 제공하는 make_scorer : 'str'객체는 호출 할 수 없습니다. make_scorer

분류에서Dev

sklearn 예외 오류 : Tensorflow의 GridSearchCV에서 fitfailed 경고

분류에서Dev

단순 R 함수의 구문 오류 (오류 : "}"에서 예기치 않은 '}')

분류에서Dev

Hypopt 하이퍼 파라미터 튜닝 오류 : 'sklearn.metrics'에 'scorer'속성이 없습니다.

분류에서Dev

sklearn에서 CountVectorizer 가져 오기 오류

분류에서Dev

WCF에서 getDataAsync의 dot-net 생성 함수에서 오류 가져 오기

분류에서Dev

Adaboost Sklearn Python의 에스티 메이터 오류

분류에서Dev

Adaboost Sklearn Python의 에스티 메이터 오류

분류에서Dev

Lodash의 흐름에서 함수 오류를 예상하기

분류에서Dev

C에서 보완 오류 함수 erfcinv ()의 역 계산

분류에서Dev

C에서 함수 선언의 컴파일 오류

분류에서Dev

std :: qsort의 비교 함수에서 오류 조건 처리

분류에서Dev

catchError () 함수의 Angular 10에서 HttpInterceptor 파이프 오류

분류에서Dev

RStudio의 모듈 함수에서 이상한 오류

분류에서Dev

sum 함수 내의 case 문에서 SQL 구문 오류

분류에서Dev

Fortran 95에서`오류 : 함수의 반환 유형 불일치`

분류에서Dev

렌더링 함수에서 구문의 ReactJS 오류

분류에서Dev

렌더링 함수에서 구문의 ReactJS 오류

분류에서Dev

외부 스크립트 내의 함수에서 오류 포착

분류에서Dev

오류가있는 R에서 단순 함수의 기본 예

분류에서Dev

VBA의 하위에서 함수 호출-한정자 오류

분류에서Dev

C의 함수 내에서 매크로 사용 오류

분류에서Dev

VBA의 함수에서 RegEx MatchCollection 반환-오류 450

분류에서Dev

R ": ="에서 정의되지 않은 함수 오류

분류에서Dev

R caret 패키지의 train () 함수에서 rbind.fill 오류

분류에서Dev

비동기 함수에서 비동기 함수의 오류 잡기

분류에서Dev

컴파일 오류에서 함수 매개 변수로서 &의 의미

Related 관련 기사

  1. 1

    Numpy 배열-IndexError : 배열에 대한 인덱스가 너무 많습니다.

  2. 2

    IndexError 해결 방법 : 배열에 대한 인덱스가 너무 많습니다.

  3. 3

    오류를 제공하는 make_scorer : 'str'객체는 호출 할 수 없습니다. make_scorer

  4. 4

    sklearn 예외 오류 : Tensorflow의 GridSearchCV에서 fitfailed 경고

  5. 5

    단순 R 함수의 구문 오류 (오류 : "}"에서 예기치 않은 '}')

  6. 6

    Hypopt 하이퍼 파라미터 튜닝 오류 : 'sklearn.metrics'에 'scorer'속성이 없습니다.

  7. 7

    sklearn에서 CountVectorizer 가져 오기 오류

  8. 8

    WCF에서 getDataAsync의 dot-net 생성 함수에서 오류 가져 오기

  9. 9

    Adaboost Sklearn Python의 에스티 메이터 오류

  10. 10

    Adaboost Sklearn Python의 에스티 메이터 오류

  11. 11

    Lodash의 흐름에서 함수 오류를 예상하기

  12. 12

    C에서 보완 오류 함수 erfcinv ()의 역 계산

  13. 13

    C에서 함수 선언의 컴파일 오류

  14. 14

    std :: qsort의 비교 함수에서 오류 조건 처리

  15. 15

    catchError () 함수의 Angular 10에서 HttpInterceptor 파이프 오류

  16. 16

    RStudio의 모듈 함수에서 이상한 오류

  17. 17

    sum 함수 내의 case 문에서 SQL 구문 오류

  18. 18

    Fortran 95에서`오류 : 함수의 반환 유형 불일치`

  19. 19

    렌더링 함수에서 구문의 ReactJS 오류

  20. 20

    렌더링 함수에서 구문의 ReactJS 오류

  21. 21

    외부 스크립트 내의 함수에서 오류 포착

  22. 22

    오류가있는 R에서 단순 함수의 기본 예

  23. 23

    VBA의 하위에서 함수 호출-한정자 오류

  24. 24

    C의 함수 내에서 매크로 사용 오류

  25. 25

    VBA의 함수에서 RegEx MatchCollection 반환-오류 450

  26. 26

    R ": ="에서 정의되지 않은 함수 오류

  27. 27

    R caret 패키지의 train () 함수에서 rbind.fill 오류

  28. 28

    비동기 함수에서 비동기 함수의 오류 잡기

  29. 29

    컴파일 오류에서 함수 매개 변수로서 &의 의미

뜨겁다태그

보관