python - Sklearn MLP 分类器超参数优化 (RandomizedSearchCV)

标签 python machine-learning scikit-learn hyperparameters

我设置了以下参数:

parameter_space = {
    'hidden_layer_sizes': [(sp_randint(100,600),sp_randint(100,600),), (sp_randint(100,600),)],
    'activation': ['tanh', 'relu', 'logistic'],
    'solver': ['sgd', 'adam', 'lbfgs'],
    'alpha': stats.uniform(0.0001, 0.9),
    'learning_rate': ['constant','adaptive']}

除hidden_​​layer_sizes 之外的所有参数均按预期工作。但是,拟合此 RandomizedSearchCV 模型并显示其详细文本表明它将hidden_​​layer_sizes 视为:

hidden_layer_sizes=(<scipy.stats._distn_infrastructure.rv_frozen object 并继续抛出:TypeError: '<=' not supported between instances of 'rv_frozen' and 'int'

获得此结果,而不是预期的具有 100 到 600 个隐藏层神经元的 1 或 2 层 MLP。有什么想法/其他相关提示吗?

最佳答案

sp_randint返回rv_discrete类的实例/randint对象,为了生成随机数,正确的语法应该是sp_randint.rvs(low ,高,尺寸)。 为了使其工作,您需要定义 parameter_space 如下:

参数空间 = { 'hidden_​​layer_sizes': [(sp_randint.rvs(100,600,1),sp_randint.rvs(100,600,1),), (sp_randint.rvs(100,600,1),)], '激活': ['tanh', 'relu', '后勤'], '求解器': ['sgd', 'adam', 'lbfgs'], “阿尔法”:均匀(0.0001,0.9), 'learning_rate': ['常量','自适应']}

关于python - Sklearn MLP 分类器超参数优化 (RandomizedSearchCV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52029408/

相关文章:

python - 欧拉计划 #35 : nicer way to test if an even integer is 'inside' an integer

python - 如何在 Windows 上安装 Python 版 pango?

java - NLP中的数据字典是什么?

ruby - 如何使用机器学习对产品的品牌名称进行分类?

Python:没有机器学习的网格搜索?

python - 使用 CSS/HTML/Python/SASS(但没有 JS)根据值更改表格单元格的背景颜色?不需要动态

Python 表单处理替代方案

machine-learning - 实现一个国际象棋引擎有多难?

Python scikit 学习 n_jobs

python - 如何使用 scikit 的 Surprise 进行预测?