使用SVM构建非线性分类器
SVM提供了多种选项来构建非线性分类器. 我们需要使用各种内核构建一个非线性分类器. 为了简单起见, 让我们在这里考虑两种情况.当我们想要表示两组点之间的弯曲边界时, 我们可以使用多项式函数或径向基函数来做到这一点.
怎么做...?
- 对于第一种情况, 让我们使用多项式内核构建非线性分类器. 在同一个Python文件中, 搜索以下行:
params = {'kernel': 'linear'}
# 修改上一行为下面这一行
params = {'kernel': 'poly', 'degree': 3}
这意味着我们使用度数为3的多项式函数. 如果增加度, 这意味着我们允许多项式为曲线. 然而, 弯曲在一定意义上是成本的, 因为它需要更多的时间来训练, 因为它的计算成本更高.
- 运行修改后的代码显示的结果如下:
- 同时, 命令行还会看到如下信息:
- 再次更改参数:
params = {'kernel': 'poly', 'degree': 3}
# 变更为下面一行
params = {'kernel': 'rbf'}
- 运行结果如下:
- 命令行显示如下内容: