多分类svm代码python_python机器学习:用于多分类的线性模型

本文介绍了如何使用Python的sklearn库实现多分类SVM,通过“一对其余”方法将二分类SVM扩展到多类别问题。在示例中,数据集包含三个类别,每个类别由二维高斯分布生成。代码展示了如何训练模型,并可视化决策边界,解释了coef_和intercept_的含义。文章还讨论了线性模型的正则化参数、L1和L2正则化的选择以及其在大数据集上的优势和限制。
摘要由CSDN通过智能技术生成

许多线性分类模型只适用于二分类,不能轻易推广到多类别问题(除了logisitic回归)。将二分类算法推广到多分类算法的一种常见的方法是“一对其余”。在“一对其余”中对每个类别都学习一个二分类模型,将这个类别与所有其他类别尽量分开,这样就生成了类别个数一样多多的二分类。

在测试点上运行所有二分类器来进行预测,在对应类别上分数最高的分类器“胜出”,将这个类别标签返回作为预测结果。每个类别都对应一个二分类器,这样每个类别也就有一个系数(w)向量和一个截距(b)。

多分类logistic回归背后的数学与“一对其余”方法稍微有所不同。不过也是对每个类别都有一个系数向量和一个解决,也使用了相同的预测方法。

下面我们将“一对其余”方法应用在一个简单的三分类数据上。我们用到了一个二维数据及,每个类别的数据都是从一个高斯分布中蔡阳得出,代码如下:

import matplotlib.pyplot as plt

from sklearn.datasets import make_blobs

x, y = make_blobs(random_state=42) #导入数据集

#以下代码进行绘图

mglearn.discrete_scatter(x[:, 0], x[:, 1], y)

plt.xlabel('Feature 0')

plt.ylabel('Feature 1')

plt.legend(['Class 0', 'Class 1', 'Class 2'])

运行结果如下图所示:

包含三个类别的二维玩具集

现在,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值