Example #1
0
def baseline_experiments_synthetic():
    results = dict()
    data = load_data_set('synthetic')

    # base line
    clf = get_classifier('logistic')
    clf.fit(data.XS, data.yS)
    yP = clf.predict(data.XT)
    score = accuracy_score(yP, data.yT)
    results['logistic'] = score

    # transfer learning models.
    classifiers = ['tca', 'suba', 'rba', 'flda', 'tcpr']
    for classifier in classifiers:
        clf = get_classifier(classifier)
        clf.fit(data.XS, data.yS, data.XT)
        yP = clf.predict(data.XT)
        score = accuracy_score(yP, data.yT)
        results[classifier] = score

    return results
Example #2
0
  YT = dataset.yT

  print(np.unique(YS), np.unique(YT))

  # TODO: normalize the images.
  print('Shape of the tdata (S and T)', XS.shape, XT.shape)

  min_value = min(min(XS.shape), min(XT.shape))
  print('Min value {}'.format(min_value))

  print('------------------------- EXPERIMENTS -------------------------------')

  # -------------------------------------------
  results = []

  clf = get_classifier('logistic')
  clf.fit(XS, YS)
  yp = clf.predict(XT)
  results.append(accuracy_score(yp, YT))

  clf = get_classifier('svm')
  clf.fit(XS, YS)
  yp = clf.predict(XT)
  results.append(accuracy_score(yp, YT))

  clf = SubspaceAlignedClassifier(num_components=min_value, loss='logistic', l2=0.1)
  clf.fit(XS, YS, XT)
  yp = clf.predict(XT)
  results.append(accuracy_score(yp, YT))

  # clf = TransferComponentClassifier(loss='logistic', mu=1., num_components=300, kernel_type='linear')
Example #3
0
def baseline_experiments(data_set, source=None, target=None):

    data = load_data_set(name=data_set, source=source, target=target)

    XS = data.XS
    XT = data.XT

    m = XS.shape[0]

    X = np.vstack([XS, XT])
    X = X / np.max(X)

    XS = X[:m, :]
    XT = X[m:, :]

    random_state = 0

    nTL = 200

    pos_inds = np.where(data.yT > 0)[0]
    neg_inds = np.where(data.yT < 0)[0]

    np.random.seed(random_state)
    np.random.shuffle(pos_inds)

    np.random.seed(random_state)
    np.random.shuffle(neg_inds)

    pos_inds_l = pos_inds[:nTL]
    neg_inds_l = neg_inds[:nTL]

    pos_inds_u = pos_inds[nTL:]
    neg_inds_u = neg_inds[nTL:]

    inds_l = np.hstack([pos_inds_l, neg_inds_l])
    inds_u = np.hstack([pos_inds_u, neg_inds_u])

    _XS = np.vstack([XS, XT[inds_l, :]])
    _XT = XT[inds_u, :]

    _yS = np.hstack([data.yS, data.yT[inds_l]])
    _yT = data.yT[inds_u]

    print(_XS.shape, _XT.shape, _yS.shape, _yT.shape)

    # XS = XS/np.max(XS)
    # XT = XT/np.max(XT)

    # print(XS.sum(axis=1),XS.sum(axis=1).shape)
    # print(XS.sum(axis=0), XS.sum(axis=0).shape)

    # X_transform = TruncatedSVD(n_components=1000).fit_transform(X)

    yS = _yS
    yT = _yT
    XS = _XS
    XT = _XT

    #-------------------------------------------
    results = []

    clf = get_classifier('logistic')
    clf.fit(XS, yS)
    yp = clf.predict(XT)
    results.append(accuracy_score(yp, yT))

    clf = get_classifier('svm')
    clf.fit(XS, yS)
    yp = clf.predict(XT)
    results.append(accuracy_score(yp, yT))

    from extl.models.suba import SubspaceAlignedClassifier
    clf = SubspaceAlignedClassifier(num_components=1500,
                                    loss='logistic',
                                    l2=10)
    clf.fit(XS, yS, XT)
    yp = clf.predict(XT)
    results.append(accuracy_score(yp, yT))

    from extl.models.iw import ImportanceWeightedClassifier
    iwe = ['lr', 'nn', 'kmm']
    for _iwe in iwe:
        clf = ImportanceWeightedClassifier(iwe=_iwe, loss='logistic')
        clf.fit(XS, yS, XT)
        yp = clf.predict(XT)
        results.append(accuracy_score(yp, yT))

    for _iwe in iwe:
        clf = ImportanceWeightedClassifier(iwe=_iwe, loss='hinge')
        clf.fit(XS, yS, XT)
        yp = clf.predict(XT)
        results.append(accuracy_score(yp, yT))

    print(results)
    return results