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

Posted

技术标签:

【中文标题】返回 TypeError:“LinearRegression”对象不可调用。此错误的其他答案说 LinearRegression 尚未初始化【英文标题】:Returns TypeError: 'LinearRegression' object is not callable. Other answers with this error say LinearRegression has not been initialized 【发布时间】:2021-01-09 20:25:15 【问题描述】:

我查找了具有类似错误的问题,并认为我已按照步骤初始化 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)

【问题讨论】:

是否有其他变量或模块\文件名为 LinearRegression?你可以调用print(dir(LinearRegression)),看看方法列表是否有意义。 你能添加完整的错误堆栈跟踪吗?这是 Python 提供的最有价值的信息,但这里的大多数问题都没有包含它... 【参考方案1】:

您在最后一行(就在最后的print 之前)留下了一个错字,您在其中写了linreg_lag1(X_train_lag1, y_train_lag1)。用linreg_lag1.score(X_train_lag1, y_train_lag1) 替换它(这可能是你的意思)你应该没问题

【讨论】:

伙计,我觉得自己很愚蠢。非常感谢,我花了好几个小时试图找出昨天这个问题出了什么问题,但我终生无法解决它。您的回答正是问题所在,再次感谢!

以上是关于返回 TypeError:“LinearRegression”对象不可调用。此错误的其他答案说 LinearRegression 尚未初始化的主要内容,如果未能解决你的问题,请参考以下文章

DBSCAN 返回 TypeError:无效的类型提升

Datepicker 返回未捕获的 typeError: undefined 'currentDay'

为啥 TypeError 上的 JSON.stringify 返回一个空对象 [重复]

API 端点返回 TypeError: 'type' object is not iterable

更新到 Spyder 4.1.4 后 Spyder 返回 TypeError

我一直陷入 Flask 错误。 TypeError:视图函数没有返回有效响应[重复]