gpt4 book ai didi

python - 在 sklearn 机器学习工具链中寻找最佳算法组合

转载 作者:行者123 更新时间:2023-11-30 08:54:35 24 4
gpt4 key购买 nike

在 sklearn 中,可以创建一个管道来优化机器学习设置的完整工具链,如以下示例所示:

from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.decomposition import PCA
estimators = [('reduce_dim', PCA()), ('svm', SVC())]
clf = Pipeline(estimators)

现在,管道根据定义代表串行进程。但是,如果我想在同一管道级别上比较不同的算法该怎么办?假设我想尝试除 PCA 之外的另一种特征转换算法,以及除 SVM 之外的另一种机器学习算法(例如树),并获得 4 种可能组合中的最佳组合?这可以用某种并行管道来表示吗?或者 sklearn 中是否有元算法?

最佳答案

管道不是并行进程。它是相当连续的(管道线) - 请参阅 here文档中提到:

Sequentially apply a list of transforms and a final estimator. [...] The purpose of the pipeline is to assemble several steps that can be cross-validated together while setting different parameters.

因此,您应该仅通过更改一个参数来创建两个管道。然后,您就可以比较结果并保留更好的结果。如果您想比较更多估算器,您可以自动化该过程

这是一个简单的例子:

from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_regression
from sklearn.decomposition import PCA

clf1 = SVC(Kernel = 'rbf')
clf2 = RandomForestClassifier()

feat_selec1 = SelectKBest(f_regression)
feat_selec2 = PCA()

for selec in [('SelectKBest', feat_selec1), ('PCA', feat_select2)]:
for clf in [('SVC', clf1), ('RandomForest', clf2):
pipe = Pipeline([selec, clf])
//Do your training / testing cross_validation

关于python - 在 sklearn 机器学习工具链中寻找最佳算法组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38635075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com