我正在阅读本教程,该教程将主成分分析和逻辑回归结合在一个管道中,然后应用交叉验证和主成分分析的一组定义参数和逻辑回归。以下是我从这个例子中理解的内容,然后我将提出我的问题。
我理解:
当GridSearchCV被执行时,它首先有一个默认的3倍。因此,它从计算20个分量的PCA开始,然后对数据进行转换,并将其放入Logistic回归中进行训练。现在,对于逻辑回归C参数的每个值,它将应用3倍的交叉验证,并查看哪些值,因此最终将进行3*3=9次逻辑回归训练,因为我们有3个C参数值,每个参数值有3倍的相互验证。
之后,它将对PCA的第二个参数做同样的事情,即40,所以其他9个训练。然后对PCA 64的最后一个参数进行了9次训练。因此,我们总共将进行9*3=27次逻辑回归培训。
我的问题是:我对这个程序的理解正确吗?
>>> estimator = GridSearchCV(pipe, dict(pca__n_components=n_components,
... logistic__C=Cs),
... verbose=1)
>>> estimator.fit(X_digits, y_digits)
Fitting 3 folds for each of 9 candidates, totalling 27 fits
[...snip...]
更一般地说,fit
调用的数量是每个参数的值的数量乘以k,如果在整个训练集上重新调整最佳参数(默认情况下发生),则为+1。