核支持向量机

核支持向量机(SVM)

《Python机器学习基础教程》2.3.7 读书笔记。

虽然支持向量机可以同时用于分类和回归, 但是这里我们只介绍用于分类的情况,在SVC中实现。类似的概念也适用于支持向量回归,后者在SVR中实现。

1. 线性模型与非线性特征

线性模型在低维空间中可能非常受限,因此添加更多的特征让线性模型更加灵活。

# 加载make_blobs数据集
from sklearn.datasets import make_blobs
import mglearn
import matplotlib.pyplot as plt
X, y = make_blobs(centers=4, random_state=8)
y = y % 2   # 将y分成2类

mglearn.discrete_scatter(X[:, 0], X[:, 1], y)
plt.xlabel("Feature 0")
plt.ylabel("Feature 1")
plt.show()

简单看一下模拟数据集
用于分类的线性模型只能用一条直线来划分数据点, 对这个数据无法给出较好的结果。

from sklearn.svm import LinearSVC
linear_svm = LinearSVC().fit(X, y)

mglearn.plots.plot_2d_separator(linear_svm, X)
mglearn.discrete_scatter(X[:, 0], X[:, 1], y)
plt.xlabel("Feature 0")
plt.ylabel("Feature 1")
plt.show()

在这里插入图片描述
现在我们对输入进行扩展,比如说添加第二个特征的平方作为一个新特征。现在我们将数据点表示为三维点,而不是二维点。

# 添加第二个特征的平方,作为一个新特征
import numpy as np
X_new = np.hstack([X, X[:, 1:] ** 2])

from mpl_toolkits.mplot3d import Axes3D, axes3d
figure = plt.figure()
# 3D可视化
ax = Axes3D(figure, elev=-152, azim=-26)
#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值