분류기 쌓기 : 맞춤 분류기를 사용하면 오류가 반환됩니다.

ednaMode

sklearn에서 StackingClassifier를 사용하고 있는데, 여기서 구성 요소 모델이 사용자 지정 분류자가되기를 원합니다. 이를 위해 커스텀 분류 기가 이미 존재하는 모델 (이 예에서는 KNN)과 정확히 동일한 더미 코드로 테스트하고 싶었습니다. 그러나 이것은 오류를 발생시키고 이유를 이해하지 못하고 이에 대한 도움을 찾고 있습니다. 아마도 꽤 분명한 것입니다 (사용자 지정 분류자를 작성하고 ClassiferMixIn을 사용하는 것을 처음 사용했습니다).하지만 내가 무엇을 놓치고 있는지 알아낼 수 없습니다.

코드-내 사용자 정의 클래스가없는 기본 예제 (작동) :

from sklearn.ensemble import StackingClassifier
from sklearn.pipeline import Pipeline
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_breast_cancer

X, y = load_breast_cancer(return_X_y=True, as_frame=True)

model = StackingClassifier(estimators=[
        ('tree', Pipeline([('tree', DecisionTreeClassifier(random_state=42))])),
        ('knn', Pipeline([('knn', KNeighborsClassifier())])),
    ])

model.fit(X, y)

코드-내 사용자 정의 클래스 (작동하지 않음) :

class MyOwnClassifier(ClassifierMixin):
    def __init__(self,classifier):
        self.classifier = classifier
    
    def fit(self, X, y):
        self.classifier.fit(X,y)
        return self 
    
    def predict(self, X):
        return self.classifier.predict(X)
    
    def predict_proba(self, X):
        return self.classifier.predict_proba(X)

model = StackingClassifier(estimators=[
        ('tree', Pipeline([('tree', DecisionTreeClassifier(random_state=42))])),
        ('knn', Pipeline([('knn', MyOwnClassifier(KNeighborsClassifier()))])),
    ])

model.fit(X, y)

오류를 반환

AttributeError: 'MyOwnClassifier' object has no attribute 'classes_'

이것에 대해 정말 당황스러운 것은 답변에서 ID 변환이 파이프 라인의 일부로 사용될 수 있다는 것입니다. 그리고 객체에 ' class_ '도 있다고 상상할 수 없습니다 .

세르게이 부시 마 노프

코드에 세 가지 문제가 있습니다.

  1. StackingClassifierclasses_오류 메시지에 명확하게 명시된 적합 분류기에서 속성 을 사용할 수있을 것으로 예상합니다 . 연결된 예제에는 있지만 귀하의 예제에는 없습니다. 처럼 실행하면 확인할 수 있습니다 dir(MyOwnClassifier(KNeighborsClassifier()).fit(X,y)).

  2. BaseEstimator 클래스 정의에서 누락되었습니다 (이 없이도 할 수 있지만 존재하면 삶이 더 쉬워집니다)

  3. Pipelines 당신의 코드는 코드를 디버깅하는 데 필요하지 않고 디버깅을 복잡하게 만드는 불필요한 혼란입니다.

이러한 문제를 해결하면 작동하는 코드가 생성됩니다.

from sklearn.ensemble import StackingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.base import ClassifierMixin, BaseEstimator

X, y = load_breast_cancer(return_X_y=True, as_frame=True)

class MyOwnClassifier(ClassifierMixin, BaseEstimator):
    
    def __init__(self,classifier):
        self.classifier = classifier
        
    def fit(self, X, y):
        self.classifier.fit(X,y)
        self.classes_ = self.classifier.classes_
        return self
    
    def predict(self, X):
        return self.classifier.predict(X)
    
    def predict_proba(self, X):
        return self.classifier.predict_proba(X)

model = StackingClassifier(estimators=[
        ('tree', DecisionTreeClassifier(random_state=42)),
        ('knn', MyOwnClassifier(KNeighborsClassifier()))])

model.fit(X,y)
StackingClassifier(estimators=[('tree',
                                DecisionTreeClassifier(random_state=42)),
                               ('knn',
                                MyOwnClassifier(classifier=KNeighborsClassifier()))])

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Wordpress-맞춤 분류 / 카테고리 직계 하위 만 가져 오기

분류에서Dev

수천 개의 맞춤법 오류를 반환하지 않도록 Android Studio 코드 분석기를 설정하는 방법은 무엇입니까?

분류에서Dev

IEnumerable을 사용하여 면도기 개체를 채우면 오류가 반환됩니다.

분류에서Dev

기사 내에서 단어 분할 및 맞춤법 오류 확인

분류에서Dev

석류를 사용하여 베타 분포 맞추기

분류에서Dev

맞춤 유효성 검사기가 오류를 표시하지 않음

분류에서Dev

맞춤형 LaTeX 클래스를 사용하면 R Markdown에서 번호 매기기가 변경됩니다.

분류에서Dev

기본 플롯을 ggplot과 비교하면 오류가 반환됩니다.

분류에서Dev

Caffe 분류기를 사용하려고하면 "시퀀스 인수의 길이가 입력 순위와 같아야합니다"오류가 발생합니다.

분류에서Dev

맞춤 비교기가 충분한 비교를 수행하지 않습니다.

분류에서Dev

오류 : 기호를 찾을 수 없거나 맞춤법 오류가 없습니까?

분류에서Dev

맞춤 분류 기능이있는 알테어 스택 영역

분류에서Dev

동일한 열의 두 값에 대한 맞춤 분류기

분류에서Dev

분기를 리베이스하면 빨리 감기가 아닌 오류가 발생합니다.

분류에서Dev

strsplit (word, NULL) 오류 : 맞춤법 검사기가있는 비 문자 인수

분류에서Dev

b ''를 분할하면 Python3.7에서 오류가 반환됩니다.

분류에서Dev

사용자 제어가 SQL Server 저장 프로 시저를 실행하면 DataTable 이벤트 처리기 오류가 반환됩니다.

분류에서Dev

생성기 객체를 호출하면 'TypeError :'dict 'object is not callable'오류가 반환됩니다.

분류에서Dev

Elasticsearch for Query에서 사용자 지정 분석기를 정의하는 동안 오류가 발생했습니다.

분류에서Dev

PowerShell에서 MSBuild를 사용하면 VCBuild not loaded 오류가 반환됩니다.

분류에서Dev

계단식 분류기를 사용하여 Kinect를 사용한 개체 분류

분류에서Dev

관리 대상 기기를 추가하는 동안 오류가 발생했습니다. SEMP 구문 분석

분류에서Dev

w3chools에서 복사 / 붙여 넣기하면 PHP 오류가 발생합니다. 구문 분석 오류 : 구문 오류, 예상치 못한

분류에서Dev

가상 기능의 재정의를 호출하면 세분화 오류가 발생합니다.

분류에서Dev

GORM criteriaBuilder 내에 최대 및 오프셋 기준을 포함하면 오류가 반환됩니다.

분류에서Dev

입력 필드를 기반으로 오류 메시지 분류

분류에서Dev

WEKA를 사용한 다중 라벨 설정의 kNN 분류기

분류에서Dev

rails 4, ajax 부분보기가 "gsub"오류를 반환합니까?

분류에서Dev

매트릭스를 동적으로 크기 조정하면 분할 오류가 발생합니다.

Related 관련 기사

  1. 1

    Wordpress-맞춤 분류 / 카테고리 직계 하위 만 가져 오기

  2. 2

    수천 개의 맞춤법 오류를 반환하지 않도록 Android Studio 코드 분석기를 설정하는 방법은 무엇입니까?

  3. 3

    IEnumerable을 사용하여 면도기 개체를 채우면 오류가 반환됩니다.

  4. 4

    기사 내에서 단어 분할 및 맞춤법 오류 확인

  5. 5

    석류를 사용하여 베타 분포 맞추기

  6. 6

    맞춤 유효성 검사기가 오류를 표시하지 않음

  7. 7

    맞춤형 LaTeX 클래스를 사용하면 R Markdown에서 번호 매기기가 변경됩니다.

  8. 8

    기본 플롯을 ggplot과 비교하면 오류가 반환됩니다.

  9. 9

    Caffe 분류기를 사용하려고하면 "시퀀스 인수의 길이가 입력 순위와 같아야합니다"오류가 발생합니다.

  10. 10

    맞춤 비교기가 충분한 비교를 수행하지 않습니다.

  11. 11

    오류 : 기호를 찾을 수 없거나 맞춤법 오류가 없습니까?

  12. 12

    맞춤 분류 기능이있는 알테어 스택 영역

  13. 13

    동일한 열의 두 값에 대한 맞춤 분류기

  14. 14

    분기를 리베이스하면 빨리 감기가 아닌 오류가 발생합니다.

  15. 15

    strsplit (word, NULL) 오류 : 맞춤법 검사기가있는 비 문자 인수

  16. 16

    b ''를 분할하면 Python3.7에서 오류가 반환됩니다.

  17. 17

    사용자 제어가 SQL Server 저장 프로 시저를 실행하면 DataTable 이벤트 처리기 오류가 반환됩니다.

  18. 18

    생성기 객체를 호출하면 'TypeError :'dict 'object is not callable'오류가 반환됩니다.

  19. 19

    Elasticsearch for Query에서 사용자 지정 분석기를 정의하는 동안 오류가 발생했습니다.

  20. 20

    PowerShell에서 MSBuild를 사용하면 VCBuild not loaded 오류가 반환됩니다.

  21. 21

    계단식 분류기를 사용하여 Kinect를 사용한 개체 분류

  22. 22

    관리 대상 기기를 추가하는 동안 오류가 발생했습니다. SEMP 구문 분석

  23. 23

    w3chools에서 복사 / 붙여 넣기하면 PHP 오류가 발생합니다. 구문 분석 오류 : 구문 오류, 예상치 못한

  24. 24

    가상 기능의 재정의를 호출하면 세분화 오류가 발생합니다.

  25. 25

    GORM criteriaBuilder 내에 최대 및 오프셋 기준을 포함하면 오류가 반환됩니다.

  26. 26

    입력 필드를 기반으로 오류 메시지 분류

  27. 27

    WEKA를 사용한 다중 라벨 설정의 kNN 분류기

  28. 28

    rails 4, ajax 부분보기가 "gsub"오류를 반환합니까?

  29. 29

    매트릭스를 동적으로 크기 조정하면 분할 오류가 발생합니다.

뜨겁다태그

보관