scikit-learnには他の複数の推定値を使用する推定値があり、自動的に最良の性能を持つ推定値が選択されますか?scikit-learnでいくつかの推定値の中から最良のものを自動的に選択
私は推定器インタフェースに準拠したクラスで、pipelineに組み合わせることができるように、このようなものがなければならないと思いますか?
scikit-learnには他の複数の推定値を使用する推定値があり、自動的に最良の性能を持つ推定値が選択されますか?scikit-learnでいくつかの推定値の中から最良のものを自動的に選択
私は推定器インタフェースに準拠したクラスで、pipelineに組み合わせることができるように、このようなものがなければならないと思いますか?
scikit-learn自体は現在あなたが探しているものがありません。しかし、TPOTとautoml-learnのようなライブラリがsklearnのようなインタフェースを備えており、最良の推定量を自動的に選択したり、パイプライン全体を構築することさえできます。
あなたは、GridSearchCVを使用することができる最高の推定量を選択するだけでなく、チューニングするためにそのハイパーは、例えば、私は最高のテキスト分類器を見つけるためにこれを使用していご清聴ありがとうございます。 Sklearnにはそれがないのは驚くべきことです。これは、MLワークフローで非常に頻繁に実行される簡単なステップだと思います。 – clstaudt
:公式ドキュメントから
pipeline = Pipeline([
('vect', CountVectorizer(ngram_range=(2,2))),
('tfidf', TfidfTransformer(use_idf=True)),
('clf', SVC())
])
parameters = {'clf': [
SVC(),
MultinomialNB(),
BernoulliNB(),
MLPClassifier(max_iter=1000),
KNeighborsClassifier(),
SGDClassifier(max_iter=1000),
RandomForestClassifier()
]}
gs_clf = GridSearchCV(pipeline, parameters, n_jobs=-1)
gs_clf = gs_clf.fit(X, y)
print("Best score", gs_clf.best_score_)
for param_name in sorted(parameters.keys()):
print("%s: %r" % (param_name, gs_clf.best_params_[param_name]))
あなたも「ベスト」はあなたに何を意味するかを定義するために、独自のスコアリング関数を定義することができます。 http://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter
私はあなたがアンサンブル法http://scikit-learn.org/stable/modulesを意味だと思います/ en semble.html?しかし、私はあなたの質問で混乱しています。 Cross_validationは集約の例で導出されるため、cross_validationエラーに基づいて最適なものを選択することは、最終的に1つの最良の分類子を選択する場合には、前処理とテストで行うことになります。それはあなたの後ろではない場合は、質問を明確にすることはできますか? – gbtimmon
通常は、相互検証を使用して異なる見積もりのパフォーマンスをテストします。それから私は手動で最終的な予測のために最高のパフォーマンスを選択します。今私はsklearnパイプラインを使用してワークフロー全体を実装したいので、この最終ステップはエスティメータインターフェイスを実装する1つのクラスで実行する必要があります。私は、アンサンブル手法が正しい答えであるとは考えていません。予測は組み合わされるべきではありません。 – clstaudt
IMO、scikitはあなたが望むものを含んでいません。しかし、あなたはここからヒントを取ることができます:http://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py –