[sklearn]三种方式实现PolynomialSVC

本文主要参考了两个博客,首先,我参考了https://blog.csdn.net/lanchunhui/article/details/50521648当中对sklearn中pipeline机制的讲解,具体如图1
图1 sklearn当中对pipeline机制的介绍
其次,我的代码部分主要参考了https://blog.csdn.net/weixin_39881922/article/details/80251055当中绝大部分的代码及思想,我的贡献仅仅是将原文作者pipeline当中的操作拆分成单步操作,以让读者更好地理解多项式核是如何作用在LinearSVM当中以及PolynormialSVC的实现机制,代码如下:

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.preprocessing import PolynomialFeatures, StandardScaler
from sklearn.svm import LinearSVC
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
#由于原数据集太过规整,需要加上随机噪声,实质是增加数据标准差
x,y=datasets.make_moons(noise=0.15,random_state=666)

#方法一:拆分成单步的PolynomialSVC
pl = PolynomialFeatures(degree=3)
poly_f = pl.fit_transform(x)
standardScaler=StandardScaler()
standardScaler.fit(poly_f)
f_standard = standardScaler.transform(poly_f)

poly_svc_single_step = LinearSVC(C=10000)
poly_svc_single_step.fit(f_standard, y)

#方法二:采用pipeline封装方法一的过程
def PolynomialSVC_pipeline(d, C):
    '''
    :param d:阶数
    :param C:正则化常数
    :return:一个Pipeline实例
    '''
    return Pipeline([
        ('poly', PolynomialFeatures(degree=d)),
        ('std_scaler', StandardScaler()),
        ('linerSVC', LinearSVC(C=C)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值