我正在尝试使用来拟合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。目前,我收到以下错误-
错误:调整参数网格应具有列参数
您对如何解决此问题有任何建议吗?
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 …
我发现的唯一适用于 Keras 函数式 API 的超参数优化库是 Talos。
有谁知道其他任何可行的方法?
我是该glmnet软件包的新手R,并希望lambda根据已发布的研究论文中的建议指定一个glmnet.cv函数.文档表明我们可以提供lambdas作为参数的递减序列.但是,在文档中没有如何执行此操作的示例.
如果有人可以建议如何去做,那将是非常感激的.我是否将100奇数值(默认值nlambda)的向量传递给函数?如果有的话,这个向量的最小值和最大值应该有什么限制?此外,是他们的事情要记住有关nvars,nobs等等,同时指定载体?
提前致谢.
我想用keras建立一个非线性回归模型来预测+ ve连续变量.对于以下模型,如何选择以下超参数?
码
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的贝叶斯优化新手.
我正在尝试使用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
是否有任何经验法则可以num_leaves在lightgbm. 例如对于1000特征数据集,我们知道使用tree-depthof 10,它可以覆盖整个数据集,因此我们可以相应地选择它,并且用于调优的搜索空间也受到限制。
但是在lightgbm,我们如何粗略地猜测这个参数,否则使用网格搜索方法时它的搜索空间会非常大。
任何有关选择此参数的直觉都会有所帮助。
我一直在用 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
我第一次问这个问题时就关闭了,因为这个问题提出了类似的问题。然而,尽管答案显示了如何从管道中添加/删除步骤,但没有一个答案显示这是如何工作的,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
我在数据集中使用了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)分数?
hyperparameters ×10
optimization ×3
r ×3
bayesian ×2
keras ×2
lightgbm ×2
python ×2
scikit-learn ×2
data-science ×1
glmnet ×1
grid-search ×1
pandas ×1
parameters ×1
pipeline ×1
python-3.x ×1
r-caret ×1
talos ×1
tidymodels ×1