2017-12-31 86 views
2

公式文書は情報を提供していないようです。Sklearn VotingClassifierの使い方はどのような方法ですか?

私はVotingClassifierが予測する前にfitメソッドを呼び出さなければならないので、訓練を受けたモデルをVotingClassifierに提供できないのはなぜかと思います。

それだけでやるん:

for clf in self.clfs: 
    clf.fit(X, y) 

またはそれはいくつかのより興味深いの折り畳み方法を使用していますか?ここで

+1

(提供されたデータが正常であることを確認するために、数値が指定されていて、ターゲットは推定された推定値によって理解されます)。 ['predict()'](https://github.com/scikit-learn/scikit-learn/blob/a24c8b46/sklearn/ensemble/voting_classifier.py#L201)のコードを見て、あなたの使い方に合わせることができます場合。満足のいく結果が得られない場合は、質問を編集して試した内容を追加してください。 –

答えて

1

VotingClassifier.fitが何をするかです:

def fit(self, X, y, sample_weight=None): 
    ... # Validates the arguments, estimators, etc. 

    self.le_ = LabelEncoder() 
    self.le_.fit(y) 
    self.classes_ = self.le_.classes_ 
    self.estimators_ = [] 

    transformed_y = self.le_.transform(y) 

    self.estimators_ = Parallel(n_jobs=self.n_jobs)(
      delayed(_parallel_fit_estimator)(clone(clf), X, transformed_y, 
       sample_weight) 
       for _, clf in self.estimators) 

    return self 

... _parallel_fit_estimatorは単なるラッパーestimator.fitオーバーコールです:あなたが見ることができるように

def _parallel_fit_estimator(estimator, X, y, sample_weight): 
    if sample_weight is not None: 
     estimator.fit(X, y, sample_weight) 
    else: 
     estimator.fit(X, y) 
    return estimator 

、この方法は確かに(分類に適合します並行して)、ラベルエンコーダself.le_self.estimators_属性を作成します。 predict()またはtransform()メソッドは、これらの属性の上に構築されるため、最初にfit()を呼び出す必要があります。

関連する問題