85、专利文本分类与聚类算法的创新研究

专利文本分类与聚类算法的创新研究

专利文本的时间变化特征

在专利文本分析中,有几个关键概念值得关注。“仅在测试中出现的词(Word only in test,WOT)”指的是仅出现在测试数据集中的词;“WOT频率总和(Sum of WOT frequencies,SWF)”是所有WOT的总频率;“WOT平均频率(Average frequency of WOTs,AFW)”则是所有WOT的平均频率。

通过对不同WOT数量的统计,发现了一个有趣的现象。随着训练数据和测试数据之间的时间间隔减小,WOT的数量减少,SWF的值也随之降低。这意味着随着时间推移,常用词的数量在增加,证实了专利文本具有时间变化的特征。以下是AFW随时间变化的情况:
| 年份 | 93 | 94 | 95 | 96 | 97 | 98 |
| — | — | — | — | — | — | — |
| AFW | 4.0 | 3.9 | 3.7 | 3.5 | 3.4 | 3.2 |

测试集中仅出现的词的平均频率约为3.6,而每个训练数据集中的平均词频约为925。这表明测试集中仅出现的词多为关键词,如特定领域的专业词汇。并且,测试集中仅出现的词的平均百分比为52%,远高于其频率0.21%,说明这些词是依赖于领域的词汇。同时,当训练集和测试集之间的时间间隔变小时,测试集中仅出现的词的频率会降低,这意味着较新的训练数据集包含了前几年数据集中未出现的常用词,即用词习惯随时间发生了变化。

这些专利的时间变化特征被作为一种先验知识应用于后续提出的任务分解方法中。

Min - Max模块化支持向量机(M3 - SVM)

M3 - SVM的工作流程主要包括三个步骤:任务分解、SVM训练和模块组合。
- 任务分解 :在训练M3 - SVM之前,一个K类问题应通过一对一策略分解为K(K - 1)/2个两类子问题。设Tij为两类分类问题的给定训练数据集:
[T_{ij} = { (X_{l}^{(i)}, + 1)} {l = 1}^{L {i}} \cup { (X_{l}^{(j)}, - 1)} {l = 1}^{L {j}}]
其中,(X_{l}^{(i)} \in X_{i})和(X_{l}^{(j)} \in X_{j})分别是属于类(C_{i})和(C_{j})的训练输入,(X_{i})是属于类(C_{i})的训练输入集,(L_{i})表示(X_{i})中的数据数量。

假设(X_{i})被划分为(N_{i})个子集:
[X_{ij} = { X_{l}^{(ij)}} {l = 1}^{L {i}^{(j)}}]
其中(1 \leq N_{i} \leq L_{i})且(\cup_{j = 1}^{N_{i}} X_{ij} = X_{i})。

划分后,每个两类子问题(T_{ij})可进一步分解为(N_{i} \times N_{j})个相对较小且更平衡的两类子问题:
[T_{ij}^{(u, v)} = { (X_{l}^{(iu)}, + 1)} {l = 1}^{L {i}^{(u)}} \cup { (X_{l}^{(jv)}, - 1)} {l = 1}^{L {j}^{(v)}}]
- SVM训练 :在学习阶段,每个两类子问题都可视为完全独立、互不通信的问题。因此,所有由上述公式定义的两类子问题都可以通过串行或大规模并行的方式高效学习。一个K类问题被分解为:
[\sum_{i = 1}^{K - 1} \sum_{j = i + 1}^{K} N_{i} \times N_{j}]
个两类子问题。每个两类子问题的训练数据数量约为(\lceil L_{i} / N_{i} \rceil + \lceil L_{j} / N_{j} \rceil),对于合理的(N_{i})和(N_{j}),每个两类子问题的规模远小于原始的K类问题。
- 模块组合 :当每个单独的SVM在相应的两类子问题上成功训练后,所有训练好的SVM根据最小化原则和最大化原则,通过MIN和MAX单元集成到一个M3 - SVM中。MIN单元的功能是从其多个输入中找到最小值,MAX单元则是找到最大值。

融入先验知识的任务分解

在机器学习中,“当一切都失败时,寻求额外的领域知识”是当前的座右铭。将先验知识融入学习系统可以显著提高其性能。在M3 - SVM的任务分解中,探索了两种先验知识:时间信息和层次结构信息。

以NTCIR专利数据库中对八个章节级别的类别进行分类的问题为例。假设将1993年至1997年的所有专利文本用作训练数据(S5),1998年至1999年的用作测试数据。若采用一对一策略,原始的八类专利分类问题将被分解为28个两类子问题。其中最大的子问题TG, H有811,072个训练数据,尽管这个数量比原始问题小很多,但仍然是大规模且难以解决的。

M3 - SVM相对于传统SVM的一个重要优势是,大规模的两类子问题可以根据上述公式进一步分解为一系列两类子问题。由于每个子集代表了整个训练数据集在特征空间中的局部分布,训练所有两类子问题后,组合结果能更准确地表示局部分布。为了将类别划分为代表局部分布的子集,利用了时间和层次结构的先验知识。因为已经验证,时间上接近的专利在特征空间的分布上也相近。同时,由人类专家分类到同一类别的专利申请在语义上自然相近,所以在特征空间中也应相近。基于此,首先按年份将同一章节类别的专利文本划分为一系列子集。例如,S5中属于“A”的所有训练数据按年份被划分为五个子集,分别包含30,583、31,316、28,357、25,444和22,475个专利。

实验设置与结果

为了评估将M3 - SVM与提出的任务分解方法应用于大规模专利分类的有效性,在NTCIR - 5日本专利数据库上进行了实验。
- 实验设置
- 采用分层文本分类模型,专注于对八个章节级别的类别进行分类。将多标签问题简化为单标签问题,仅考虑每个专利的主标签。
- 使用了四种分类方法:传统SVM和具有三种不同任务分解策略的M3 - SVM。实验在联想集群系统上进行,传统SVM的实验在胖节点上进行,M3 - SVM的实验在瘦节点上进行。具体设置如下:
1. 使用SVMlight训练具有线性核的SVM,这些SVM作为基线算法和M3 - SVM的组件分类器。
2. 将1998年至1999年的所有专利用作测试数据,并构建了五个不同的训练数据集,分别包含1997年、1996 - 1997年、1995 - 1997年、1994 - 1997年和1993 - 1997年发布的专利申请。
3. 使用(\chi_{avg})算法选择5000个特征,之前在2500到160,000个特征数量之间进行了测试,发现5000是能获得接近最佳性能的最小数量。
4. 对于随机分解策略,考虑到实验的准确性和时间成本,将子集大小设置为2000。
5. 引入了基于两种不同先验知识的任务分解方法。第一种仅使用时间信息,分类器称为YR - M3 - SVM;第二种使用时间信息和层次结构信息,分类器称为YC - M3 - SVM。
- 实验结果
- 从分类性能比较图中可以看出,基于先验知识的两种任务分解方法优于随机策略。YC - M3 - SVM取得了最佳准确性,优于传统SVM。这表明融入先验知识提高了M3 - SVM的性能。
- 当训练数据数量增加时,M3 - SVM的性能越来越好,超过了传统SVM,而传统SVM的性能则有所下降。
- M3 - SVM的训练时间可减少到传统SVM的10%,速度快很多。虽然M3 - SVM的响应时间比SVM长,但可以在2毫秒内对一个专利进行分类。
- 在参数调整方面,M3 - SVM对惩罚参数C非常稳健,因为两类子问题简单且几乎线性可分。而C对于传统SVM是一个重要参数,只有当C足够大时,传统SVM才能达到最佳性能,因此使用传统SVM会非常耗时。

下面是实验中不同分类器性能比较的mermaid流程图:

graph LR
    A[实验数据] --> B[传统SVM]
    A --> C[R - M3 - SVM]
    A --> D[YR - M3 - SVM]
    A --> E[YC - M3 - SVM]
    B --> F[Macro F1]
    B --> G[Micro F1]
    C --> F
    C --> G
    D --> F
    D --> G
    E --> F
    E --> G

综上所述,将先验知识融入M3 - SVM的任务分解方法在专利分类中表现出了明显的优势,不仅提高了分类性能,还降低了训练时间成本,这些结论可以推广到具有与专利数据相同特征的其他数据集。

专利文本分类与聚类算法的创新研究

现有分区聚类算法的局限性

在数据挖掘领域,聚类是一项关键应用。目前存在众多分区聚类算法,如K - 均值算法,这些算法旨在发现符合某些静态模型的聚类。然而,它们存在一些局限性:
- K - 均值算法 :于1967年提出,是第一个分区聚类算法。其步骤包括:随机从数据集中选择K个分区中心;将每个对象分配到最近的质心;重新确定K个分区质心,重复上述步骤直到质心收敛。但该算法的性能依赖于第一步随机选择的质心,通常会收敛到局部最优解,并且无法正确聚类非球形或大小不同的模式。
- GKA算法 :由Krishna和Murty提出,是一种将遗传算法和K - 均值算法相结合的混合算法。它采用K - 均值算法的第一步代替遗传算法原本的交叉算子,并使用基于距离的变异。虽然GKA的结果比K - 均值算法更稳定,但时间成本更高。
- KGA算法 :由Bandyopadhyay和Maulik开发,同样集成了K - 均值和遗传算法的随机操作。与GKA的区别在于操作顺序和选择质心作为染色体中的基因。KGA能显著提高性能,但当数据库规模较大时,时间复杂度也很高。

新型SDCC聚类算法

为了改善基于分区的聚类算法(如K - 均值)结果不稳定的问题,提出了一种新的分区聚类算法——SDCC(Stable Double - Centroid Clustering)。该算法利用双质心概念,能够识别非球形模式和大小不同的聚类,并产生稳定的结果。其具体步骤如下:
1. 第一次执行K - 均值 :此步骤的主要目的是为后续过程创建一组初始质心。SDCC根据输入参数K,在特征空间中随机选择一组质心,然后将数据集中的每个对象分配到最近的聚类(即质心),接着重新计算K个分区质心,重复该过程直到质心收敛。不过,由于K - 均值随机选择质心,这一步可能无法产生合适的聚类,后续步骤将用于增强聚类结果的稳定性。
2. 重新分离质心 :该阶段计算某个质心与其他所有质心之间的最近距离,并以该距离的四分之一作为搜索圆的半径,围绕该质心定义一个潜在的重新质心区域。在这个区域内识别出两个重新质心,这两个重新质心之间的距离大于区域内其他点之间的距离,并且它们与原质心的距离也大于区域内其他点与原质心的距离。通过这种方式,算法产生的质心数量是上一过程的两倍多。
3. 第二次执行K - 均值 :基于上一步得到的双质心,直接使用这些质心执行K - 均值算法,而不是随机选择质心。此时得到的聚类数量是上一步的两倍。
4. 合并阶段 :在第二次执行K - 均值后,需要将聚类数量缩减到期望的大小。由于每个重新质心是从原质心分离出来的,将从同一质心分离出来的两个重新质心所对应的对象合并为一个完整的聚类。不断合并距离最近的重新质心对所对应的对象,直到聚类数量达到期望的大小。

以下是SDCC算法的伪代码:

SDCC(DataSets,K)
    Initialization();
    ClusterSet = K_Means(DataSets,K);
    CentroidSet = ClusterSet.findCentroid();
    DoubleCentroidSet = CentroidSet.separateRecentroid();
    DoubleClusterSet = K_Means(DataSets,DoubleCentroidSet);
    mergeClusters(DoubleClusterSet,K);
END SDCC

其中, mergeClusters 函数的实现如下:

mergeClusters(DoubleClusterSet,K)
    WHILE(DoubleClusterSet.Size > K) DO
        CentroidSet = DoubleClusterSet.getCentroids();
        CentroidPair = CentroidSet.findTheShortestDistance();
        DoubleClusterSet.merge(CentroidPair);
    END WHILE
END mergeClusters
SDCC算法的实验效果

实验结果表明,SDCC算法在处理非球形模式和大小不同的聚类时表现出色,能够正确识别非球形模式,并且有效地减少了应用KGA和GKA算法时的长时间计算问题。在大多数情况下,SDCC算法产生的误差比K - 均值、KGA和GKA算法小得多。

下面是SDCC算法流程的mermaid流程图:

graph LR
    A[数据集] --> B[第一次K - 均值]
    B --> C[重新分离质心]
    C --> D[第二次K - 均值]
    D --> E[合并聚类]
    E --> F[最终聚类结果]
总结

本文介绍了专利文本的时间变化特征,并提出了将先验知识融入M3 - SVM任务分解的新方法。实验结果表明,该方法在专利分类中具有显著优势,能够提高分类性能并降低训练时间成本。同时,提出的SDCC聚类算法改善了基于分区的聚类算法结果不稳定的问题,在处理非球形模式和大小不同的聚类时表现良好。这些创新方法和算法为数据挖掘和机器学习领域提供了新的思路和解决方案,其结论可以推广到具有相似特征的其他数据集。未来,我们可以进一步探索如何更好地利用先验知识和优化聚类算法,以适应更多复杂的数据场景。

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样统计,通过模拟系统元件的故障修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值