Ожидает векторов. В numpy векторы представляют собой вертикальные массивы.
[[1], [2]]
вместо [1, 2]
.
import numpy as np
from sklearn import linear_model
from sklearn.model_selection import train_test_split
def desired_marketing_expenditure(x_train_marketing_expenditure, y_train_units_sold, x_test_units_sold):
X_train, X_test, y_train, y_test = train_test_split(x_train_marketing_expenditure, y_train_units_sold, test_size=0.4, random_state=101)
lm = linear_model.LinearRegression()
lm.fit(X_train,y_train)
print(lm.intercept_)
print(lm.coef_)
#predictions = lm.predict(x_test_units_sold)
print(desired_marketing_expenditure([[300000], [200000], [400000], [300000], [100000]],[[60000], [50000], [90000], [80000], [30000]], [[60000]]))
[13333.33333333]
[[0.2]]
None
Примечание. Нельзя транспонировать одномерные массивы. np.array([1, 2, 3]).T
совпадает с np.array([1, 2, 3])
, потому что для транспонирования нужна вторая ось. Вы можете добавить дополнительную ось и транспонировать следующим образом: np.array([1, 2, 3])[np.newaxis].T
совпадает с np.array([[1], [2], [3]])
.