我正在尝试建立一个分类模型,其中实例的分类不是基于其特征的某种线性组合,而是基于这些特征是否都在某些(未知)范围内。因此,例如,如果我有两个特征,并且我的实例(特征,后跟已知分类)是:
- (0, 5): 0
- (2, 7): 1
- (3, 2): 0
- (4, 4): 1
- (3, 9): 0
- (6, 6): 0
那么也许模型会知道第一个特征应该在 1 到 5 之间,第二个特征应该在 3 到 8 之间。(我只想要模型中的“and”;我不是在寻找特征的任何情况1 在 a 和 b 之间或特征 2 在 c 和 d 之间。)本质上,模型应该在特征空间中找到一些超矩形,所有边都平行于特征轴,其中 0 应该在矩形之外,1 应该在矩形之外在里面。(在示例数据中,数据点是可分离的;在我的实际问题中并非如此。本着 SVM 或逻辑回归的精神,模型应该尽其所能。)
我在这方面的第一次尝试涉及尝试使用由每个特征的两个 sigmoid 组成的假设函数进行最小二乘回归(一个“向前”,一个“向后”),参数化为来回滑动,所有这些都相乘. 也许我的 scipy-fu 很弱,但是在以上四个功能上,我开始遇到这种方法的收敛问题。有没有一些行之有效的方法来解决这种分类问题?(即使只是这类问题的名称也会有所帮助!)