Счет возвращается как нан, и я получаю следующую ошибку в функции оценки:
ValueError: операнды не могут быть переданы вместе с фигурами (25,) (75,)
data = np.loadtxt('data.csv', delimiter = ',')
x = data[:, 0:2]
y = data[:, 2]
from sklearn import model_selection
x_train, x_test, y_train, y_test = model_selection.train_test_split(x, y)
def fit(x_train, y_train):
m1 = ((x_train[:, 1] **2) * x_train[:, 0] * y_train - (x_train[:, 0] * x_train[:, 1]) * (x_train[:, 1] * y_train))/((x_train[:, 0] **2) * (x_train[:,1] **2) - (x_train[:, 0] * x_train[:, 1]) **2)
m2 = ((x_train[:, 0] **2) * x_train[:, 1] * y_train - (x_train[:, 1] * x_train[:, 0]) * (x_train[:, 0] * y_train))/((x_train[:, 1] **2) * (x_train[:,0] **2) - (x_train[:, 1] * x_train[:, 0]) **2)
return m1, m2, c
def predict(x, m1, m2, c):
return (x_train[:, 0] * m1) + (x_train[:, 1] * m2) + c
def score(y_truth, y_pred):
u = ((y_truth - y_pred) ** 2).sum()
v = ((y_truth - y_truth.mean()) ** 2).sum()
return 1 - u/v
m1, m2, c = fit(x_train, y_train)
y_train_pred = predict(x, m1, m2, c)
print("Train Score ", score(y_train, y_train_pred))
y_test_pred = predict(x, m1, m2, c)
print("Test Score ", score(y_test, y_test_pred))