项目介绍:PySS3
PySS3是一个基于Python的工具包,它实现了一种新型的、简单易懂的文本分类模型,称为SS3。这个模型不仅仅能够进行文本分类,还可以提供自我解释的能力,即它能够解释自己的分类理由。
SS3文本分类器
SS3是一个创新的监督机器学习模型,专注于文本分类。它最初被提出用于社交媒体上的早期抑郁症检测,取得了非常好的效果。在连续三届CLEF eRisk实验室的比赛中,SS3模型取得了第一和第二名的成绩。由于其白盒的特性,SS3可以作为一个更加可靠的文本分类模型,这对于那些分类结果会影响到人们生活的应用场景尤其重要。
此外,PySS3还包含SS3模型的各种变种,如t-SS3,它引入了动态n-grams,能够即时识别重要的变长单词n-grams。这种变化使得SS3在处理文本流时更为灵活和高效。
PySS3是什么?
PySS3提供了一组工具,帮助用户以更简单、互动和可视化的方式进行机器学习模型的开发。它的设计目标是让用户能够分析、监控和理解自己的模型,看到模型究竟学到了什么,为什么做出这样的预测。PySS3主要包括三个核心组件:SS3
类、Live_Test
类和Evaluation
类。
SS3类
SS3类实现了文本分类器,其API设计非常直观。例如,用户可以像使用sklearn
库的模型一样使用SS3:
from pyss3 import SS3
clf = SS3()
clf.fit(x_train, y_train)
y_pred = clf.predict(x_test)
这个类还提供一些实用的方法,例如extract_insight()
可以帮助用户提取和分析分类决策所涉及的文本片段,从而深入理解模型的预测依据。此外,classify_multilabel()
能够支持多标签分类。
Live_Test类
Live_Test类让用户可以互动地测试模型,并直观地看到模型分类决策背后的原因。只需一行代码,就能启动一个本地的交互工具,在浏览器中测试模型:
from pyss3.server import Live_Test
clf = SS3()
clf.fit(x_train, y_train)
Live_Test.run(clf, x_test, y_test)
用户可以在这个工具中实时测试模型,输入测试文本,观察模型对不同文本的学习和理解过程。
Evaluation类
Evaluation类为用户提供了多种实用的方法用于模型评估和超参数优化,例如测试、分层k折交叉验证、网格搜索等。这个类的重要特性在于它能够自动记录评估历史,帮助用户分析不同超参数设置下模型的表现,并选择最佳模型。
例如,可以进行网格搜索对超参数进行优化:
from pyss3.util import Evaluation
best_s, best_l, best_p, _ = Evaluation.grid_search(
clf, x_train, y_train,
s=[0.2, 0.32, 0.44, 0.56, 0.68, 0.8],
l=[0.1, 0.48, 0.86, 1.24, 1.62, 2],
p=[0.5, 0.8, 1.1, 1.4, 1.7, 2],
k_fold=4
)
之后可以使用plot
函数,以交互的3D图的形式可视化和分析网格搜索的结果。
安装
用户只需在终端中使用以下命令即可安装PySS3:
pip install pyss3
贡献
PySS3是一个开源项目,欢迎任何形式的贡献,无论是代码、错误报告、内容、数据、文档、设计、想法还是反馈,任何方式的帮助都能够使PySS3变得更好。