问题陈述有点像这样:
Given a website, we have to classify it into one of the two predefined classes (say whether its an e-commerce website or not?)
我们已经为此尝试了朴素贝叶斯算法,其中包括多种预处理技术(停用词删除、词干提取等)和适当的功能。
我们希望将准确度提高到 90 或更接近,但我们无法从这种方法中获得这一结果。
这里的问题是,在手动评估准确性时,我们会在网页上寻找一些标识符(例如结账按钮、商店/购物、 Paypal 等等),这些标识符有时会在我们的算法中丢失。
我们在想,如果我们对这些标识符太确定,为什么我们不创建一个基于规则的分类器,我们将根据一组规则对页面进行分类(将被编写为基于某些优先级)。
例如如果它包含商店/购物并具有结账按钮,那么它是一个电子商务页面。 还有许多类似的规则,按一定的优先顺序排列。
根据一些规则,我们也会访问网站的其他页面(目前,我们仅访问主页,这也是精度不高的原因)。
基于规则的方法我们将面临哪些潜在问题?或者这对我们的用例来说会更好?
使用复杂的算法(例如 FOIL、AQ
等)创建这些规则是个好主意吗?
最佳答案
The issue here is, while evaluating the accuracy manually, we look for a few identifiers on web page (e.g. Checkout button, Shop/Shopping,paypal and many more) which are sometimes missed in our algorithms.
那么为什么不将此信息包含在您的分类方案中呢?在 html 中找到付款/结帐按钮并不难,因此这些按钮的存在绝对应该是功能。一个好的分类器依赖于两件事——好的数据和好的特征。确保两者都有!
如果您必须执行基于规则的分类器,那么可以将其或多或少地视为决策树。如果您使用函数式编程语言,这很容易做到 - 基本上只是递归,直到到达端点,此时您会得到一个分类。
关于machine-learning - 使用基于规则的方法而不是适当的算法进行二元分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10503816/