【深度之眼】【百面机器学习】SVM:聚类和回归

本文介绍了SVM在聚类和回归中的应用,重点讲解了如何使用sklearn的Pipeline进行数据处理流程的整合。Pipeline使得在训练和预测过程中可以直接调用fit和predict方法,并能结合grid search优化参数。同时,文章通过代码示例展示了线性SVM、非线性SVM(RBF核)以及SVM回归(SVR)的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【补充学习的知识点】Pipeline

参考学习笔记:Sklearn中Pipeline的使用

在下面我们会接触到一个新的调用方式,就是sklearn中给我提供的Pipeline,利用pipeline我们可以方便的减少代码量同时让机器学习的流程变得直观

  • Pipeline的作用:
  1. 直接调用fit和predict方法来对pipeline中的所有算法模型进行训练和预测。
  2. 可以结合grid search对参数进行选择.
  • 使用:
    (1)通过steps参数,设定数据处理流程。格式为(‘key’,‘value’),key是自己为这一step设定的名称,value是对应的处理类。最后通过list将这些step传入。前n-1个step中的类都必须有transform函数,最后一步可有可无,一般最后一步为模型。
    训练得到的是一个模型,可直接用来预测,预测时,数据会从step1开始进行转换,避免了模型用来预测的数据还要额外写代码实现。还可通过pipe.score(X,Y)得到这个模型在X训练集上的正确率。
pipe=Pipeline(steps=[('pca',PCA()),('svc',SVC())])
pipe.fit(iris.data,iris.target)
pipe.predict(iris.data)

(2)通过make_pipeline函数实现:它是Pipeline类的简单实现,只需传入每个step的类实例即可,不需自己命名,自动将类的小写设为该step的名:

p=make_pipeline(RobustScaler(), Lasso(alpha =0.0005, random_state=1))
p.set_params(lasso__alpha=0.0001) #将alpha从0.0005变成0.0001


代码

需要导入的包

import numpy as np
import matplotlib.pyplot as plt

from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.svm import LinearSVC, SVC
from sklearn.metrics import classification_report

绘图所用的函数

def plot_decision_boundary(model, axis):
    x0, x1 = np.meshgrid(
        np.linspace(axis[0], axis[1], int((axis[1] - axis[0]) * 100)).reshape(-1, 1),
        np.linspace(axis[2], axis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值