Передача параметров функции sklearn в виде словаря в Python - PullRequest
0 голосов
/ 21 февраля 2020

Для удобства я хочу обернуть функции sklearn внутри функций и передать оберткам параметры функции sklearn в виде словаря. Но я делаю это неправильно и получаю сообщение об ошибке.

Мой код:

params = {'alpha' : 1, 'kernel' : 'linear', 'gamma': 10}

def f_kernel_ridge(X_train, y_train, X_dev, y_dev, X_test, **params):


    from sklearn.kernel_ridge import KernelRidge

    clf = KernelRidge(X_train, y_train, alpha , kerner , gamma)
    clf.fit(X, y)
    return clf

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-394-8240d87b78fc> in <module>
----> 1 Results = f_kernel_ridge(X_train, y_train, X_dev, y_dev, X_test, **params)

<ipython-input-392-331317c2e92c> in f_kernel_ridge(X_train, y_train, X_dev, y_dev, X_test, **params)
      8     from sklearn.kernel_ridge import KernelRidge
      9 
---> 10     clf = KernelRidge(X_train, y_train, alpha , kerner , gamma)
     11     clf.fit(X, y)
     12 

NameError: name 'alpha' is not defined

1 Ответ

1 голос
/ 21 февраля 2020
params = {'alpha' : 1, 'kernel' : 'linear', 'gamma': 10}

def f_kernel_ridge(X_train, y_train, X_dev, y_dev, X_test, params):


    from sklearn.kernel_ridge import KernelRidge

    clf = KernelRidge(**params)
    clf.fit(X, y)
    return clf

1) не "взрывать" параметры в функции arg

2) взрывать параметры в вызове KernelRidge

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...