Я строю модель машинного обучения для прогнозирования результатов Премьер-лиги (футбол / футбол), используя этот набор данных , который имеет такие функции, как домашние голы, выездные голы, удары по воротам и т. Д. Это мой кодв настоящее время после того, как я загрузил набор данных:
features = list(data.columns.values)
X, y = data[features], data.FTR #FTR stands for Full Time Result
print(X.shape)
-> (4940, 20)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=18)
nb = GaussianNB()
nb.fit(X_train, y_train)
y_nb = nb.predict(X_test)
Это дает очень хорошую точность (72%), но это потому, что когда я спрашиваю модель, чтобы предсказать результат, я даю ей доступ кстатистика (включая забитые голы) из матча, который я пытаюсь предсказать.Есть ли способ «спрятать» все функции, кроме домашней команды и команды гостей, и прогнозировать результаты таким образом?
Я пытался сделать это:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=18)
X_test = X_test.iloc[:, [0, 1]] #this only keeps the column with home team name and away team name
nb = GaussianNB()
nb.fit(X_train, y_train)
y_nb = nb.predict(X_test)
Однако этовыдает следующую ошибку:
ValueError: operands could not be broadcast together with shapes (988,2) (20,)