plt.scatter
ожидает построить два набора данных одинаковой формы друг против друга. Если они не 1D, они будут сплющены. Нет смысла выравнивать X
в задаче машинного обучения.
Проверьте размеры X_train
и y_train
. Вы увидите, что они не совместимы. Это 2D-график, который вы делаете, вы можете наносить только один набор чисел против другого. X
- это матрица: каждая строка - это набор чисел.
Итак, вы можете сделать это:
import numpy as np
import matplotlib.pyplot as plt
x, y = np.random.random((422, 1)), np.random.random((422, 1))
plt.scatter(x, y)
Но вы не можете сделать это:
X, y = np.random.random((422, 10)), np.random.random((422, 1))
plt.scatter(X, y)
По сути, это то, что вы пытаетесь сделать. (Между прочим, я не думаю, что вы хотите транспонировать y
.)
Так что это должно работать для вас:
plt.scatter(diabetes_X_train[:, 0], diabetes_y_train)
Но это показывает только связь с одной особенностьюX
.
Если вы просто пытаетесь изучить данные, я рекомендую проверить seaborn.pairplot
. Это идеально подходит для такого рода вещей.