5.4 上手实践
本节我们使用Python语言实现核均值匹配[Sugiyama et al.,2007]算法。
KMM算法的核心是通过构建二次规划方程来求解源域和目标域样本的权重之比β向量。然后,利用KNN等分类器来实现分类。
KMM算法的代码如下所示,其核心是fit函数,通过利用cvxopt包可以实现二次规划。为使用方便,我们将其封装为一个类。
![](https://epubservercos.yuewen.com/FF452F/20266983801430906/epubprivate/OEBPS/Images/41089-00-089-1.jpg?sign=1739389756-wNlKQ0Q6MgsOeyhTeZMPtTSbCZOrn5LC-0-80b77540997de12759fb63f43d9aed91)
然后,我们利用KNN分类器可以得到目标域的分类结果。如图5.3所示,在Office-31数据集的amazon到webcam任务上的分类精度为50.57%,高于用KNN的48.18%。当然,通过调整超参数我们可以使结果变得更好。这说明了KMM方法的有效性。
![](https://epubservercos.yuewen.com/FF452F/20266983801430906/epubprivate/OEBPS/Images/41089-00-090-2.jpg?sign=1739389756-pNNMoevbHagMKNaXeymG4gEzp5JTg98P-0-11b603fb9c685ac14452aa334fd4738c)
图5.3 KMM方法运行结果