问题标签 [grid-search]
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 - 无法设置从 Numpy 数组读取的适当 dtype
我想保存数据框的一些属性并给定底层 numpy 数组的一部分,我想重建数据框,就好像我已经获取了数据框的一部分一样。如果对象列的值可以强制转换为浮点数,我想不出任何可行的方法。在真实的数据集中,我有数百万个观察值和数百列。
实际用例涉及 Pandas 与 scikit-learn 交互的自定义代码。我知道 scikit-learn 的最新版本与内置的 pandas 兼容,但我无法使用此版本,因为 RandomizedSearchCV 对象无法处理大参数网格(这将在未来版本中修复)。
编辑:谢谢@unutbu 准确回答我的问题的答案。在 0.16.0 之前的 scikit-learn 版本中,gridsearch 对象从 pandas 数据帧中剥离了底层的 numpy 数组。这意味着单个对象列使整个数组成为对象,并且 pandas 方法不能包装在自定义转换器中。
使用@unutbu 的答案的解决方案是使管道的第一步成为自定义的“DataFrameTransformer”对象。
在管道中,只需在构造函数中包含您的原始 df :
scikit-learn - 在 scikit-learn 中结合递归特征消除和网格搜索
我正在尝试在 scikit-learn 中结合递归特征消除和网格搜索。正如您从下面的代码(有效)中看到的那样,我能够从网格搜索中获得最佳估计器,然后将该估计器传递给 RFECV。但是,我宁愿先做 RFECV,然后再做网格搜索。问题是,当我将选择器从 RFECV 传递给网格搜索时,它不接受它:
ValueError:估计器 RFECV 的参数引导程序无效
是否可以从 RFECV 获取选择器并将其直接传递给 RandomizedSearchCV,或者这在程序上不是正确的做法?
python - 将 GridSearchCV 与 AdaBoost 和 DecisionTreeClassifier 一起使用
我正在尝试使用 DecisionTreeClassifier(“DTC”)作为 base_estimator 来调整 AdaBoost 分类器(“ABT”)。我想同时调整ABT和 DTC 参数,但不确定如何实现这一点 - 管道不应该工作,因为我没有将 DTC 的输出“管道”到 ABT。这个想法是在 GridSearchCV 估计器中迭代 ABT 和 DTC 的超参数。
如何正确指定调整参数?
我尝试了以下操作,这在下面产生了错误。
python - scikit - CalibratedCV 上的 GridSearchCV,以 RandomForrestClassifier 作为基本估计器
我想知道是否有办法在 CalibratedCV 中嵌入的 RandomForrestClassifier 上执行 GridSearchCV,我想优化日志丢失,所以我需要在 CalibratedCV 上进行评估,但我想更改 RandomForrest 的参数。
提前致谢
python - 在 sklearn 中制作网格搜索功能以忽略空模型
使用 python 和 scikit-learn,我想做一个网格搜索。但是我的一些模型最终是空的。如何使网格搜索功能忽略这些模型?
我想我可以有一个评分函数,如果模型为空,则返回 0,但我不确定如何。
我的数据的方式是该learner
对象将选择一个C
对应于空模型的对象。知道如何确保模型不为空吗?
编辑:“空模型”是指选择了 0 个要使用的功能的模型。特别是对于l1
正则化模型,这很容易发生。所以在这种情况下,如果C
SVM 中的 足够小,优化问题会找到 0 向量作为系数的最优解。因此predictor.coef_
将是0
s 的向量。
jquery - W2UI多关键词搜索
W2UI 网格
我想像在 datatables .net 中那样进行网格搜索
它使用'AND'
以空格分隔的搜索文本的条件。
我的要求是不要使用搜索框旁边已经存在的高级搜索,因为它是基于特定列的。
现在在w2ui
网格搜索框中我正在搜索“John”然后它应该显示1,2,3 records
然后我正在搜索“john fran”然后它应该只显示3rd record.
如何做到这一点?
我尝试按空格分割搜索框字符串并在 w2ui.js 中进行了更改,但它总是搜索搜索字符串中的最后一个单词,
请帮忙,谢谢:) :)
python-2.7 - Scikit:如何检查对象是 RandomizedSearchCV 还是 RandomForestClassifier?
我有一些使用Grid Search创建的分类器,还有一些直接作为Random Forests创建的分类器。
随机森林返回类型 sklearn.ensemble.forest.RandomForestClassifier
,以及使用 gridSearch 返回类型创建的随机森林sklearn.grid_search.RandomizedSearchCV
。
我正在尝试以编程方式检查估计器的类型(以决定是否需要best_estimator_
在特征重要性上使用),但似乎找不到这样做的好方法。
if type(estimator) == 'sklearn.grid_search.RandomizedSearchCV'
是我的第一个猜测,但显然是错误的。
machine-learning - GridSearchCV best_score_ 属性是什么意思?(该值与交叉验证数组的平均值不同)
我对结果感到困惑,可能我没有正确理解交叉验证和 GridSearch 的概念。我遵循了这篇文章背后的逻辑: https ://randomforests.wordpress.com/2014/02/02/basics-of-k-fold-cross-validation-and-gridsearchcv-in-scikit-learn/
获得的结果:
附加说明:
我使用解释变量的另一种组合(仅使用其中一些)运行它,我得到了逆问题。现在 .best_score_ 高于交叉验证数组中的所有值。
machine-learning - GridSearchCV 打分参数:使用打分='f1' 或打分=无(默认使用准确度)给出相同的结果
我正在使用从“Mastering Machine Learning with scikit learn”一书中提取的示例。
它使用决策树来预测网页上的每个图像是广告还是文章内容。然后可以使用级联样式表隐藏被分类为广告的图像。数据可从 Internet 广告数据集公开获得:http: //archive.ics.uci.edu/ml/datasets/Internet+Advertisements,其中包含 3,279 张图像的数据。
以下是完成分类任务的完整代码:
如示例中所示,在 GridSearchCV 中使用score='f1'的结果是:
使用 score =None(默认准确度度量)的结果与使用 F1 分数相同:
如果我没有错,通过不同的评分函数优化参数搜索应该会产生不同的结果。下面的案例表明,当使用score='precision'时会得到不同的结果。
使用score='precision'的结果与其他两种情况不同。“召回”等也是如此:
为什么'F1'和None,默认精度,给出相同的结果??
已编辑
我同意 Fabian 和 Sebastian 的两个答案。问题应该是小的param_grid。但我只是想澄清一下,当我使用完全不同的(不是此处示例中的那个)高度不平衡的数据集 100:1(这应该会影响准确性)并使用逻辑回归时,问题就会激增。在这种情况下,“F1”和准确性也给出了相同的结果。
在这种情况下,我使用的 param_grid 如下:
我猜是参数选择也太小了。
python - ValueError:使用 GridSearch 参数时估计器 CountVectorizer 的参数模型无效
我有一个 sklearn 管道,它使用两种类型的特征进行文本分类:由 CountVectorizer() 和 TfidfTransformer() (TfidfVectorizer()) 生成的标准 tfidf 特征和一些语言特征。我尝试将不同的 ngram 范围传递给 CountVectorizer(),然后使用 GridSearh 找到最佳 n。
这是我的代码:
(我省略了一些似乎与问题无关的行。)
但它会抛出一个错误:
TfidfVectorizer() 也是如此。
如果我将 ngram_range 直接传递给管道中的矢量化器,一切正常:
('vect', CountVectorizer(ngram_range=(1,2)))
谢谢!