Ejemplo n.º 1
0
def makeSmartNData(features, targets, isregression, distance=False):
    """
    Some comment..
    :param features:
    :param targets:
    :param isregression:
    :return:
    """
    num_classes = targets.shape[1]
    targetscopy = targets.copy()
    nonbinarized = _inverse_binarize_multiclass(
        targetscopy, [i for i in range(num_classes)])
    digit_indices = [
        np.where(nonbinarized == i)[0] for i in range(num_classes)
    ]
    classcounter = {
        key: {
            "counter": 1,
            "max": len(digit_indices[key])
        }
        for key in range(0, num_classes)
    }
    combineddata = np.zeros((features.shape[0], (2 * features.shape[1])))
    targets2 = np.zeros((targets.shape[0], targets.shape[1]))
    combineddata[:, 0:features.shape[1]] = features

    sim_target = np.zeros((targets.shape[0], 1))
    positive = True
    targetind = 0
    for i in range(0, targets.shape[0]):
        if positive:
            # this time pick other part of pair from same class (positive pair)
            newdata, targetind = getSameClass(features, nonbinarized[i],
                                              digit_indices, num_classes,
                                              classcounter)
            combineddata[i, features.shape[1]:features.shape[1] * 2] = newdata
            if distance:
                sim_target[i] = 0
            else:
                sim_target[i] = 1
            positive = False
        else:
            # pick the other part of the pair from another
            # class (negative pair)
            newdata, targetind = getOtherClass(features, nonbinarized[i],
                                               digit_indices, num_classes,
                                               classcounter)
            combineddata[i, features.shape[1]:features.shape[1] * 2] = newdata
            if distance:
                sim_target[i] = 1
            else:
                sim_target[i] = 0
            positive = True
        targets2[i] = targets[targetind]


    return combineddata, sim_target, targets.copy(), \
        targets2
Ejemplo n.º 2
0
def check_binarized_results(y, classes, pos_label, neg_label, expected):
    for sparse_output in [True, False]:
        if ((pos_label == 0 or neg_label != 0) and sparse_output):
            assert_raises(ValueError,
                          label_binarize,
                          y,
                          classes,
                          neg_label=neg_label,
                          pos_label=pos_label,
                          sparse_output=sparse_output)
            continue

        # check label_binarize
        binarized = label_binarize(y,
                                   classes,
                                   neg_label=neg_label,
                                   pos_label=pos_label,
                                   sparse_output=sparse_output)
        assert_array_equal(toarray(binarized), expected)
        assert_equal(issparse(binarized), sparse_output)

        # check inverse
        y_type = type_of_target(y)
        if y_type == "multiclass":
            inversed = _inverse_binarize_multiclass(binarized, classes=classes)

        else:
            inversed = _inverse_binarize_thresholding(
                binarized,
                output_type=y_type,
                classes=classes,
                threshold=((neg_label + pos_label) / 2.))

        assert_array_equal(toarray(inversed), toarray(y))

        # Check label binarizer
        lb = LabelBinarizer(neg_label=neg_label,
                            pos_label=pos_label,
                            sparse_output=sparse_output)
        binarized = lb.fit_transform(y)
        assert_array_equal(toarray(binarized), expected)
        assert_equal(issparse(binarized), sparse_output)
        inverse_output = lb.inverse_transform(binarized)
        assert_array_equal(toarray(inverse_output), toarray(y))
        assert_equal(issparse(inverse_output), issparse(y))
Ejemplo n.º 3
0
def check_binarized_results(y, classes, pos_label, neg_label, expected):
    for sparse_output in [True, False]:
        if ((pos_label == 0 or neg_label != 0) and sparse_output):
            assert_raises(ValueError, label_binarize, y, classes,
                          neg_label=neg_label, pos_label=pos_label,
                          sparse_output=sparse_output)
            continue

        # check label_binarize
        binarized = label_binarize(y, classes, neg_label=neg_label,
                                   pos_label=pos_label,
                                   sparse_output=sparse_output)
        assert_array_equal(toarray(binarized), expected)
        assert_equal(issparse(binarized), sparse_output)

        # check inverse
        y_type = type_of_target(y)
        if y_type == "multiclass":
            inversed = _inverse_binarize_multiclass(binarized, classes=classes)

        else:
            inversed = _inverse_binarize_thresholding(binarized,
                                                      output_type=y_type,
                                                      classes=classes,
                                                      threshold=((neg_label +
                                                                 pos_label) /
                                                                 2.))

        assert_array_equal(toarray(inversed), toarray(y))

        # Check label binarizer
        lb = LabelBinarizer(neg_label=neg_label, pos_label=pos_label,
                            sparse_output=sparse_output)
        binarized = lb.fit_transform(y)
        assert_array_equal(toarray(binarized), expected)
        assert_equal(issparse(binarized), sparse_output)
        inverse_output = lb.inverse_transform(binarized)
        assert_array_equal(toarray(inverse_output), toarray(y))
        assert_equal(issparse(inverse_output), issparse(y))
Ejemplo n.º 4
0
def test_inverse_binarize_multiclass():
    got = _inverse_binarize_multiclass(csr_matrix([[0, 1, 0],
                                                   [-1, 0, -1],
                                                   [0, 0, 0]]),
                                       np.arange(3))
    assert_array_equal(got, np.array([1, 1, 0]))
Ejemplo n.º 5
0
def test_inverse_binarize_multiclass():
    got = _inverse_binarize_multiclass(csr_matrix([[0, 1, 0],
                                                   [-1, 0, -1],
                                                   [0, 0, 0]]),
                                       np.arange(3))
    assert_array_equal(got, np.array([1, 1, 0]))