분류 자에 대한 다음 텍스트 데이터가 있습니다.
내 데이터에서 국가, 스포츠의 두 가지 값을 예측하고 싶습니다. 예 : 1) 미국 | 농구; 2) 영국 | 축구
현재 CatBoostClassifier()
단일 값 (예 : 국가)을 예측하는 데 사용 하고 있습니다.
vectorizer = CountVectorizer(ngram_range=[1, 2])
x = vectorizer.fit_transform(df['words']).toarray()
y = df['country'].astype(int)
grid = GridSearchCV(CatBoostClassifier(n_estimators=200, silent=False), cv=3,
param_grid={'learning_rate': [0.03], 'max_depth': [3]})
grid.fit(x, y)
model = grid.best_estimator_
분류기를 사용하여 2 개 이상의 값을 예측하고 결합 된 모델을 얻을 수 있습니까?
sklearn.multioutput
또한 지원하는 모듈을 사용할 수 있습니다 CatBoostClassifier
. 이 모듈에서 제공하는 모든 분류기는 단일 출력에 대한 기본 추정기를 가져와 다중 출력 추정기로 확장합니다. 예를 들어 다음과 같이 사용할 수 있습니다 MultiOutputClassifier
.
from catboost import CatBoostClassifier
from sklearn.multioutput import MultiOutputClassifier
clf = MultiOutputClassifier(CatBoostClassifier(n_estimators=200, silent=False))
이것은 scikit-learn
추정기 이므로 이전과 같이 그리드 검색에서도 사용할 수 있습니다.
grid = GridSearchCV(clf, param_grid={'estimator__learning_rate': [0.03], 'estimator__max_depth': [3]}, cv=3)
grid.fit(x, y)
모델 학습에 사용하는 라벨은 다음 형식이어야합니다.
import numpy as np
y = np.asarray([['USA', 'basketball'], ['UK', 'football']])
기능을 변경할 x
필요가 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다