예제 #1
0
            actual_loss = zero_one_loss(node.threshold, node, X, labels)
            if actual_loss < error_best:
                error_best = actual_loss
                best_tresh = -thresh
                best_feature = j
            i += 1

    return best_tresh, best_feature


best = np.inf
best_f = 0
best_t = 0
node = TreeNode(0, 0, None, None, None, None, 0, 0, 0, None)
for j in range(len(X[0])):
    node.feature = j
    node.threshold = 1

    #opt_t = gradient_descend(1, node, X, labels)
    opt_t = minimize(quadratically_loss,
                     0,
                     args=(node, X, labels),
                     method='BFGS',
                     tol=1e-04).x
    print("ottimizzo feature: ", j)
    err = quadratically_loss(opt_t, node, X, labels)
    if err < best:
        best = err
        best_f = j
        best_t = opt_t