[英]how do I solve this error in python (code in Jupyter notebook)
I created this program in march and it worked fine then, but now it has an error and I can't figure out why.我在三月份创建了这个程序,当时它运行良好,但现在它有一个错误,我不知道为什么。
here is the current non working code (I coded this on Jupiter notebook)这是当前的非工作代码(我在 Jupiter 笔记本上编码)
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime
import seaborn
from sklearn.model_selection import train_test_split
from sklearn import preprocessing
from sklearn.linear_model import LinearRegression
pd.options.mode.chained_assignment = None # default='warn'
df = yf.download("spy")
df.to_csv('spy.csv')
df = df[['Adj Close']]
plt.plot(df)
df['Adj Close'].plot(figsize=(15,6), color = 'g')
plt.legend(loc='upper left')
plt.show()
forecast = 70
df['Prediction'] = df[['Adj Close']].shift(-forecast)
X = np.array(df.drop(['Prediction'], 1))
X = preprocessing.scale(X)
X_forecast = X[-forecast:]
X = X[:-forecast]
y = np.array(df['Prediction'])
y = y[:-forecast]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
clf = LinearRegression()
clf.fit(X_train, y_train)
confidence = clf.score(X_test, y_test)
confidence
forecast_predicted = clf.predict(X_forecast)
print(forecast_predicted)
plt.plot(X, y)
dates = pd.date_range(start="2021-05-21", end= "2021-06-19")
plt.plot(dates, forecast_predicted, color='b')
df['Adj Close'].plot(color='g')
plt.xlim(xmin = datetime.date(2020,5,1))
plt.xlim(xmax = datetime.date(2021,7,1))
I know the error is in the last part of the code.我知道错误在代码的最后一部分。 here is how the last part of the code looked when it was working on march 15.这是代码的最后一部分在 3 月 15 日工作时的样子。
dates = pd.date_range(start="2021-03-16", end= "2021-04-14")
plt.plot(dates, forecast_predicted, color='b')
df['Adj Close'].plot(color='g')
plt.xlim(xmin = datetime.date(2020,3,1))
plt.xlim(xmax = datetime.date(2021,5,1))
It is explained in the error output: yours x and y first dimensions don't match.错误 output 中对此进行了解释:您的 x 和 y 第一个尺寸不匹配。 The problem is you are forecasting for 70 days (forecast=70) and trying to plot that onto 30 days period.问题是您预测 70 天(预测 = 70)并尝试将 plot 预测为 30 天。
You can either try changing forecast days:您可以尝试更改预测日期:
forecast=30
Or the time period so it matches 70 days, something like this:或时间段匹配 70 天,如下所示:
dates = pd.date_range(start="2021-05-21", end= "2021-07-29")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.