Я пишу класс линейной регрессии, который подгоняет модель к некоторым данным, аналогично реализации scikit-learn .
Как только модель подойдет, я хочу иметь возможностьвызовите predict()
метод без необходимости передавать веса обученной модели в качестве параметра методу.То, что у меня есть, находится ниже
class LinReg:
""" Fit a linear model to data"""
def __init__(self):
....
def fit(self, x, y):
"""Fit a model to data x with targets y"""
...
# model weights w are calculated here
return w
def predict(self, x, w):
"""Predict the target variable of the data x using trained weights w"""
...
# predicted y values, y_pred, are calulated here
return y_pred
. Обученные веса w
возвращаются из fit()
, поэтому пользователь может сохранить их в виде переменной для последующей передачи в метод predict()
.
lm = LinReg()
w = lm.fit(x,y)
y_pred = lm.predict(x_new, w) # don't want to pass w here
Однако я не хочу возвращать w
из fit()
;Я хочу как-то сохранить w
после того, как он будет вычислен в fit()
, чтобы пользователю не приходилось заботиться о весах, но также о том, чтобы веса можно было легко использовать в методе predict()
.
Как мне это сделать?Есть ли питонский или стандартный ОО способ сделать это?