Я пытаюсь написать функцию, которая может прогнозировать результаты теста, используя некоторые входные данные (в «действительном») и основываясь на огромном наборе данных таких данных от тысяч других студентов («traindata»). Прогнозируемый результат должен быть значением в действительном [«исходе»] (который пока создается как пустой столбец valid["outcome"] =""
). Но это не работает, и я не могу понять, что не так. Он возвращает только 0 все время.
feature_cols = traindata.columns.drop("outcome")
dtrain = lgb.Dataset(traindata[feature_cols], label=traindata["outcome"])
dvalid = lgb.Dataset(valid[feature_cols], label=valid["outcome"])
param = {"num_leaves":64, "objective": "binary",
"metric": "auc", "seed": 7}
num_round = 1000
bst = lgb.train(param, dtrain, num_round, valid_sets=[dvalid],
early_stopping_rounds=20, verbose_eval=False)
result = bst.predict(valid[feature_cols])
print(valid["outcome"])