这是文本数据中的特征选择代码集。 (关于功能选择,请参阅此处或此处)
当您在自然语言数据上使用机器学习指标时,功能选择非常重要。自然语言数据通常包含大量噪声信息,因此,如果您不处理任何功能选择,则机器学习指标会很弱。 (决策树或随机森林等算法有一些例外。它们在算法本身内具有特征选择度量)
当您观察文本数据时,功能选择也很有用。通过功能选择,您可以知道哪些功能确实有助于特定标签。
请访问Github上的项目页面。
如果您发现任何错误并将其报告给GitHub问题,我很高兴。
欢迎任何拉的要求。
此软件包为您提供一些功能选择指标。当前,此软件包支持以下功能选择方法
实际上,这种方法只是称为Scikit-Learn的TfidfTransformer 。
请参阅有关详细信息的Scikit-Learn文档。
PMI是通过功能(IE令牌)和类别(IE标签)之间的相关性计算得出的。具体而言,它可以制作跨表(或称为抗义务表),并计算其上的关节概率和边际概率。
要了解更多,请参阅参考
在Python World,NLTK和其他软件包也提供PMI。检查它们并根据您的偏好和用法选择。
SOA是从PMI改进的特征选择方法。当功能具有低单词频率时,PMI很弱。 SOA基于PMI计算,但是,它在如此低频率的特征上是可行的。此外,您可以在功能和类别之间获得反相关。
在此包装中,SOA公式来自以下纸张,
Saif Mohammad and Svetlana Kiritchenko, "Using Hashtags to Capture Fine Emotion Categories from Tweets", Computational Intelligence, 01/2014; 31(2).
SOA(w, e) = log_2frac{freq(w, e) * freq(neg{e})}{freq(e) * freq(w, neg{e})}
在哪里
BNS是用于二进制类数据的功能选择方法。有几种可用于二进制类数据的方法,例如信息增益(IG) ,卡方(CHI) ,优势比(赔率) 。
问题是当您在偏斜数据上执行功能选择时。对于此类偏斜的数据,这些方法很弱,但是, BNS仅对偏斜的数据可行。以下论文显示了BNS对于偏斜数据的可行性。
Lei Tang and Huan Liu, "Bias Analysis in Text Classification for Highly Skewed Data", 2005
或者
George Forman, "An Extensive Empirical Study of Feature Selection Metrics for Text Classification",Journal of Machine Learning Research 3 (2003) 1289-1305
python setup.py install
您可能会在运行此命令时看到错误消息,例如
We failed to install numpy automatically. Try installing numpy manually or Try anaconda distribution.
这是因为setup.py试图使用pip的issal numpy和scipy,但是失败了。在安装scikit-learn之前,我们需要Numpy和Scipy。
在这种情况下,您采取以下选择
numpy和scipyanaconda Python发行版。请访问他们的网站。 input_dict = {
"label_a" : [
[ "I" , "aa" , "aa" , "aa" , "aa" , "aa" ],
[ "bb" , "aa" , "aa" , "aa" , "aa" , "aa" ],
[ "I" , "aa" , "hero" , "some" , "ok" , "aa" ]
],
"label_b" : [
[ "bb" , "bb" , "bb" ],
[ "bb" , "bb" , "bb" ],
[ "hero" , "ok" , "bb" ],
[ "hero" , "cc" , "bb" ],
],
"label_c" : [
[ "cc" , "cc" , "cc" ],
[ "cc" , "cc" , "bb" ],
[ "xx" , "xx" , "cc" ],
[ "aa" , "xx" , "cc" ],
]
}
from DocumentFeatureSelection import interface
interface . run_feature_selection ( input_dict , method = 'pmi' , use_cython = True ). convert_score_matrix2score_record ()然后,你得到结果
[{ 'score' : 0.14976146817207336 , 'label' : 'label_c' , 'feature' : 'bb' , 'frequency' : 1.0 }, ...]在examples/
您可以使用Docker-Compose设置开发环境。
该命令使用Docker容器进行测试。
$ cd tests/
$ docker-compose build
$ docker-compose up