Я действительно новичок в написании классов Python.По сути, я пытаюсь написать класс, который будет использоваться в конвейере sklearn.Класс должен добавить два атрибута в существующий фрейм данных, изменив некоторые существующие атрибуты.
- Новые атрибуты будут преобразованием журнала существующего столбца, а
- - произведением двух других атрибутов, умноженных вместе.Вот что у меня есть:
код:
import BaseEstimator and TransformerMixIn
from sklearn.base import BaseEstimator, TransformerMixin
population_ix, A_PM10_ix, A_PM25_ix = 15, 2, 3
class CombinedAttributes(BaseEstimator, TransformerMixin):
def __init__(self):
pass
def fit(self, X, y=None):
return self
def transform(self, X, y=None):
log_pop = np.log(X[:,population_ix])
pm = X[:, A_PM10_ix] * X[:,A_PM25_ix]
return np.c_[X, log_pop, pm]
attr_adder = CombinedAttributes()
env_extra_attribs = attr_adder.transform(environment.values)
Это сообщение об ошибке, которое я получаю:
AttributeError Traceback (most recent call last)
<ipython-input-66-e138b3c2e517> in <module>()
1 attr_adder = CombinedAttributes()
----> 2 env_extra_attribs = attr_adder.transform(environment.values)
<ipython-input-65-e4aac1c1930b> in transform(self, X, y)
11 return self
12 def transform(self, X, y=None):
---> 13 log_pop = np.log(X[:,population_ix])
14 pm = X[:, A_PM10_ix] * X[:,A_PM25_ix]
15 return np.c_[X, log_pop, pm]
AttributeError: 'float' object has no attribute 'log'</code>
Мой вопрос, как мне получитьпреобразование журнала для работы в этом.
Кроме того, я также не уверен на 100% в том, как я включил инструкцию pass в определение <strong>init</strong>
.Опять же, это совершенно новое, и у меня возникают проблемы с поиском уроков, которые я могу понять.
Буду признателен за любую помощь, спасибо,