标签: hyperparameters

确定 scipy.optimize 的合理初始猜测的函数?

我正在使用scipy.optimize.minimize来查找对使用的初始猜测相当敏感的 4D 函数的最小值。如果我稍微改变一下,解决方案就会发生很大的变化。

SO中已经有许多与此类似的问题(例如:1 , 2 , 3),但没有真正的答案。

在我的一个老问题中,zunzun.com 网站(显然不再在线的开发人员之一解释了他们如何管理这个:

Zunzun.com 使用差分进化遗传算法 (DE) 找到初始参数估计值,然后将其传递给 scipy 中的 Levenberg-Marquardt 求解器。DE 本身实际上并不用作全局优化器,而是用作“初始参数猜测器”。

我发现最接近这个算法的是这个答案,其中一个for块用于通过随机初始猜测多次调用最小化函数。这会生成多个最小化的解决方案,最后选择最好的(最小值)一个。

是否有类似于 zuzun dev 描述的已经在 Python 中实现的内容?

python machine-learning mathematical-optimization scipy hyperparameters

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

`warm_start` 参数及其对计算时间的影响

我有一个带有一组定义的参数 ( ) 的逻辑回归warm_start=True模型。

与往常一样,我调用LogisticRegression.fit(X_train, y_train)并使用模型来预测新的结果。

假设我改变一些参数,并使用相同的训练数据C=100再次调用方法。.fit


.fit从理论上讲,我认为与 的模型相比,第二次应该花费更少的计算时间warm_start=False。然而,根据经验来看,事实并非如此。

请帮我理解参数的概念warm_start

PS:我也进行了SGDClassifier()实验。

gradient-descent scikit-learn logistic-regression hyperparameters

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

如何在 keras 中使用带有拟合生成器的网格搜索

我想用 fit_generator 作为 keras 的输入网格搜索模型的参数

我在堆栈溢出中找到以下代码并更改它

1-但我不明白如何使用 fit_generator 或 flow_from_directory 来拟合函数(代码中的最后一行)

2-如何添加提前停止?

谢谢

from __future__ import print_function

import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.wrappers.scikit_learn import KerasClassifier
from keras import backend as K
from sklearn.grid_search import GridSearchCV
from tqdm import tqdm      # a nice pretty percentage bar for tasks. Thanks to viewer Daniel Bühler for this suggestion
import os                  # dealing with directories
import …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn cross-validation hyperparameters keras

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

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

我想优化一个具有多个可变参数作为输入的算法。

对于机器学习任务,Sklearn提供具有gridsearch功能的超参数优化。

Python 中是否有标准化的方式/库可以优化不限于机器学习主题的超参数?

python optimization scikit-learn hyperparameters grid-search

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

Kfold 交叉验证和 GridSearchCV

好吧,我试图了解如何以及在算法中的哪个点应用 Kfold CV 和 GridSearchCV。另外,如果我理解正确的话,GridSearchCV 用于超参数调整,即参数的哪些值将给出最佳结果,而 Kfold CV 用于更好的泛化,以便我们在不同的折叠上进行训练,从而在数据有序的情况下减少偏差以某种特定的方式,从而增加普遍性。现在的问题是,GridSearchCV 是否也使用 CV 参数进行交叉验证。那么为什么我们需要 Kfold CV,如果需要的话我们是否在 GridSearchCV 之前进行呢?对该过程的一些概述将非常有帮助。

machine-learning scikit-learn cross-validation hyperparameters

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

Python 和 HyperOpt:如何进行多进程网格搜索?

我正在尝试调整一些参数并且搜索空间非常大。到目前为止,我有 5 个维度,它可能会增加到大约 10 个。问题是,如果我能弄清楚如何对它进行多处理,我认为我可以获得显着的加速,但我找不到任何好的方法它。我正在使用hyperopt,但我不知道如何让它使用 1 个以上的内核。这是我没有所有不相关内容的代码:

from numpy    import random
from pandas   import DataFrame
from hyperopt import fmin, tpe, hp, Trials





def calc_result(x):

    huge_df = DataFrame(random.randn(100000, 5), columns=['A', 'B', 'C', 'D', 'E'])

    total = 0

    # Assume that I MUST iterate
    for idx_and_row in huge_df.iterrows():
        idx = idx_and_row[0]
        row = idx_and_row[1]


        # Assume there is no way to optimize here
        curr_sum = row['A'] * x['adjustment_1'] + \
                   row['B'] * x['adjustment_2'] + \
                   row['C'] * x['adjustment_3'] + \ …
Run Code Online (Sandbox Code Playgroud)

python machine-learning pandas hyperparameters grid-search

5
推荐指数
2
解决办法
5376
查看次数

如何在 k 重 CV 设置中组织 Ray Tune 可训练类计算?

看起来 Ray Tune 文档促使您使用一种方法编写一个可训练类,_train该方法可以进行增量训练并将指标报告为字典。通过 _load _restore 方法可以保持一定的状态。

太长了;没有明确的好方法来基于配置运行嵌套并行运行并记录结果等。这种模式是否会破坏调整流程?

如果您想在不同的训练/测试对(具有不同的模型)上使用聚合分数,那么您在方法内的训练/测试对和模型上映射(并行)的预期模式是什么_train

如果有关 Tune 使用的问题有更好的地方,请告诉我。

ray cross-validation hyperparameters

5
推荐指数
0
解决办法
1109
查看次数

神经网络超参数调整 - 设置随机种子是个好主意吗?

我正在尝试调整一个基本的神经网络作为练习。(基于 coursera 课程中的一个示例:神经网络和深度学习 - DeepLearning.AI)我面临随机权重初始化的问题。假设我尝试调整网络中的层数。我有两个选择:

  • 1.:将随机种子设置为固定值
  • 2.:在不设置种子的情况下多次运行我的实验

两个版本各有利弊。我最大的担忧是,如果我使用随机种子(例如:),tf.random.set_seed(1)那么确定的值可能会“过度拟合”到种子,如果没有种子或值发生更改(例如:tf.random.set_seed(1)-> tf.random.set_seed(2). On),则可能无法正常工作另一方面,如果我在没有随机种子的情况下多次运行我的实验,那么我可以检查更少的选项(由于计算能力有限)并且仍然只检查可能的随机权重初始化的一个子集。在这两种情况下,我觉得运气是一个强大的因素正在进行中。

是否有最佳实践来处理这个话题?

TensorFlow 是否为此内置了工具?我感谢任何描述或教程的来源。提前致谢!

machine-learning neural-network deep-learning hyperparameters tensorflow

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

xgboost 的 alpha、lambda 和 gamma 正则化参数有什么区别?

我有一个问题要问:

xgboost 算法中权重的 L1 和 L2 正则化项究竟有何不同。

据我了解,L1由LASSO使用,L2由RIDGE回归使用,L1可以缩小到0,L2不能。我了解使用简单线性回归时的机制,但我不知道它在基于树的模型中如何工作。

此外,gamma 是另一个参数,它使模型更加保守。我应该如何注意L1/L2和gamma参数之间的区别。

我在文档中发现这个问题很少:

lambda [默认=1,别名:reg_lambda]

  • 权重的 L2 正则化项。增加该值将使模型更加保守。

alpha [默认=0,别名:reg_alpha]

  • 权重的 L1 正则化项。增加该值将使模型更加保守。

gamma [默认=0,别名:min_split_loss]

  • 在树的叶节点上进行进一步划分所需的最小损失减少。gamma越大,算法越保守。

它们的范围都是从 0 到 inf。

预先感谢您的任何答复/评论!

python pandas hyperparameters xgboost optuna

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

使用 .set_params() 函数进行线性回归

我最近开始研究线性回归机器学习。我使用LinearRegression( lr) 来预测一些值。事实上,我的预测很糟糕,我被要求更改超参数以获得更好的结果。

我使用以下命令来获取超参数:

lr.get_params().keys() 
lr.get_params()
Run Code Online (Sandbox Code Playgroud)

并获得以下内容:

 'copy_X': True,
 'fit_intercept': True,
 'n_jobs': None,
 'normalize': False,
 'positive': False}
Run Code Online (Sandbox Code Playgroud)

dict_keys(['copy_X', 'fit_intercept', 'n_jobs', 'normalize', 'positive'])
Run Code Online (Sandbox Code Playgroud)

现在,这就是问题开始出现的地方。我试图找到使用该.set_params()函数的正确语法,但每个答案似乎都超出了我的理解范围。

我尝试分配一个位置参数,因为命令如lr.set_params('normalize'==True)返回

TypeError: set_params() takes 1 positional argument but 2 were given
Run Code Online (Sandbox Code Playgroud)

lr.set_params(some_params = {'normalize'})返回

ValueError (`ValueError: Invalid parameter some_params for estimator LinearRegression(). Check the list of available parameters with estimator.get_params().keys().
Run Code Online (Sandbox Code Playgroud)

有人可以简单解释一下这个函数是如何工作的吗?

python machine-learning linear-regression scikit-learn hyperparameters

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