Skip to main content
. 2019 Feb 23;19(4):947. doi: 10.3390/s19040947
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