| Algorithm 2: Supervised Feature Classification |
|
Input: Training data named X, training label named Y, test data named X_test Output: The predict result of X_test 1. kfold_data = StratifiedKFold (folds_num = 5) 2. misjudgedX = [] 3. misjudgedY = [] 4. for train_index, val_index in kfold_data.split(X, Y) 5. tra_x, val_x, tra_y, eval_y = X[train_index], X[val_index], Y[train_index], Y[val_index] 6. if len(misjudgedX) ! = 0 7. tra_x = vstack ([tra_x, misjudgedX]) 8. tra_y = hstack([tra_y, misjudgedY]) 9. end if 10. model = lightgbm.train(tra_x, tra_y) 11. val_pred = model.predict(val_x) 12. misjudgedX = val_x[argwhere(val_y ! = val_pred)] 13. misjudgedY = val_y[argwhere(val_y ! = val_pred)] 14. test_pred.append(model.predict(X_test)) 15. end for 16. final_pred = [] 17. for line in test_pred 18. final_pred.append(argmax(bincount(line))) 19. end for 20. return final_pred |