У меня есть некоторые проблемы с реализацией MLPRegressor
для сезонных данных. Во-первых, я скачал набор данных из Интернета, чтобы проверить следующий код, который я сделал. Окончательный результат должен отображать график и сравнение между базой данных прогнозирования по нейронной сети и данными тестирования. После того, как я попытаюсь проверить набор данных с помощью следующего кода, отобразится ошибка:
Измените ваши данные, используя array.reshape (-1, 1), если ваши данные имеют одну функцию, или array.reshape (1, -1), если он содержит один образец
Как я могу реализовать метод изменения формы в этом коде и отобразить результат прогнозирования?
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import random
from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import train_test_split
df = pd.read_csv('car_sales_1960.csv', parse_dates=['Month'], index_col='Month')
df.index.freq = 'MS'
x_data = df.iloc[0:len(df), 0]
y_data = random.sample(list(x_data),108)
X_train, X_test, y_train, y_test = train_test_split(x_data.values.reshape(-1,1), np.asarray(y_data).reshape(-1,1), random_state=0)
y_train = np.asarray(y_train).reshape(-1,len(y_train))
x_model = MLPRegressor(hidden_layer_sizes = (100,), activation='logistic', solver='lbfgs',random_state = 0).fit(x_train,y_train)
x_predicted = x_model.predict(start=x_test.index[0], end=x_test.index[-1])
plt.plot(x_train.index, x_train, label='Train')
plt.plot(x_test.index, x_test, label='Test')
plt.plot(x_predicted.index, x_predicted, label='Neural Network')
plt.legend(loc='best')
plt.title('Neural Network Prediction')
plt.show()