Доступ к атрибутам объекта с помощью словарных ключей - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь сохранить гиперпараметры модели в кадре данных, где точные параметры, которые должны быть сохранены, хранятся в виде ключей словаря.

Значения ключей используются для поиска оптимальных значений в сетке на каждой итерации цикла.

Например, словарь гиперпараметра может выглядеть примерно так:

hyperParams = {'C':[.0, 0.1, 1.], 'epsilon':[0., 0.1, 0.2]}

И элементы кадра данных для хранения значений генерируются так:

for h in hyperParams.keys() :
    df[str(h)] = np.nan

Если параметры были зафиксированы, код для хранения определенного значения будет выглядеть следующим образом:

df.loc[row_index, 'C'] = regressor.C

Однако параметры (атрибуты регрессора) хранятся в виде ключей.

Я пробовал это:

for h in hyperParams.keys() :
    df.loc[row_index, str(h)] = regressor.h

и это:

for h in hyperParams.keys() :
    df.loc[row_index, str(h)] = regressor.str(h)

однако ни один из них не распознается как атрибут объекта регрессора.

Есть ли способ вызвать атрибуты этого объекта из ключей словаря?

1 Ответ

0 голосов
/ 24 мая 2019

Вы можете использовать встроенную в Python функцию getattr. Аргументами функции getattr должны быть объект и строковое значение атрибута, который вы хотите получить от объекта. Так что в вашем случае вы могли бы сделать getattr(regressor, h).

...