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
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))
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))
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]))
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]))