PU learning 算法

这篇博客介绍了PU Learning算法的背景和最新发展。作者在做毕设时发现过去一年中出现了几篇关于该算法的优质文章,提供了几个链接供读者参考。博客还概述了算法的基本原理,并提及了对原始paper的公式推导过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.背景介绍

原本是02年提出的一个算法,但是到去年8月份,关于PU learning 的博客介绍都很少(可参考性很差),前几天做毕设,忽然欣喜地发现这半年里陆续出现了几篇关于该算法的文章,挺不错,和大家分享一下。

1.去年我只找到了一篇ACM期刊的论文解析,有个博客介绍得很不错,文章思路通俗易懂,是很好的入门样例

https://www.cnblogs.com/DjangoBlog/p/9035342.html

2.去年之前的一个很古老的介绍,可能是最早的介绍,可参考性一般:

https://blog.youkuaiyun.com/wangyiqi806643897/article/details/46341189

2.几个新增的介绍,

https://blog.youkuaiyun.com/qq_28743951/article/details/82765769

https://blog.youkuaiyun.com/baidu_33516129/article/details/83039622

https://blog.youkuaiyun.com/quiet_girl/article/details/85259086

二.算法原理<

### PU Learning简介 PU Learning(Positive and Unlabeled Learning)是一种机器学习方法,专门用于处理只有正样本和未标记样本的数据集情况。传统监督学习通常依赖于既有正样本又有负样本的标注数据来训练分类器,但在许多实际应用中获取足够的负标签可能非常困难或成本高昂。此时,PU Learning提供了一种有效的解决方案[^3]。 ### 应用领域 #### 风险控制 在金融行业特别是信贷审批过程中,由于恶意欺诈行为相对较少发生,因此很难收集到充足的反面案例作为训练素材。利用PU Learning技术可以从大量正常交易记录里挖掘潜在的风险模式并建立预测模型,从而帮助金融机构更精准地识别高危客户群体以及预防经济损失的发生[^1]。 #### 资源管理 对于通信网络而言,在多用户环境下实现高效能运作是一项挑战性的任务。借助强化学习算法如Q-Learning配合PU策略指导下的决策机制,则能够使次级使用者依据环境变化动态调整自身参数设置(比如频率选择),进而达到优化整个体系性能的目的[^4]。 ### 实现方式与技巧 当面对TSA这类特定情境时,尽管初始效果不佳,但经过适当特征加工及扩充原始数据库规模之后仍可显著改善其表现力。这表明即使某些看似不适合采用PU方案的问题也可能找到突破口,只要给予充分重视并对症下药即可克服障碍获得良好成果[^2]。 ```python import numpy as np from sklearn.semi_supervised import LabelSpreading def pu_learning_example(X, y_positive): # 假设y_positive只包含部分已知的正类样本索引 n_samples = X.shape[0] labels = -np.ones(n_samples) # 初始化所有实例为未标记(-1) labels[y_positive] = 1 # 已知正类置为1 model = LabelSpreading(kernel='knn', alpha=0.8) model.fit(X, labels) predicted_probabilities = model.transduction_ return predicted_probabilities ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值