Я пытаюсь подражать очень простой примерPyplot не может построить регрессию
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2 # 0 to 15 point radiuses
print(type(x),type(y))
print('training samples ',len(x),len(y))
plt.scatter(x, y, c=colors, alpha=0.5)
plt.show()
это показывает
<class 'numpy.ndarray'> <class 'numpy.ndarray'>
training samples 50 50
как и ожидалось, и график показывает, как хорошо. Теперь я пытаюсь построить результаты GradientBoostingRegressor
в
base_regressor = GradientBoostingRegressor()
base_regressor.fit(X_train, y_train)
y_pred_base = base_regressor.predict(X_test)
print(type(X_train),type(y_train))
print('training samples ',len(X_train),len(y_train))
print(type(X_test),type(y_pred_base))
print('base samples ',len(X_test),len(y_pred_base))
plt.figure()
plt.scatter(X_train, y_train, c="k", label="training samples")
plt.plot(X_test, y_pred_base, c="g", label="n_estimators=1", linewidth=2)
plt.xlabel("data")
plt.ylabel("target")
plt.title("Base Regression")
plt.legend()
plt.show()
отметить, что X_train
, y_train
и X_test
являются все Numpy массивы. Для приведенного выше кода я получаю
<class 'numpy.ndarray'> <class 'numpy.ndarray'>
training samples 74067 74067
<class 'numpy.ndarray'> <class 'numpy.ndarray'>
base samples 166693 166693
но сюжет не появляется, и я получаю ошибку
ValueError: x and y must be the same size
на
plt.scatter(X_train, y_train, c="k", label="training samples")
, но, как видно на выходе, x
и y
имеют одинаковый размер и тип. Что я делаю не так?
вместо печати 'len (X_test)' вы могли бы напечатать 'X_test.shape'? – MMF
спасибо за это, теперь я получаю «учебные образцы (74067, 163) (74067,)» и «базовые образцы» (166693, 163) (166693,) ' – AbtPst
, что имеет смысл в отношении моего учебного измерения, у меня 163 столбца – AbtPst