predict와 predict_proba 확률의 큰 차이

Menhel

소셜 네트워크 게시물 인식 모델을 훈련 시키려고하는데 이상한 일이 생겼습니다. 사용자 게시물의 텍스트를 받고 모델이 한 클래스를 예측하지만 가장 높은 확률은 다른 클래스에 해당합니다. 아래에 가장 간단한 예가 있지만 다른 모델에서 찾은 것과 동일합니다. 내가 predict_proba 방법에 대해 이해하지 못할 수도 있습니다.

모델:

    texts = np.array(get_train_texts()[0])
    labels = np.array(get_train_texts()[1])

    X_train, X_test, y_train, y_test = train_test_split(texts, labels, 
                                       test_size=0.25, random_state=True)

    gbc_model = Pipeline([
        ('tf_idf', TfidfVectorizer()),
        ('gbc', GradientBoostingClassifier(n_estimators=128,
                                            max_depth=16,
                                            criterion='friedman_mse'))])

    gbc_model.fit(X_train, y_train)  
    text_to_recognize = [get_post(id, offset, access_token)]    
    label = gbc_model.predict(text_to_recognize)                
    grades = gbc_model.predict_proba(text_to_recognize)        
    grades = [f'{classes[i]}: {round(grades[0][i] * 100, 4)} %' for i in range(len(classes))]

산출:

...
['science'] 
 ['science: 3.6298 %', 'cinema: 1.0597 %', 'IT: 1.5812 %', 'art: 2.1504 %', 'games: 91.5788 %']

따라서 학년에서 argmax를 선택하면 "과학"대신 잘못된 클래스 "게임"이 표시됩니다.

grades = gbc_model.predict_proba(text_to_recognize) 
result = classes[np.argmax(grades)]
print(result)

산출:

['science'] 
 ['science: 3.6298 %', 'cinema: 1.0597 %', 'IT: 1.5812 %', 'art: 2.1504 %', 'games: 91.5788 %']
games

왜 발생합니까?

amdex

gbc 모델은 사용하는 것과 다른 클래스 순서를 사용합니다. 을 선택 classes[i]하지만에서 사용하는 클래스의 색인 GradientBoostingClassifier이 동일 하다는 보장은 없습니다 .

실제로 분류기 는 클래스를 알파벳순으로 정렬 하여 과학을 마지막 클래스로 만들고 가장 확률이 높은 클래스로 만듭니다. 이것이 내부 gbc_model.classes_속성 또는 LabelEncoder.

즉, 모든 것이 분류기와 잘 어울립니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

scikit-learn에서 predict와 predict_proba의 차이점

분류에서Dev

다중 레이블 predict_proba의 출력 분할

분류에서Dev

xgboost predict_proba : 확률과 레이블 간의 매핑을 수행하는 방법

분류에서Dev

confint와 predict의 차이점

분류에서Dev

keras predict_proba를 사용하여 2 개의 확률 열을 출력하는 방법은 무엇입니까?

분류에서Dev

RandomForestClassifier (sklearn)의 predict_proba (X)가 정적 인 것 같습니다.

분류에서Dev

scikit 0.15 classifiers without predict_proba

분류에서Dev

cross_val_predict에 대한 method = 'predict_proba'반환 "인덱스 1이 크기가 1 인 축 1의 범위를 벗어났습니다."

분류에서Dev

가장 관련성이 높은 예측이 포함 된 Predict_proba 배열

분류에서Dev

sklearn의 Adaboost predict_proba는 내부적으로 어떻게 작동합니까?

분류에서Dev

predict_proba를 사용하여 각 샘플에 대한 모든 클래스의 독립 확률을 얻는 방법은 무엇입니까?

분류에서Dev

XGBoost predict_proba 느린 추론 성능

분류에서Dev

회귀 vs 분류 자 predict_proba

분류에서Dev

NaN에서 predict_proba를 X_test 결과와 병합

분류에서Dev

pscl :: predict.hurdle 확률의 합이 1이 아닙니다.

분류에서Dev

pscl :: predict.hurdle 확률의 합이 1이 아닙니다.

분류에서Dev

model (x)와 model.predict (x)의 차이점

분류에서Dev

predict와 svmclassify의 차이점은 무엇입니까?

분류에서Dev

Keras-predict_proba의 합이 1이되지 않습니까?

분류에서Dev

다중 클래스 분류를 위해 predict_proba 시각화

분류에서Dev

imageview와 textview 사이의 큰 차이

분류에서Dev

predict_proba () 단일 값을 예측할 때 로지스틱 회귀

분류에서Dev

Random Forest Classifier에서 'predict'로 예측 된 클래스에 대한 'predict_proba'를 얻는 방법은 무엇입니까?

분류에서Dev

MVC View News 카운터와 Google Analytics의 큰 차이점

분류에서Dev

어제와 오늘 사이의 가장 큰 참석률 감소 찾기 SQL

분류에서Dev

슬라이드 쇼와 홍보 영역 사이의 큰 차이-HTML / CSS

분류에서Dev

메뉴와 콘텐츠 사이의 큰 차이-어떻게 제거합니까?

분류에서Dev

/>와>의 차이

분류에서Dev

\ %와 %%의 차이

Related 관련 기사

  1. 1

    scikit-learn에서 predict와 predict_proba의 차이점

  2. 2

    다중 레이블 predict_proba의 출력 분할

  3. 3

    xgboost predict_proba : 확률과 레이블 간의 매핑을 수행하는 방법

  4. 4

    confint와 predict의 차이점

  5. 5

    keras predict_proba를 사용하여 2 개의 확률 열을 출력하는 방법은 무엇입니까?

  6. 6

    RandomForestClassifier (sklearn)의 predict_proba (X)가 정적 인 것 같습니다.

  7. 7

    scikit 0.15 classifiers without predict_proba

  8. 8

    cross_val_predict에 대한 method = 'predict_proba'반환 "인덱스 1이 크기가 1 인 축 1의 범위를 벗어났습니다."

  9. 9

    가장 관련성이 높은 예측이 포함 된 Predict_proba 배열

  10. 10

    sklearn의 Adaboost predict_proba는 내부적으로 어떻게 작동합니까?

  11. 11

    predict_proba를 사용하여 각 샘플에 대한 모든 클래스의 독립 확률을 얻는 방법은 무엇입니까?

  12. 12

    XGBoost predict_proba 느린 추론 성능

  13. 13

    회귀 vs 분류 자 predict_proba

  14. 14

    NaN에서 predict_proba를 X_test 결과와 병합

  15. 15

    pscl :: predict.hurdle 확률의 합이 1이 아닙니다.

  16. 16

    pscl :: predict.hurdle 확률의 합이 1이 아닙니다.

  17. 17

    model (x)와 model.predict (x)의 차이점

  18. 18

    predict와 svmclassify의 차이점은 무엇입니까?

  19. 19

    Keras-predict_proba의 합이 1이되지 않습니까?

  20. 20

    다중 클래스 분류를 위해 predict_proba 시각화

  21. 21

    imageview와 textview 사이의 큰 차이

  22. 22

    predict_proba () 단일 값을 예측할 때 로지스틱 회귀

  23. 23

    Random Forest Classifier에서 'predict'로 예측 된 클래스에 대한 'predict_proba'를 얻는 방법은 무엇입니까?

  24. 24

    MVC View News 카운터와 Google Analytics의 큰 차이점

  25. 25

    어제와 오늘 사이의 가장 큰 참석률 감소 찾기 SQL

  26. 26

    슬라이드 쇼와 홍보 영역 사이의 큰 차이-HTML / CSS

  27. 27

    메뉴와 콘텐츠 사이의 큰 차이-어떻게 제거합니까?

  28. 28

    />와>의 차이

  29. 29

    \ %와 %%의 차이

뜨겁다태그

보관