返回 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 尚未初始化的主要内容,如果未能解决你的问题,请参考以下文章
Datepicker 返回未捕获的 typeError: undefined 'currentDay'
为啥 TypeError 上的 JSON.stringify 返回一个空对象 [重复]
API 端点返回 TypeError: 'type' object is not iterable