我有一个PU学习任务,我在本文中找到了解决它的特殊算法:https://www.cs.uic.edu/~liub/publications/ICDM-03.pdf
使用两个 参数C +和C-来衡量正误差和 负面错误不同。
我认为我会在这个问题上使用现有的SVM求解器,不仅可以加快腿部工作,还可以确保最佳的时间复杂度,因为我的特征空间和样本数量都非常大(因此我希望使用LIBLINEAR)。
有没有办法指定上面的自定义丢失函数?
感谢您的帮助。
答案 0 :(得分:2)
LIBLINEAR' train'采用参数-wi weight:"权重调整不同类别的参数C"。它的实际用途(它需要一个数组?)仍然不清楚,即使在阅读README之后。 但 Sklearn的LinearSVC使用LIBLINEAR并提供参数:
class_weight :{dict,'balanced'},可选 将类i的参数C设置为SVC的class_weight [i] * C.如果没有给出,所有课程都应该有一个重量。 “平衡”模式使用y的值自动调整与输入数据中的类频率成反比的权重,如n_samples /(n_classes * np.bincount(y))
相当有用。