非线性支持向量机分类与回归详解
1. 非线性SVM分类
线性SVM分类器在很多情况下高效且效果显著,但许多数据集并非线性可分。处理非线性数据集的一种方法是添加更多特征,如多项式特征,有时可使数据集变为线性可分。
1.1 添加多项式特征
对于一个一维数据集,若添加一个新特征 $x_2 = (x_1)^2$,可能使原本线性不可分的数据集变为线性可分。
使用Scikit - Learn实现这一思路的步骤如下:
1. 创建一个Pipeline,包含PolynomialFeatures转换器、StandardScaler和LinearSVC。
2. 以moons数据集为例,使用 make_moons() 函数生成数据集。
代码如下:
from sklearn.datasets import make_moons
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
X, y = make_moons(n_samples=100, noise=0.15)
polynomial_svm_clf = Pipeline([
("poly_features", PolynomialFeatures(degree=3)),
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



