MCPcopy
hub / github.com/jindongwang/transferlearning / EasyTL

Function EasyTL

code/traditional/pyEasyTL/EasyTL.py:74–121  ·  view source on GitHub ↗
(Xs,Ys,Xt,Yt,intra_align="coral",dist="euclidean",lp="linear")

Source from the content-addressed store, hash-verified

72 return source_class_center, Dct
73
74def EasyTL(Xs,Ys,Xt,Yt,intra_align="coral",dist="euclidean",lp="linear"):
75# Inputs:
76# Xs : source data, ns * m
77# Ys : source label, ns * 1
78# Xt : target data, nt * m
79# Yt : target label, nt * 1
80# The following inputs are not necessary
81# intra_align : intra-domain alignment: coral(default)|gfk|pca|raw
82# dist : distance: Euclidean(default)|ma(Mahalanobis)|cosine|rbf
83# lp : linear(default)|binary
84
85# Outputs:
86# acc : final accuracy
87# y_pred : predictions for target domain
88
89# Reference:
90# Jindong Wang, Yiqiang Chen, Han Yu, Meiyu Huang, Qiang Yang.
91# Easy Transfer Learning By Exploiting Intra-domain Structures.
92# IEEE International Conference on Multimedia & Expo (ICME) 2019.
93
94 C = len(np.unique(Ys))
95 if C > np.max(Ys):
96 Ys += 1
97 Yt += 1
98
99 m = len(Yt)
100
101 if intra_align == "raw":
102 print('EasyTL using raw feature...')
103 elif intra_align == "pca":
104 print('EasyTL using PCA...')
105 print('Not implemented yet, using raw feature')
106 #Xs, Xt = PCA_map(Xs, Xt)
107 elif intra_align == "gfk":
108 print('EasyTL using GFK...')
109 print('Not implemented yet, using raw feature')
110 #Xs, Xt = GFK_map(Xs, Xt)
111 elif intra_align == "coral":
112 print('EasyTL using CORAL...')
113 Xs = CORAL_map(Xs, Xt)
114
115 _, Dct = get_class_center(Xs,Ys,Xt,dist)
116 print('Start intra-domain programming...')
117 Mcj = label_prop(C,m,Dct,lp)
118 y_pred = np.argmax(Mcj, axis=1) + 1
119 acc = np.mean(y_pred == Yt.flatten());
120
121 return acc, y_pred
122

Callers 3

demo_image.pyFile · 0.90

Calls 4

CORAL_mapFunction · 0.90
label_propFunction · 0.90
get_class_centerFunction · 0.85
meanMethod · 0.45

Tested by

no test coverage detected