我试图对页面进行分类,特别是搜索页面,在文档中基于单词包、页面布局、是否包含表格、是否有粗体标题等。在此前提下,我为每个文档创建了一个pandas.DataFrame
,如下所示:
page totalCharCount matchesOfWordX matchesOfWordY hasFeaturesX hasFeaturesY hasTable score 0 0.0 608.0 0.0 2.0 0.0 0.0 0.0 0.0 1 1.0 3292.0 1.0 24.0 7.0 0.0 0.0 0.0 2 2.0 3302.0 0.0 15.0 1.0 0.0 1.0 0.0 3 3.0 26.0 0.0 0.0 0.0 1.0 1.0 1.0 4 4.0 1851.0 3.0 25.0 20.0 7.0 0.0 0.0 5 5.0 2159.0 0.0 27.0 6.0 0.0 0.0 0.0 6 6.0 1906.0 0.0 9.0 15.0 3.0 0.0 0.0 7 7.0 1825.0 0.0 24.0 9.0 0.0 0.0 0.0 8 8.0 2053.0 0.0 20.0 10.0 2.0 0.0 0.0 9 9.0 2082.0 2.0 16.0 3.0 2.0 0.0 0.0 10 10.0 2206.0 0.0 30.0 1.0 0.0 0.0 0.0 11 11.0 1746.0 3.0 31.0 3.0 0.0 0.0 0.0 12 12.0 1759.0 0.0 38.0 3.0 1.0 0.0 0.0 13 13.0 1790.0 0.0 21.0 0.0 0.0 0.0 0.0 14 14.0 1759.0 0.0 11.0 6.0 0.0 0.0 0.0 15 15.0 1539.0 0.0 20.0 3.0 0.0 0.0 0.0 16 16.0 1891.0 0.0 13.0 6.0 1.0 0.0 0.0 17 17.0 1101.0 0.0 4.0 0.0 1.0 0.0 0.0 18 18.0 2247.0 0.0 16.0 5.0 5.0 0.0 0.0 19 19.0 598.0 2.0 3.0 1.0 1.0 0.0 0.0 20 20.0 1014.0 2.0 1.0 16.0 3.0 0.0 0.0 21 21.0 337.0 1.0 2.0 1.0 1.0 0.0 0.0 22 22.0 258.0 0.0 0.0 0.0 0.0 0.0 0.0
我正在研究朴素的Bayes和SVM算法,但我不确定哪个更适合这个问题。变量是独立的。它们中的一些必须出现才能增加分数,而另一些则与相反的文档频率匹配,如totalCharCount
。
有什么帮助吗?
非常感谢!
一般来说,很难说什么方法最有效:我假设你有更多的数据,而问题很大程度上取决于数据。不过,还是有一些想法:
尽管您是说特性是独立的,但看起来}是相互依赖的。我认为有理由假设文档中的字符越多,匹配的可能就越多。这对天真的贝耶斯是一个强烈的信号。
totalCharCount
和{一个二元逻辑回归看起来更好,将是我的第一个候选人。一个建议是规范化
totalCharCount
特性,因为它的规模似乎比其他特性大得多。除非您有更多的类
1
的培训示例,否则您的数据是不平衡的。如果是这样,您很可能会进入constant prediction problem。一个可能的解决方案是使用weighted cross entropy损失函数。除了SVM classifier,还要考虑^{} 。这两种方法都能给出很好的准确度。
因为连续得分,我假设这是你的标签,这是一个回归问题。支持向量机对于分类问题更为常见。有很多可能的算法。逻辑回归在解决这类问题时很常见。在
编辑
既然你编辑了你的帖子,你的问题就变成了一个分类问题:-)
分类=您希望数据分类为布尔型(真、假)或多项式(大、中、小、非常小)的类
回归=连续值(0到1之间的所有实数)
现在,您可以尝试您的支持向量机,看看它是否适合您的数据。在
看看@Maxim的回答他有一些优点(平衡,缩放)
相关问题 更多 >
编程相关推荐