Ошибка графика с многомерными «X» и «y», которые имеют только одно измерение - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу построить модель, которая может предсказать, сколько велосипедов будет арендовано.Поэтому я использую DecisionTreeRegressor, но у меня есть проблема.Я не могу построить это, потому что «ValueError: x и y должны быть одинакового размера».Если я сравниваю X и Y с len (), я получаю одинаковую длину.Проблема в том, что мой X получил 10 столбцов, а у меня только 1 столбец.Вот почему я получаю эту ошибку.Я хочу получить следующую картину с моим сюжетом:

Picture i want to get with the code below

Любые идеи, как я могу исправить это?

X = df_day.drop(["date", "total_rides"], axis = 1)
y = df_day["total_rides"]
#X has something like 10 columns and y has only 1 column

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state = 43, test_size = 0.25)

dtc = DecisionTreeRegressor(max_depth = None)
dtc.fit(X_train, y_train)
#dtc.score(X_test, y_test)

#Prediction
y_pred2 = dtc.predict(X_test)
plt.scatter(X, y)
plt.plot(X_test, y_pred2)
plt.show()

1 Ответ

0 голосов
/ 30 ноября 2018

Как говорит ваша ошибка, вы можете строить только массивы одинакового размера (т. Е. Один столбец x и один столбец y или десять столбцов x и десять столбцов y, все с одинаковым количеством строк).Чтобы построить их все вместе, вы должны повторить значения y для каждого столбца.Наивно:

for i in range(X.shape[0]):
    plt.scatter(X[:,i], y)
    plt.plot(X_test[:,i], y_pred2)

plt.show()

Обратите внимание, что эти столбцы, вероятно, все в разных масштабах, и этот график, вероятно, будет совершенно бессмысленным.Но код должен показать, что вы хотите, чтобы вы хотели видеть.

...