Как создать сюжет из поезда и проверить цель - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь создать одну фигуру, на которой мои y_train и y_pred отображаются с датой в виде оси X. Я никогда не создавал такой как раньше, поэтому я немного растерялся. Как я могу создать его, как на рисунке ниже? Пока я могу создать только похожую фигуру, но линия не соединена, как ее соединить?

this image

X = np.array(covid.drop(['acc_deceased'],1))
y = np.array(covid['acc_deceased'])

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,
                                                 shuffle = False)

lr = LinearRegression()

lr.fit(X_train,y_train)

y_pred = lr.predict(X_test)

pred = pd.DataFrame(y_pred, columns = ['y_pred'])
train = pd.DataFrame(y_train,columns = ['y_train'])
final = pd.concat([train,pred],ignore_index=True,sort=False)
final = final.set_index(covid.index)
plt.figure(figsize=(10,5))
sns.lineplot(x=final.index, y=final['y_train'])
sns.lineplot(x=final.index, y=final['y_pred'])
plt.legend(['y_train','y_pred','y_test'],
            loc='upper left')
plt.ylabel('y')

Это моя фигура

my figure

1 Ответ

1 голос
/ 12 апреля 2020

Самый простой способ сделать то, что вы хотите сделать, это что-то вроде:

X = np.array(covid.drop(['acc_deceased'],1))
y = np.array(covid['acc_deceased'])

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,
                                                 shuffle = False)

lr = LinearRegression()

lr.fit(X_train,y_train)

# predict on the portion you want to plot
########################################
pred_slice = # the x range you are after, 
             # i.e. np.atleast_2d(['2020-03-25',...]).T
y_pred = lr.predict(pred_slice)
########################################

pred = pd.DataFrame(y_pred, columns = ['y_pred'])
train = pd.DataFrame(y_train,columns = ['y_train'])
final = pd.concat([train,pred],ignore_index=True,sort=False)
final = final.set_index(covid.index)
plt.figure(figsize=(10,5))
sns.lineplot(x=final.index, y=final['y_train'])
sns.lineplot(x=final.index, y=final['y_pred'])
plt.legend(['y_train','y_pred','y_test'],
            loc='upper left')
plt.ylabel('y')

Однако , вам необходимо дополнительно предпринять некоторые шаги для проверки вашей модели.

Для этого вы можете сделать прогнозы из тестовых данных и использовать встроенные в метрики sklearn * Надежда, которая помогает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...