gpt4 book ai didi

python - 如何在 scikit learn LinearSVC 中为 RandomizedSearchCV 仅选择有效参数

转载 作者:太空宇宙 更新时间:2023-11-03 20:11:34 25 4
gpt4 key购买 nike

由于 sklearn 中 LinearSVC 的超参数的不同无效组合,我的程序一直失败。文档没有详细说明哪些超参数可以一起工作,哪些不能一起工作。我正在随机搜索超参数来优化它们,但该函数不断失败,并出现有关不兼容组合的错误。

我该如何解决这个问题?

    losses = ["hinge", "squared_hinge"]
duals = [False, True]
learning_rates = [1e-15, 1e-8, 1e-4, 1e-2, 1e-1, 1]
penalties = ["l1", "l2"]
max_iters = [1000, 5000, 10000, 20000, 50000, 150000]


random_grid = {
"C": learning_rates,
"penalty": penalties,
"max_iter": max_iters,
"loss": losses,
"dual": duals
}

svc = LinearSVC()

n_iter = 50
svc_random = RandomizedSearchCV(estimator=svc, param_distributions=random_grid, n_iter=n_iter,
cv=3, verbose=0, n_jobs=-1)
svc_random.fit(X, Y)
best_params = svc_random.best_params_

错误示例

ValueError: Unsupported set of arguments: The combination of penalty='l2' and loss='hinge' are not supported when dual=False, Parameters: penalty='l2', loss='hinge', dual=False

ValueError: Unsupported set of arguments: The combination of penalty='l1' and loss='hinge' is not supported, Parameters: penalty='l1', loss='hinge', dual=True

如果我自己实现这个,我可以捕获异常并继续。但由于我在这里调用 RandomizedSearchCV 并且它在其中失败,所以我无能为力......我自己没有实现它的原因是 RandomizedSearchCV 很好地并行化。

我有什么选择?

最佳答案

我想我找到了解决方案,在 RandomizedSearchCV 的参数中设置 error_score=np.NINF 似乎可以解决问题!

关于python - 如何在 scikit learn LinearSVC 中为 RandomizedSearchCV 仅选择有效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58682849/

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