收藏

机器学习oneclass进行文本分类

2022-01-30  本文已影响0人  刘小白DOER

    今天实践一个bbc-text-oneclass-classificaiton,使用单样本训练然后预测文本进行分类,判断是否属于此类样本。oneclass在实际生产中是有应用场景的,负样本获取成本高,样本严重的不平衡、负类样本太过多样化等等,那么oneclass分类就排上用场了。

    整个算法分为五个部分。

1、Data Preparation

    数据集包含两个类型:category类型和text文本,一共2225行数据。

    数据集中 2225 没有空值,各个类别分布算是均匀,接下来就是使用511个sport样本进行单样本训练,然后预测全部的样本是否属于整个sport样本。

    目标sport样本类别数字化修改为1,其他类别数字化为-1。全部目标sport样本作为训练集,所有类别数据作为测试集。

2、Cleaning and Tokenization

    定义CleanTextTransformer类来清洗数据,将文本转为小写,同时将换行符替换为空格。

    定义STOPLIST和SYMBOLS,在分析文本时需要剔除这些无意义的文本。

    定义函数tokenizeText完成text文本筛选、转换和输出。

3、Feature Extraction

    使用HashingVectorizer哈希技巧向量化大文本向量,提取文本特征。

4、Train One-class classificaiton model

    使用OneClassSVM进行模型训练,使用训练好的模型在train训练集上再次预测验证,成功率为82%。

5、Predict one-class on test data    

    使用模型在测试集上执行预测,成功率为62%。

上一篇下一篇

猜你喜欢

热点阅读