python - AttributeError: LinearRegression 对象没有属性 'coef_'

标签 python python-3.x scikit-learn linear-regression attributeerror

我一直在尝试按照 bigdataexaminer 上的教程通过线性回归来拟合这些数据。直到此时一切都运行良好。我从 sklearn 导入了 LinearRegression,并打印出系数的数量就好了。这是我尝试从控制台获取系数之前的代码。

import numpy as np
import pandas as pd
import scipy.stats as stats
import matplotlib.pyplot as plt
import sklearn
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression

boston = load_boston()
bos = pd.DataFrame(boston.data)
bos.columns = boston.feature_names
bos['PRICE'] = boston.target

X = bos.drop('PRICE', axis = 1)

lm = LinearRegression()

在我完成所有这些设置后,我运行了以下命令,它返回了正确的输出:

In [68]: print('Number of coefficients:', len(lm.coef_)

Number of coefficients: 13

但是,现在如果我再次尝试打印同一行,或使用“lm.coef_”,它会告诉我 coef_ 不是 LinearRegression 的属性,就在我刚刚成功使用它之后,但我没有在我再次尝试之前触摸任何代码。

In [70]: print('Number of coefficients:', len(lm.coef_))

Traceback (most recent call last):

 File "<ipython-input-70-5ad192630df3>", line 1, in <module>
print('Number of coefficients:', len(lm.coef_))

AttributeError: 'LinearRegression' object has no attribute 'coef_'

最佳答案

coef_ 属性是在调用 fit() 方法时创建的。在此之前,它将是未定义的:

>>> import numpy as np
>>> import pandas as pd
>>> from sklearn.datasets import load_boston
>>> from sklearn.linear_model import LinearRegression

>>> boston = load_boston()

>>> lm = LinearRegression()
>>> lm.coef_
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-22-975676802622> in <module>()
      7 
      8 lm = LinearRegression()
----> 9 lm.coef_

AttributeError: 'LinearRegression' object has no attribute 'coef_'

如果我们调用fit(),系数将被定义:

>>> lm.fit(boston.data, boston.target)
>>> lm.coef_
array([ -1.07170557e-01,   4.63952195e-02,   2.08602395e-02,
         2.68856140e+00,  -1.77957587e+01,   3.80475246e+00,
         7.51061703e-04,  -1.47575880e+00,   3.05655038e-01,
        -1.23293463e-02,  -9.53463555e-01,   9.39251272e-03,
        -5.25466633e-01])

我的猜测是您在运行有问题的行时以某种方式忘记调用 fit()

关于python - AttributeError: LinearRegression 对象没有属性 'coef_',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38646040/

相关文章:

python - 导入错误: cannot import name '_UnstableArchMixin' from 'sklearn.base'

python - 这个解三次方程的函数有什么问题?

python - 要指定列名称,为什么 `pd.read_csv` 和 `pd.DataFrame` 使用相同的参数名称?

python - Numpy:没有循环的多轴上的argmax

python - 抓取一个遍历网站页面的表格 : how to define the last page?

python - 在 python 中训练随机森林时,哪种 dtype 表现更好?

python - 无法确定要输入机器学习算法的 2D 特征矩阵结构

python - 列表字典的最大/最小值

python - 哪些 Twitter 包装库支持 Python 3.x?

python - Matplotlib 轴标签不显示