为啥我得到 AttributeError:'LinearRegressionGD' 对象没有属性 'n_iter'
Posted
技术标签:
【中文标题】为啥我得到 AttributeError:\'LinearRegressionGD\' 对象没有属性 \'n_iter\'【英文标题】:why am I getting AttributeError: 'LinearRegressionGD' object has no attribute 'n_iter'为什么我得到 AttributeError:'LinearRegressionGD' 对象没有属性 'n_iter' 【发布时间】:2019-09-29 03:16:59 【问题描述】:我正在我的数据集上建立一个线性回归模型,但我遇到了一个属性错误,我遇到了一个问题。
class LinearRegressionGD (object):
def _init_(self, eta=0.001, n_iter=20):
self.eta = eta
self.n_iter = n_iter
def fit(self, X, y):
self.w = np.zeros(1 + X.shape[1])
self.cost_ =
for i in range(self.n_iter):
output = self.net_input (X)
errors = (y - output)
self.w_[1:] += self.eta * X.T.dot(errors)
self.w_[0] += self.eta * errors.sum()
cost = (errors**2).sum() / 2.0
self.cost_.append(cost)
return self
def net_input(self, X):
return np.dot(X, self.w_[1:]) + self.w_[0]
def predict(self, X):
return self.net_input(X)
X = racing[["BSP"]].values
y = racing[["Position"]].values
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
sc_y = StandardScaler()
X_std = sc_X.fit_transform(X)
y_std = sc_y.fit_transform(y)
lr = LinearRegressionGD()
lr.fit(X_std, y_std)
然后我预计无法绘制结果以查看线性回归是否已经收敛,但我收到以下错误:
AttributeError Traceback (most recent call last)
<ipython-input-23-c876c2ee7b9e> in <module>
----> 1 class LinearRegressionGD (object):
2
3 def _init_(self, eta=0.001, n_iter=20):
4 self.eta = eta
5 self.n_iter = n_iter
<ipython-input-23-c876c2ee7b9e> in LinearRegressionGD()
32 y_std = sc_y.fit_transform(y)
33 lr = LinearRegressionGD()
---> 34 lr.fit(X_std, y_std)
<ipython-input-22-19842f46cb51> in fit(self, X, y)
9 self.cost_ =
10
---> 11 for i in range(self.n_iter):
12 output = self.net_input (X)
13 errors = (y - output)
AttributeError: 'LinearRegressionGD' object has no attribute 'n_iter'
【问题讨论】:
【参考方案1】:您必须在 init
之前使用 2 个下划线和 2 个下划线之后编写构造函数名称:__init__()
您编写的 _init_()
函数在您创建对象时不会运行,因此该对象没有获得任何名为 n_iter
的变量来使用。
【讨论】:
谢谢,整理好了。以上是关于为啥我得到 AttributeError:'LinearRegressionGD' 对象没有属性 'n_iter'的主要内容,如果未能解决你的问题,请参考以下文章
为啥我得到 AttributeError: Object has no attribute? [关闭]
为啥我得到 AttributeError: Object has no attribute? [关闭]
为啥我得到 AttributeError:'LinearRegressionGD' 对象没有属性 'n_iter'
继承人一些异步代码为亚马逊搜索提供硒队列,为啥我得到 AttributeError? __init__ 没有运行?
谁能告诉我为啥我收到错误 [AttributeError: 'list' object has no attribute 'encode']
为啥我收到错误:AttributeError:'builtin_function_or_method'对象没有属性'isdigit'