测试部分代码:
void test_lr() { srand(0); double learning_rate = 0.1; double n_epochs = 500; int train_N = 6; int test_N = 2; int n_in = 6; int n_out = 2; // int **train_X; // int **train_Y; // int **test_X; // double **test_Y; // train_X = new int*[train_N]; // train_Y = new int*[train_N]; // for(i=0; i
测试数据实际上是在训练集合中的,分别是第二个和第四个训练数据,也就是说,这是“封闭测试”。测试结果如下所示:
不过总感觉这个调用
“
LogisticRegression classifier(train_N, n_in, n_out);
”
不对。在线训练,是单个样本为单位的训练,train_N的值应该设置为1。将这一句改成
“LogisticRegression classifier(1, n_in, n_out);
”
运行结果如下:
与上面的结果差别不大。恐怕要到实际应用中检验了。