5

特定の分類子に GridSearchCV (n_jobs > 1) を使用したいのですが、別のソースから 10 分割交差検証のフォールドに関する情報を入手しています。GridSearchCV によって作成されたフォールドを使用する代わりに、既にフォールドに分割されているデータを入力する方法はありますか。

ありがとう!

4

1 に答える 1

8

たとえば、 LeaveOneGroupOutまたはLeaveOneGroupOutにインスピレーションを得て、関心のある構造を実装することにより、カスタム CV イテレータを作成できます 。

または、整数の配列としてエンコードされた独自の事前計算された折り畳み (0との間のサンプル インデックスを表すn_samples - 1) を準備し、その CV イテレータをとユーティリティのcv引数として渡すことができます。cross_val_scoreGridSearchCV

>>> X, y = make_classification(n_samples=10)
>>> import numpy as np
>>> from sklearn.datasets import make_classification
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.model_selection import cross_val_score
>>> cv_splits = [
...     (np.array([0, 1, 2, 3]), np.array([4, 5, 6])),
...     (np.array([1, 2, 3, 4]), np.array([5, 6, 7])),
...     (np.array([5, 6, 8, 9]), np.array([1, 2, 3, 4])),
... ]
>>> cross_val_score(LogisticRegression(), X, y, cv=cv_splits)
array([1.        , 0.33333333, 0.75      ])
于 2013-08-16T16:27:05.213 に答える