标签: hyperparameters

R Caret软件包中的Logistic回归调整参数网格?

我正在尝试使用来拟合R中的逻辑回归模型caret package。我已经完成以下工作:

model <- train(dec_var ~., data=vars, method="glm", family="binomial",
                 trControl = ctrl, tuneGrid=expand.grid(C=c(0.001, 0.01, 0.1, 1,10,100, 1000)))
Run Code Online (Sandbox Code Playgroud)

但是,我不确定该模型的调整参数应该是什么,并且我很难找到它。我假设它是C,因为C是中使用的参数sklearn。目前,我收到以下错误-

错误:调整参数网格应具有列参数

您对如何解决此问题有任何建议吗?

r logistic-regression hyperparameters r-caret

5
推荐指数
1
解决办法
6667
查看次数

Bayesian optimization for a Light GBM Model

I am able to successfully improve the performance of my XGBoost model through Bayesian optimization, but the best I can achieve through Bayesian optimization when using Light GBM (my preferred choice) is worse than what I was able to achieve by using it’s default hyper-parameters and following the standard early stopping approach.

When tuning via Bayesian optimization, I have been sure to include the algorithm’s default hyper-parameters in the search surface, for reference purposes.

The code below shows the RMSE …

python bayesian pandas hyperparameters lightgbm

5
推荐指数
1
解决办法
618
查看次数

5
推荐指数
1
解决办法
974
查看次数

我们如何为glmnet指定自定义lambda序列

我是该glmnet软件包的新手R,并希望lambda根据已发布的研究论文中的建议指定一个glmnet.cv函数.文档表明我们可以提供lambdas作为参数的递减序列.但是,在文档中没有如何执行此操作的示例.

如果有人可以建议如何去做,那将是非常感激的.我是否将100奇数值(默认值nlambda)的向量传递给函数?如果有的话,这个向量的最小值和最大值应该有什么限制?此外,是他们的事情要记住有关nvars,nobs等等,同时指定载体?

提前致谢.

parameters r lasso-regression glmnet hyperparameters

4
推荐指数
1
解决办法
3882
查看次数

如何使用hyperopt进行Keras深度学习网络的超参数优化?

我想用keras建立一个非线性回归模型来预测+ ve连续变量.对于以下模型,如何选择以下超参数?

  1. 隐藏层和神经元的数量
  2. 辍学率
  3. 是否使用BatchNormalization
  4. 激活功能超出线性,relu,tanh,sigmoid
  5. 在adam,rmsprog,sgd中使用的最佳优化器

def dnn_reg():
    model = Sequential()
    #layer 1
    model.add(Dense(40, input_dim=13, kernel_initializer='normal'))
    model.add(Activation('tanh'))
    model.add(Dropout(0.2))
    #layer 2
    model.add(Dense(30, kernel_initializer='normal'))
    model.add(BatchNormalization())
    model.add(Activation('relu'))
    model.add(Dropout(0.4))
    #layer 3
    model.add(Dense(5, kernel_initializer='normal'))
    model.add(BatchNormalization())
    model.add(Activation('relu'))
    model.add(Dropout(0.4))

    model.add(Dense(1, kernel_initializer='normal'))
    model.add(Activation('relu'))
    # Compile model
    model.compile(loss='mean_squared_error', optimizer='adam')
    return model
Run Code Online (Sandbox Code Playgroud)

我考虑过随机网格搜索,但我想使用hyperopt,我相信会更快.我最初使用https://github.com/maxpumperla/hyperas实现了调优.Hyperas不使用最新版本的keras.我怀疑keras正在快速发展,维护者很难使其兼容.所以我认为直接使用hyperopt将是一个更好的选择.

PS:我是超级参数调优和hyperopt的贝叶斯优化新手.

python optimization deep-learning hyperparameters keras

4
推荐指数
2
解决办法
1万
查看次数

并非所有点都在 Scikit-Optimize 中的空间误差范围内

我正在尝试使用scikit 优化包在 LSTM 模型(纯 Tensorflow)上执行超参数优化任务。为此,我正在使用使用高斯过程(gp_minimize)的贝叶斯优化方法。可以通过此链接找到为该函数提供的演示代码。当我尝试运行我的代码时,我不断收到以下错误:

ValueError:并非所有点都在空间范围内。

我的完整代码如下所示:

import skopt
from skopt import gp_minimize, forest_minimize
from skopt.space import Real, Categorical, Integer
from skopt.plots import plot_convergence
from skopt.plots import plot_objective, plot_evaluations
from skopt.utils import use_named_args

import csv
import tensorflow as tf
import numpy as np
import  pandas as pd
from sklearn.metrics import mean_squared_error
from math import sqrt
import atexit
from time import time, strftime, localtime
from datetime import timedelta


input_size = 1
num_layers = …
Run Code Online (Sandbox Code Playgroud)

optimization bayesian python-3.x deep-learning hyperparameters

4
推荐指数
1
解决办法
1790
查看次数

LightGBM 中的 num_leaves 选择?

是否有任何经验法则可以num_leaveslightgbm. 例如对于1000特征数据集,我们知道使用tree-depthof 10,它可以覆盖整个数据集,因此我们可以相应地选择它,并且用于调优的搜索空间也受到限制。

但是在lightgbm,我们如何粗略地猜测这个参数,否则使用网格搜索方法时它的搜索空间会非常大。

任何有关选择此参数的直觉都会有所帮助。

machine-learning hyperparameters lightgbm

4
推荐指数
1
解决办法
4451
查看次数

R 包 tidymodels 中的 tune_grid 函数出错

我一直在用 tidymodels 为 Animal Crossing 用户评论 ( https://www.youtube.com/watch?v=whE85O1XCkg&t=1300s )从他的 Youtube 情感分析视频中复制 Julia Silge 的代码。在第 25 分钟,她使用 tune_grid(),当我尝试在我的脚本中使用它时,出现以下警告/错误:警告消息:所有模型在 tune_grid() 中失败。见.notes专栏。

在 .notes 中,出现 25 次:

[[1]]
# A tibble: 1 x 1
.notes                                                                         
<chr>                                                                          
1 "recipe: Error in UseMethod(\"prep\"): no applicable method for 'prep' applied~
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我使用的代码与 Julia 使用的代码相同。我的整个代码是这样的:

library(tidyverse)

user_reviews <- read_tsv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/user_reviews.tsv")

Run Code Online (Sandbox Code Playgroud)
user_reviews %>%
  count(grade) %>%
  ggplot(aes(grade,n)) + 
  geom_col()

Run Code Online (Sandbox Code Playgroud)
user_reviews %>%
  filter(grade > 0) %>%
  sample_n(5) %>% 
  pull(text)

Run Code Online (Sandbox Code Playgroud)
reviews_parsed <- user_reviews %>%
  mutate(text = str_remove(text, "Expand"), 
         rating = case_when(grade …
Run Code Online (Sandbox Code Playgroud)

r sentiment-analysis hyperparameters data-science tidymodels

4
推荐指数
1
解决办法
929
查看次数

有没有办法让 sklearn pipeline 在网格搜索期间进行有步骤和无步骤的训练?我可以删除步骤,但如何将其传递给 GridSearchCV?

我第一次问这个问题时就关闭了,因为这个问题提出了类似的问题。然而,尽管答案显示了如何从管道中添加/删除步骤,但没有一个答案显示这是如何工作的,GridSearchCV我想知道如何处理已从中删除步骤的管道。

我想使用网格搜索来训练模型,并测试首先执行 PCA 和省略 PCA 时的性能。有没有办法做到这一点?我正在寻找的不仅仅是简单地设置n_components输入变量的数量。

目前我这样定义我的管道:

pca = PCA()
gbc = GradientBoostingClassifier()
steps = [('pca', pca), ('gbc', gbc)]
pipeline = Pipeline(steps=steps)

param_grid = {
    'pca__n_components': [3, 5, 7],
    'gbc__n_estimators': [50, 100]
    }

search = GridSearchCV(pipeline, param_grid, n_jobs=-1, cv=5, scoring='roc_auc')
Run Code Online (Sandbox Code Playgroud)

pipeline machine-learning scikit-learn hyperparameters grid-search

4
推荐指数
1
解决办法
369
查看次数

如何优化LightFM的超参数?

我在数据集中使用了LightFM推荐程序库,该库在下面的图像中提供了结果。

经过一段时间后效果不佳

NUM_THREADS = 4
NUM_COMPONENTS = 30
NUM_EPOCHS = 5
ITEM_ALPHA = 1e-6
LEARNING_RATE = 0.005
LEARNING_SCHEDULE = 'adagrad'
RANDOM_SEED = 29031994    

warp_model = LightFM(loss='warp',
                    learning_rate=LEARNING_RATE,
                    learning_schedule=LEARNING_SCHEDULE,
                    item_alpha=ITEM_ALPHA,
                    no_components=NUM_COMPONENTS,
                    random_state=RANDOM_SEED)

bpr_model = LightFM(loss='bpr',
                    learning_rate=LEARNING_RATE,
                    learning_schedule=LEARNING_SCHEDULE,
                    item_alpha=ITEM_ALPHA,
                    no_components=NUM_COMPONENTS,
                    random_state=RANDOM_SEED)
Run Code Online (Sandbox Code Playgroud)

我的特征的形状如下:

项目和用户特征形状

我如何优化我的超参数以提高曲线下面积(AUC)分数?

optimization hyperparameters recommender-systems

3
推荐指数
1
解决办法
819
查看次数