以两个半半圆的形式分隔数据集
Separating a dataset in the form of two half semi circle
有两个半圆,宽度为 thk,内半径为 rad,由 sep 分隔,如图所示(红色为 -1,蓝色为 + 1)。顶部半圆的中心与底部半圆边缘的中间对齐。当 sep >= 0 时,此任务是线性可分的,而 sep < 0 时则不是。设置 rad = 10、thk = 5 和 sep = 5。然后统一生成2000个样例,也就是说每个class.
大约有1000个样例
问题描述图:
我使用逻辑回归将数据集分隔成半圆。
当sep为负时,逻辑回归的结果不是最好的。
我想给数据集添加一个新的非线性特征,之后逻辑回归会产生更好的结果。
你这里的问题是逻辑回归是一个具有线性边界的分类器。要解决这个问题,您可以使用一种叫做 kernel trick 的东西,它实际上可以让您将数据转换为线性可分的 space。
如果您选择 Radial Basis function (RBF) 这样的内核,您应该能够使数据集 100% 准确。
一种更简单的方法是将诸如 x^2y^2 之类的特征作为第 3 列添加到您的数据集,这可能会提供更好的结果,但通常在您的数据是椭圆体时使用。
有两个半圆,宽度为 thk,内半径为 rad,由 sep 分隔,如图所示(红色为 -1,蓝色为 + 1)。顶部半圆的中心与底部半圆边缘的中间对齐。当 sep >= 0 时,此任务是线性可分的,而 sep < 0 时则不是。设置 rad = 10、thk = 5 和 sep = 5。然后统一生成2000个样例,也就是说每个class.
大约有1000个样例问题描述图:
我使用逻辑回归将数据集分隔成半圆。 当sep为负时,逻辑回归的结果不是最好的。
我想给数据集添加一个新的非线性特征,之后逻辑回归会产生更好的结果。
你这里的问题是逻辑回归是一个具有线性边界的分类器。要解决这个问题,您可以使用一种叫做 kernel trick 的东西,它实际上可以让您将数据转换为线性可分的 space。
如果您选择 Radial Basis function (RBF) 这样的内核,您应该能够使数据集 100% 准确。
一种更简单的方法是将诸如 x^2y^2 之类的特征作为第 3 列添加到您的数据集,这可能会提供更好的结果,但通常在您的数据是椭圆体时使用。