微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何在 python 中解决这个错误Jupyter notebook 中的代码

如何解决我如何在 python 中解决这个错误Jupyter notebook 中的代码

我在三月份创建了这个程序,当时运行良好,但现在出现错误,我不知道为什么。

the error it shows

how it looked when it was working

这是当前的非工作代码(我在 Jupiter notebook 上编码)

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))

我知道错误代码的最后一部分。 这是代码的最后一部分在 3 月 15 日工作时的样子。

dates = pd.date_range(start="2021-03-16",end= "2021-04-14")
plt.plot(dates,3,1))

解决方法

错误输出中有解释:您的 x 和 y 第一维不匹配。问题是您要预测 70 天(forecast=70)并尝试将其绘制到 30 天的周期内。

您可以尝试更改预测天数:

forecast=30

或者匹配 70 天的时间段,如下所示:

dates = pd.date_range(start="2021-05-21",end= "2021-07-29")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。