问题标签 [hyperparameters]
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.
optimization - 通过机器学习进行功能参数校准
我有一个函数 F, [bool] = F(DATASET, tresh1, tresh2),它接受输入一个 DATASET 和一些参数,例如 2 阈值 -tresh1 e tresh2-,并返回一个布尔值:如果 DATASET 是“好”,则返回一个布尔值:1 ",否则为 0。答案当然取决于值 tresh1 e tresh2。
假设我有 100 个可用的数据集,并且我知道哪些是好的,哪些不是。我想“训练”我的函数 F,即教它几个值 tresh1_ 和 tresh2_ 使得 F(DATASET, tresh1_, tresh2_) 为所有(或大部分)数据集“好”和“假”返回“真”否则。
我希望 F(DATASET_, tresh1_, tresh2_),其中 DATASET_ 是一个新的(与之前的 100 不同),如果 DATASET_ 真的“好”,则返回 true。
我可以将此问题视为聚类问题:对于训练集中的每个 DATASET,我选择随机 tresh1 和 tresh2 并标记哪些值确保 F 返回正确的值,哪些不返回。因此,我选择了一个 tresh1 和 tresh2 值“好”的区域。这是一个好方法吗?有更好的吗?
一般来说,在我看来这是一个“参数校准问题”。是否存在一些经典的技术来解决它?
classification - l1/l2 正则化导致 vowpal wabbit 中所有特征权重为零是否合理?
我得到了一个奇怪的结果vw
,它使用在线学习方案进行逻辑回归。当我添加--l1
或--l2
正则化时,我得到的所有预测都是 0.5(这意味着所有特征都是 0)
这是我的命令:
...这是学习过程信息:
顺便说一句,特征的数量接近 80,000,每个样本只包含其中的一小部分(这就是为什么current features
只有 100 个左右)。
这是我的猜测,在目标函数/损失函数中,第二项regularization loss
可能会主导整个方程,这会导致这种现象吗?
我尝试了另一个数据集(前几天的)
machine-learning - 在小数据集上使用 GridSearch 并在大数据集上应用结果是个好主意吗?
我有一个带有 TfidVectorizer 和 OneVsRestClassifier(SGDClassifier) 的管道。这是我要执行的 gridSearch 的参数:
问题:我想知道哪个是最佳的参数组合,但我无法使用我的计算机在 100k 个实例上运行这样的 gridSearch。
问题:在 100k 个实例数据集和假设为 10-20k 个样本的子集上,这种 gridSearch 的结果有多相似(可能参数集更小)?
您可能已经知道我正在处理文本的多标签分类问题。
谢谢 :)
machine-learning - 在 Vowpal Wabbit 中使用 vw-hypersearch 进行多维超参数搜索
vw-hypersearch是 Vowpal Wabbit 包装器,旨在优化 vw 模型中的超参数:正则化率、学习率和衰减、小批量、引导大小等。在 vw-hypersearch 的教程中有以下示例:
这里%
的意思是要优化的参数,1e-10 5e-4
是搜索区间的下限和上限。该库使用黄金分割搜索方法来最小化迭代次数。
但是如果我想搜索多个超参数怎么办?从像这个github 问题讨论这样的来源,我得到一个提示,在 vw 中可能没有实现多维搜索方法。因此,唯一的出路是编写自己的特定任务优化器。我对吗?
machine-learning - 如何在 Spearmint 中表达超参数分布?
我正在尝试使用贝叶斯优化库Spearmint来调整机器学习分类器的超参数。我的问题是如何表达不遵循均匀分布的参数搜索空间?
从项目的github页面,这里有一个如何设置两个均匀分布的参数搜索空间的例子:
我们如何在 Spearmint 中定义如下所示的搜索空间?
是否有地方可以查找Spearmint 目前支持的所有随机表达式(即 , 等uniform
)normal
?log
machine-learning - 在 Vowpal Wabbit 中获得保持损失
我正在尝试在 Vowpal Wabbit 中实现网格搜索或更复杂的超参数搜索。为此目的,是否有一种相对简单的方法可以在验证集(vw 中的保留)上获得损失函数值?大众必须计算它,例如,对于每个通过次数,因为提前停止发生取决于它的值。
到目前为止,我通过使用验证数据集创建一个单独的文件来绕过这一点,在这个数据集上保存不同模型的预测,并比较它们在 python 中的性能,从而导致不必要的数据浪费。但也许有一种方法可以明确使用大众坚持分数?
r - Tune gbm (R caret) - 网格搜索以获得最佳超参数
我用插入符号制作了一个模型,例如手动调整学习率和树:
但是灵敏度结果度量很差,不如特异性漂亮。
我想我需要创建一个网格搜索(像这样)以自动优化类别不平衡的概率阈值。
我该怎么做 ?有没有一个链接/一些可以指导我/有知识的人,比如随机森林的链接案例?
machine-learning - 尽管存在 -f 标志,Vowpal Wabbit 仍不保存模型
我在 Vowpal Wabbit 中遇到了以下无法解释的行为。-f
有时,在指定标志时它根本不保存模型,而不会引发任何异常。
该命令由脚本自动组成,具有以下形式(文件名已更改):
然后它会正常训练并显示标准诊断信息。但是模型没有保存!
最奇怪的是,在其他参数配置下一切正常!
背景:我正在研究超参数优化,我的脚本连续编写了vw
训练和验证命令。它总是成功到达第 5 次迭代,并且总是在第 6 次失败(在完全相同的命令上)。任何帮助将不胜感激。
python - 确定 scipy.optimize 的合理初始猜测的函数?
我正在使用scipy.optimize.minimize来找到对所使用的初始猜测相当敏感的 4D 函数的最小值。如果我稍微改变它,解决方案将发生很大变化。
SO中已经有许多与此类似的问题(例如:1、2、3),但没有真正的答案。
在我的一个老问题中,zunzun.com 网站(显然不再在线)的一位开发人员解释了他们是如何做到这一点的:
Zunzun.com 使用差分进化遗传算法 (DE) 来查找初始参数估计,然后将其传递给 scipy 中的 Levenberg-Marquardt 求解器。DE 本身实际上并没有用作全局优化器,而是用作“初始参数猜测器”。
我发现最接近这个算法的是这个答案,其中一个for
块用于多次调用最小化函数,并带有随机初始猜测。这会生成多个最小化的解决方案,最后选择最好的(最小值)一个。
有没有类似于 zunzun dev 描述的已经在 Python 中实现的东西?