【问题标题】:NameError: name 'predictions' is not definedNameError:名称“预测”未定义
【发布时间】:2020-01-02 18:42:22
【问题描述】:

我正在运行以下代码并收到此错误。请帮忙:

错误:NameError:名称“预测”未定义

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
from sklearn import linear_model
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns; sns.set(color_codes=True)
import seaborn
from datetime import date
from datetime import datetime
today = date.today()
sns.set_color_codes("dark")
from sklearn.linear_model import LinearRegression
from sklearn.metrics import accuracy_score

d3 = today.strftime("%Y%m%d")
d5 = "S:\\Investment Process\\LCRV_Strategy\\1.VOLS Pack\\Drop\\Main_HY.CDX."+d3+".csv"
data = df=pd.read_csv(d5, skiprows=3)
#df.head()
plt.figure(figsize=(11.5, 8.5))

plt.scatter(
    df['1M 10-50 HY'],
    df['Spread'],
    c='black'
)
plt.scatter(x='1M 10-50 HY', y='Spread', data=data.iloc[-1], c='orange')
plt.xlabel("1M 10-50 HY")
plt.ylabel("Spread")

plt.plot(
    df['1M 10-50 HY'],
    predictions,
    c='blue',
    linewidth=2
)
X = df['1M 10-50 HY'].values.reshape(-1,1)
y = df['Spread'].values.reshape(-1,1)
reg = LinearRegression()
reg.fit(X, y)

print("The linear model is: Y = {:.5} + {:.5}X".format(reg.intercept_[0], reg.coef_[0][0]))

X = df['1M 10-50 HY']
y = df['Spread']
#X2 = sm.add_constant(X)
#est = sm.OLS(y, X2)
#est2 = est.fit()
#print(est2.summary())
plt.show()

【问题讨论】:

  • 看看 plt.plot,你称之为预测,它没有定义。

标签: python scikit-learn linear-regression


【解决方案1】:

当然那是因为 Python 编译器不知道什么是“预测”! 如果你想预测你必须调用

predictions= reg.predict(x) 

reg.fit() 行之后。 然后你就可以绘图了。

【讨论】:

  • 这是我这样做时得到的:ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
猜你喜欢
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 2019-01-26
  • 2021-10-05
  • 2017-08-16
相关资源
最近更新 更多