我正在尝试找到一个由任意布尔公式表示的分类器。有可能这样做吗?我尝试使用linear
内核从sklearn.svm使用SVC,但是不确定是否正确,以及如何从学习的分类器中提取公式。
这是一个简单的数据集,具有4个变量x,y,z,w
(功能)和标签0 and 1
。并且所有带有x=1 or y=1
的数据都将带有标签1
,其他所有数据都带有标签0
。
x,y,z,w,label
0,0,0,0,0
0,0,0,1,0
0,0,1,0,1
0,0,1,1,1
0,1,0,0,0
0,1,0,1,0
0,1,1,0,1
0,1,1,1,1
1,0,0,0,1
1,0,0,1,1
1,0,1,0,1
1,0,1,1,1
1,1,0,0,1
1,1,0,1,1
1,1,1,0,1
1,1,1,1,1
对于此示例,我想提取由公式x=1 or z=1
表示的分类器。最终,我将获得由复杂的任意公式(例如(x= 1 or y=0) and (z=0) ...
)表示的更复杂的数据
答案 0 :(得分:0)
数据中的输入->输出关系是非线性,离散和不平滑的。在这种情况下,任何线性模型都将表现不佳。请尝试改用DecisionTreeClassifier,对于您的数据类型应该可以。 另外,您可以使用布尔可满足性求解器,但这仅在数据是确定性的且不模糊的情况下才有效。