sklearn中PolynomialFeatures多项式特征参数

PolynomialFeatures:多项式回归参数

PolynomialFeatures参数:

现在有(a,b)两个特征,使用degree=2的二次多项式则为(1,a, a^2, ab, b ,b^2)。
PolynomialFeatures主要有以下几个参数:

degree:度数,决定多项式的次数

interaction_only: 默认为False,字面意思就是只能交叉相乘,不能有a^2这种.

include_bias: 默认为True, 这个bias指的是多项式会自动包含1,设为False就没这个1了.

order:有"C" 和"F" 两个选项。官方写的是在密集情况(dense case)下的输出array的顺序,F可以加快操作但可能使得subsequent estimators变慢。

hinge损失函数:

在机器学习中,hinge loss是一种损失函数,它通常用于"maximum-margin"的分类任务中,如支持向量机。数学表达式为:

                                                L(y)=max(0,1-y *y_hat)

其中 y_hat表示预测输出,通常都是软结果(就是说输出不是0,1这种,可能是0.87。),y 表示正确的类别。

图像:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC #线性SVM模型;
from sklearn.datasets import load_iris


iris_data=load_iris()
print(iris_data["data"])
print("============================")
X=iris_data["data"][:,(2,3)] #取长度和宽度;
# y=iris_data["target"]
# print(y)
y=(iris_data["target"] == 2).astype(np.float64)

#建立线性的模型:
svm_clf=Pipeline([
    #标准化
    ("scaler",StandardScaler()),
    #svc 线性:
    ("linear_svc",LinearSVC(C=1,loss="hinge"))] #C是软间隔参数;防止过拟合的现象;
)

svm_clf.fit(X,y)
res=svm_clf.predict([[6.3,1.2]])
print("res:",res)
from sklearn.datasets import make_moons
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures,StandardScaler #多项式参数;;
from sklearn.svm import LinearSVC,LinearSVR
import warnings
warnings.filterwarnings("ignore")

X,y=make_moons(n_samples=100,noise=0.15)
nolinear_svm_clf=Pipeline([
    #多项式特征线性SVM分类器
    ("features",PolynomialFeatures(degree=3)), 
    ("scaler",StandardScaler()),
    ("svm_clf",LinearSVC(C=10,loss="hinge"))#loss="hinge";svm常用的损失函数;
])

nolinear_svm_clf.fit(X,y)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值