返回TypeError:'LinearRegression'对象不可调用关于此错误的其他答案说LinearRegression尚未初始化

问题描述

我查找了具有类似错误的问题,并认为我已按照以下步骤用线条来初始化LinearRegression

linreg_mean_dif = LinearRegression().fit(X_train_dif,y_train_dif)

linreg_lag1 = LinearRegression().fit(X_train_lag1,y_train_lag1)

但是,我仍然被告知LinearRegression是不可调用的。我的代码似乎是什么问题?

import pandas as pd
import numpy as np
import math
from scipy.stats import binom
import timeit
import pandas_market_calendars as mcal
from datetime import datetime
from dateutil import parser as datetime_parser
from dateutil.tz import tzutc,gettz
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import tree_model as tree

此处的代码从tree_model导入数据并构建reversion_df数据框

X_var1 = reversion_df['Difference from Mean'].values
y_var1 = reversion_df['Daily % Change'].values
X_var2 = reversion_df['Daily % Change Lag 1'][:len(reversion_df['Daily % Change Lag 1'])-1].values
y_var2 = reversion_df['Daily % Change'][:len(reversion_df['Daily % Change Lag 1'])-1].values

X_train_dif,X_test_dif,y_train_dif,y_test_dif = train_test_split(X_var1,y_var1,random_state = 0)
X_train_lag1,X_test_lag1,y_train_lag1,y_test_lag1 = train_test_split(X_var2,y_var2,random_state = 0)
X_train_dif = X_train_dif.reshape(-1,1)
X_test_dif = X_test_dif.reshape(-1,1)
X_train_lag1 = X_train_lag1.reshape(-1,1)
X_test_lag1 = X_test_lag1.reshape(-1,1)

linreg_mean_dif = LinearRegression().fit(X_train_dif,y_train_dif)
linreg_lag1 = LinearRegression().fit(X_train_lag1,y_train_lag1)

scores_train = (linreg_mean_dif.score(X_train_dif,y_train_dif),linreg_lag1(X_train_lag1,y_train_lag1))


print(scores_train)

解决方法

您在最后一行(恰好在最后print之前)留下了错字,您在其中写了linreg_lag1(X_train_lag1,y_train_lag1)。将其替换为linreg_lag1.score(X_train_lag1,y_train_lag1)(可能是您的意思)