Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sklearn线性回归不可调用_Python_Numpy_Scikit Learn_Regression_Sklearn Pandas - Fatal编程技术网

Python Sklearn线性回归不可调用

Python Sklearn线性回归不可调用,python,numpy,scikit-learn,regression,sklearn-pandas,Python,Numpy,Scikit Learn,Regression,Sklearn Pandas,我正在使用pandas和sklearn实现简单线性回归和多元线性回归 我的代码如下 import pandas as pd import numpy as np import scipy.stats from sklearn import linear_model from sklearn.metrics import r2_score df = pd.read_csv("Auto.csv", na_values='?').dropna() lr = linear_model.LinearRe

我正在使用pandas和sklearn实现简单线性回归和多元线性回归

我的代码如下

import pandas as pd
import numpy as np
import scipy.stats
from sklearn import linear_model
from sklearn.metrics import r2_score
df = pd.read_csv("Auto.csv", na_values='?').dropna()

lr = linear_model.LinearRegression()
y = df['mpg']
x = df['displacement']
X = x.values.reshape(-1,1)
sklearn_model = lr.fit(X,y)
这很好,但对于多重线性回归,由于某种原因,它不适用于sklearn线性回归末尾的(),当我将其与括号一起使用时,会出现以下错误:

TypeError: 'LinearRegression' object is not callable
我的多元线性回归代码如下:

lr = linear_model.LinearRegression

feature_1 = np.array(df[['displacement']])
feature_2 = np.array(df[['weight']])
feature_1 = feature_1.reshape(len(feature_1),1)
feature_2 = feature_2.reshape(len(feature_2),1)

X = np.hstack([feature_1,feature_2])

sklearn_mlr = lr(X,df['mpg'])
from sklearn.linear_model import LinearRegression
我想知道我做错了什么。此外,如果在最后不使用()的话,我无法打印线性回归方法中的各种属性。e、 g

print(sklearn_mlr.coef_)
给我一个错误:

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

lr
在您的示例中是一个类

您需要初始化它,然后从实例中调用
.fit(X,df['mpg'])

给定以下代码片段:

lr = linear_model.LinearRegression

feature_1 = np.array(df[['displacement']])
feature_2 = np.array(df[['weight']])
feature_1 = feature_1.reshape(len(feature_1),1)
feature_2 = feature_2.reshape(len(feature_2),1)

X = np.hstack([feature_1,feature_2])

sklearn_mlr = lr(X,df['mpg'])
您的问题是尚未初始化LinearRegression类的实例。您需要像在第一个示例中那样初始化它。然后您可以使用
fit
方法,如下所示:

lr = linear_model.LinearRegression()

feature_1 = np.array(df[['displacement']])
feature_2 = np.array(df[['weight']])
feature_1 = feature_1.reshape(len(feature_1),1)
feature_2 = feature_2.reshape(len(feature_2),1)

X = np.hstack([feature_1,feature_2])

sklearn_mlr = lr.fit(X,df['mpg'])

一旦一个实例适合,它将具有文档中列出的属性(例如
.coef\uu
)。既然您试图访问LogisticRegression类本身的
.coef

为什么不按如下方式导入它:

lr = linear_model.LinearRegression

feature_1 = np.array(df[['displacement']])
feature_2 = np.array(df[['weight']])
feature_1 = feature_1.reshape(len(feature_1),1)
feature_2 = feature_2.reshape(len(feature_2),1)

X = np.hstack([feature_1,feature_2])

sklearn_mlr = lr(X,df['mpg'])
from sklearn.linear_model import LinearRegression
在我看来,这比你做的要干净得多。然后您可以这样使用它:

lr = LinearRegression()

我无法复制这个。我怀疑你在什么地方做了
linear\u model.LinearRegression=linear\u model.LinearRegression()
,这会重现这个错误……你知道
()
是如何工作的吗?为什么上面的代码有效?