Machine learning 如何在Spearmint中表达超参数分布?

Machine learning 如何在Spearmint中表达超参数分布?,machine-learning,hyperparameters,Machine Learning,Hyperparameters,我正试图使用贝叶斯优化库来调整机器学习分类器的超参数。我的问题是,如何表示不服从均匀分布的参数搜索空间 以下是如何设置两个均匀分布参数搜索空间的示例: "variables": { "X": { "type": "FLOAT", "size": 1, "min": -5, "max": 10 }, "Y": { "type": "FLOAT", "size": 1,

我正试图使用贝叶斯优化库来调整机器学习分类器的超参数。我的问题是,如何表示不服从均匀分布的参数搜索空间

以下是如何设置两个均匀分布参数搜索空间的示例:

"variables": {
    "X": {
        "type": "FLOAT",
        "size": 1,
        "min":  -5,
        "max":  10
    },
    "Y": {
        "type": "FLOAT",
        "size": 1,
        "min":  0,
        "max":  15
    }
}
我们如何定义一个搜索空间,就像下面在Spearmint中的搜索空间一样

SVC_PARAMS = [
    {
        "bounds": {
            "max": 10.0,
            "min": 0.01,
        },
        "name": "C",
        "type": "double",
        "transformation": "log",
    },
    {
        "bounds": {
            "max": 1.0,
            "min": 0.0001,
        },
        "name": "gamma",
        "type": "double",
        "transformation": "log",
    },
    {
        "type": "categorical",
        "name": "kernel",
        "categorical_values": [
            {"name": "rbf"},
            {"name": "poly"},
            {"name": "sigmoid"},
        ],
    },
]

有没有一个地方可以查找目前由Spearmint支持的所有随机表达式,如一致、正常、对数等?

Spearmint会从数据中自动学习这些类型的转换。如果你看看这里:
SVC_PARAMS = [
    {
        "bounds": {
            "max": 10.0,
            "min": 0.01,
        },
        "name": "C",
        "type": "double",
        "transformation": "log",
    },
    {
        "bounds": {
            "max": 1.0,
            "min": 0.0001,
        },
        "name": "gamma",
        "type": "double",
        "transformation": "log",
    },
    {
        "type": "categorical",
        "name": "kernel",
        "categorical_values": [
            {"name": "rbf"},
            {"name": "poly"},
            {"name": "sigmoid"},
        ],
    },
]
您可以看到本文中详细介绍的beta扭曲的实现:。Spearmint没有办法预先指定这些参数,但是您可以让Spearmint通过给出参数范围的日志并在您的端进行幂运算来对参数日志等进行操作