问题标签 [gridsearchcv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - Python:为什么我的模块没有通过 exec() 语句实例化对象?
我从 sklearn.model_selection 库创建了我自己版本的 GridSearchCV 模块。我的版本包括逐个迭代每个参数,而不是寻找所有可能的组合。例如对于 SVR 模型,如果我们定义如下三个参数:
该算法将首先找到一个最佳伽马系数(十个)。然后它转移到用给定的 gamma 值分配 C 参数。经过十次迭代后,它移动到 epsilon 并使用给定的一组 [gamma, C] 参数分配最佳 epsilon 值。这给了我们总共 30 个组合来检查而不是 1000 (10*10*10)。
我想将我的 opt_grid_search 对象导入到我的项目中,如下所示:
from own_udf_functions import show_description, opt_grid_search
对象的代码以创建将要优化的对象的动态语句开头:
exec_string = 'opt_object = ' + object_name + '(' + def_params + ')'
例如返回:
opt_object = SVR(kernel = 'rbf')
但是,当我尝试在另一个脚本中使用代码时,如下所示:
出现以下错误:
似乎 opt_grid_search 函数没有执行以下代码行:
opt_object = SVR(kernel = 'rbf')
并且实际上并未创建名为 opt_object 的对象。
我认为这与课程有关,但我想请您帮助我更好地了解此错误中实际发生的情况。我认为这是一项至关重要的知识,可以帮助我编写更多的“pythonic”代码,而不是在每个代码中定义所有函数。
其次,请让我知道这种优化是否也有意义,或者 GridSearch 是否需要遍历所有可能的组合。
我试图让这个描述尽可能简短,但是如果你想查看/需要它作为参考,我的代码可以在下面访问:
python-3.x - 为什么在 GridSearchCV 中使用 StandardScaler 时会得到不同的结果?
我想通过 GridSearchCV 优化 SVM 的超参数。但是最佳估计器的得分与运行具有最佳参数的 svm 时的得分有很大不同。
结果如下:
最好成绩:0.784
最佳估计分数:0.6991
最佳参数得分:0.7968
我不明白为什么最佳估计器和 svm 的分数不同?以下哪个结果是正确的测试精度?为什么 0.6991 的 Best estimator 的得分这么差?我做错了什么吗?
python - 如果我使用 GridsearchCV,如何在 Xgboost 中使用 model.evals_result()?
我正在使用 xgboost 回归器,如果我使用的是 GridsearchCV,我有一个关于如何使用 model.evals_result() 的问题
我知道如果我不使用 Gridsearch,我可以使用下面的代码得到我想要的
但是,如果我在我的代码中使用 GridsearchCV(见下文),我将无法获得 evals_result()。
任何线索?
现在当我运行
results = gbm.evals_result()
我得到这个错误
scikit-learn - 使用 Gridsearch SKLEARN 在管道中进行 Adaboost
我想使用带有 LinearSVC 的 AdaBoostClassifier 作为基本估计器。我想对 LinearSVC 中的一些参数进行网格搜索。我还必须扩展我的功能。
出现以下错误:
没有 AdaBoostClassifier 管道正在工作,所以我认为有问题。
scikit-learn - GridSearchCV 估计器 LogisticRegression 的参数 gamma 无效
我需要对下面列出的 Logistic 回归分类器的参数执行网格搜索,使用召回进行评分和交叉验证 3 次。
数据位于 csv 文件 (11,1 MB) 中,此下载链接为:https ://drive.google.com/file/d/1cQFp7HteaaL37CefsbMNuHqPzkINCVzs/view?usp=sharing
我有grid_values = {'gamma':[0.01, 0.1, 1, 10, 100]}
我需要在逻辑回归中应用惩罚 L1 e L2
我无法验证分数是否会运行,因为我有以下错误:估计器 LogisticRegression 的参数 gamma 无效。使用 来检查可用参数列表estimator.get_params().keys()
。
这是我的代码:
我从 .cv_results_ 中期望,我应该在这里可用的每个参数组合的平均测试分数:mean_test_precision_score 但不确定
输出为:ValueError:估计器 LogisticRegression 的参数 gamma 无效。使用 来检查可用参数列表estimator.get_params().keys()
。
machine-learning - 如何在 Scikit 中自定义 GridSearchCV 的指标 学习调整特定类?
我在 ML 中有一个用例,其中我有 2 个类,0 和 1 用于给定文本。
Class-0:
可以承受一些错误分类Class-1:
非常重要,不能承受任何错误分类
两个类的样本都存在巨大的不平衡,0 类大约 30000 个,1 类只有 1000 个
在进行训练测试拆分时,我根据标签对拆分进行分层,这样,每个标签类保持 70% 训练和 30% 测试的比例。
我想以这样的方式调整参数,Precision
或者Recall
为 class-1 改进。我尝试使用“f1_macro”、“precision”、“recall”作为单独的指标,并将所有指标组合起来使用 GridSearchCV 进行调整,但由于大多数样本为 Class-0,因此它的帮助较小。
我正在探索减少 0 类数据的更安全的方法,尽管我们可以减少的程度很小,无论如何,即使没有调整或使用任何参数,0 类的 f1 分数总是高于 98%。
所以我关心的只是调优class-1
。
您能否建议,也许是一个定制的可调用指标,使其仅关注 Class-1 的精度、召回率或 F1 分数?
我正在使用 scikit-learn 最新的稳定版本。
类似的问题在这里,作者正在尝试使用它被建议尝试自定义指标来调整 Class-1 的 F1 分数Neural Networks (MLP)
,Keras
只是没有提到如何。
可以在这里回答 Scikit-Learn 的人,也可以回答下面的 Keras 链接。
通过 RandomizedSearchCV 在 Keras (MLP) 中调整超参数
python - 如何使用带有 SVC 估计器的 OneVsRestClassifier 的 GridSearchCV?
我正在尝试将 OneVsRestClassifier 与 SVC 一起用于图像的多分类问题 - 我从 CellProfiler 获得了图像的数字特征。我想使用 GridSearchCV 来查找要使用的超参数,但我被卡住了。
有人对此有解决方案/建议吗?
我已经阅读了谷歌,但似乎我无法解决我的问题。
gbm - 在 python 中使用 gridsearchcv 进行梯度提升分类器的参数调整
我正在尝试在GradientBoostingClassifier()
gridsearchcv 的帮助下运行。对于每个参数组合,我还需要表格格式的“Precison”、“recall”和准确性。
这是代码:
我得到错误:
python - GridSearchCV 的结果作为表格
我在带有 RBF 内核的 SVM 上进行了网格搜索 + 交叉验证,以使用 GridShearchCV 类找到参数 C 和 gamma 的最佳值。现在我想以表格格式获得结果,例如
其中单元格包含这两个参数值的准确度得分。
或者至少,如果第一个解决方案是不可能的,那么更简单的事情就像
我对 Python 不是很熟练,所以我不知道从哪里开始。你能给我一些方法来做这种表示吗?最好的解决方案是将表格作为图表,但在控制台中以这些格式进行简单打印就可以了。先感谢您。
python - 使用 GridsearchCV 时访问 validation_data Keras
我想建立一个使用 GridsearchCV 进行参数调整的管道。我的模型是一个(二进制)分类器,我使用 Keras Sequential() 构建了它。
由于我正在处理一个倾斜数据集(大约 6/7 个标签为 0,剩下的 1/7 部分数据集用 1 标记)我添加了一个回调,用于计算每个时期结束时的 f1、召回率和精度指标,我想用它作为指标来验证我的模型。
为此,我在 Keras 中使用了一个回调,它需要在我的模型的 fit() 实例中指定我的验证数据集。反过来,这使得访问验证集和使用 GridsearchCV 变得非常困难。
我设法通过构建一种 DIY cv 程序来克服这个问题,但我想知道这是否可以结合 GridsearchCV 更有效地实现。这是我的代码:
设置不同的分类阈值
INPUT:x,NN 学习产生的预测向量 thr,我们用来将预测分类为 0 或 1 类的阈值。OUTPUT:包含 0 和 1 的向量,预测消息的标签
然后我为我的指标创建回调:
然后我使用以下方法创建模型:
现在我希望优化的部分代码:
有没有办法使用 GridsearchCV 封闭这些循环,并可能包含更多交叉验证部分的参数?
提前感谢您的阅读和帮助。