Ожидаемый 2D-массив, вместо этого есть 1D-массив, какое-нибудь решение? - PullRequest
0 голосов
/ 28 декабря 2018

Я недавно использую машинное обучение и пытаюсь предсказать цену акций за 30 дней.

Это мой код:

import pandas as pd
import matplotlib.pyplot as plt
import pymysql as MySQLdb
import numpy as np 
import sqlalchemy
import datetime
from sklearn.linear_model import LinearRegression
from sklearn import preprocessing, svm
from sklearn.model_selection import train_test_split

forecast_out = int(30) 
df['Prediction'] = df[['LastPrice']].shift(-forecast_out)
df['Prediction'].fillna(0)
X = np.array(df['Prediction'].fillna(0))
X = preprocessing.scale(X)
X_forecast = X[-forecast_out:] 
X = X[:-forecast_out]
y = np.array(df['Prediction'].fillna(0))
y = y[:-forecast_out]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
X_train, X_test, y_train, y_test.reshape(-1,1)

# Training
clf = LinearRegression()
clf.fit(X_train,y_train)
# Testing
confidence = clf.score(X_test, y_test)
print("confidence: ", confidence)
forecast_prediction = clf.predict(X_forecast)
print(forecast_prediction)

Я получил эту ошибку:

ValueError: Ожидаемый двумерный массив, вместо него получен одномерный массив:

array=[-0.46939923 -0.47076913 -0.47004993 ... -0.42782272  3.07433019 -0.46573474].

Измените ваши данные, используя

array.reshape(-1, 1), если ваши данные имеют одну функцию
или
array.reshape(1, -1), если он содержит один образец.

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