sklearn.svm.NuSVR

class sklearn.svm.NuSVR(*, nu=0.5, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, tol=0.001, cache_size=200, verbose=False, max_iter=-1)

Nu支持向量回归。

与NuSVC相似,对于回归,使用参数nu来控制支持向量的数量。但是,与NuSVC不同的是,在NuSVC中nu替换了C,而在这里nu替换了参数epsilon of epsilon- svr。

该实现基于libsvm。

更多信息请参阅 用户指南.

参数 说明
nu 浮点数,默认=0.5
训练误差分数的上界和支持向量分数的下界。应该在区间(0,1)内。默认情况下取0.5。
C 浮点数,默认=1.0
误差项的惩罚系数C。
kernel {‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’}, 默认=’rbf’
指定算法中使用的内核类型。它必须是“linear”,“poly”,“rbf”,“sigmoid”,“precomputed”或者“callable”中的一个。如果没有给出,将使用“rbf”。如果给定了一个可调用函数,则用它来预先计算核矩阵。
degree 整数型,默认=3
多项式内核函数的阶数(“ poly”)。将被所有其他内核忽略。
gamma 浮点数或者{‘scale’, ‘auto’} , 默认=’scale’
系数包含‘rbf’, ‘poly’ 和‘sigmoid’ ,如果gamma='scale'(默认),则它使用1 / (n_features * X.var())作为gamma的值, 如果是auto,则使用1 / n_features。 在0.22版本有改动:默认的gamma从“auto”改为“scale”。
coef0 浮点数,默认=0.0
核函数中的独立项。它只在' poly '和' sigmoid '中有意义。
shrinking 布尔值,默认=True
是否使用缩小启发式,参见使用指南.
tol 浮点数,默认=1e-3
残差收敛条件。
cache_size 浮点数,默认=200
指定内核缓存的大小(以MB为单位)。
verbose 布尔值,默认=False
是否启用详细输出。请注意,此参数针对liblinear中运行每个进程时设置,如果启用,则可能无法在多线程上下文中正常工作。
max_iter 整数型,默认=-1
对求解器内的迭代进行硬性限制,或者为-1(无限制时)。
属性 说明
support_ 形如(n_SV,)的数组
支持向量的指标。
support_vectors_ 形如(n_SV, n_features)的数组
支持向量
dual_coef_ 形如(n_class-1, n_SV)的数组
决策函数中支持向量的系数。
coef_ 形如(1, n_features)的数组
分配给特征的权重(原始问题的系数),仅在线性内核的情况下可用。coef_是一个继承自raw_coef_的只读属性,它遵循liblinear的内部存储器布局。
intercept_ 形如(n_class * (n_class-1) / 2,)的数组
决策函数中的常量。

另见:

NuSVC

支持向量机,用于通过libsvm进行分类,并带有一个参数来控制支持向量的数量。

SVC

支持向量机使用libsvm进行分类。

参考文献:

LIBSVM: A Library for Support Vector Machines

示例:

>>> from sklearn.svm import NuSVR
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> import numpy as np
>>> n_samples, n_features = 105
>>> np.random.seed(0)
>>> y = np.random.randn(n_samples)
>>> X = np.random.randn(n_samples, n_features)
>>> regr = make_pipeline(StandardScaler(), NuSVR(C=1.0, nu=0.1))
>>> regr.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('nusvr', NuSVR(nu=0.1))])

方法:

fit(X, y[, sample_weight]) 根据给定的训练数据拟合支持向量机模型。
get_params([deep]) 获取这个估计器的参数。
predict(X) 在X中对样本进行分类
score(X, y[, sample_weight]) 返回给定测试数据和标签的平均精度。
set_params(**params) 设置这个估计器的参数。
__init__(*, nu=0.5, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, tol=0.001, cache_size=200, verbose=False, max_iter=-1)

源码

初始化self。请参阅help(type(self)获取准确的说明。

fit(X, y, sample_weight=None)

源码

根据给定的训练数据拟合SVM模型。

参数 说明
X 形如(n_samples, n_features) 或者 (n_samples, n_samples)的数组或者稀疏矩阵
训练向量,其中n_samples为样本数量,n_features为特征数量。对于kernel= " precomputed ", X的期望形状为(n_samples, n_samples)。
y 形如(n_samples,)的数组
目标值(分类中的类标签,回归中的实数)
sample_weight 形如(n_samples,)的数组,默认=None
样本的权重。每个样品重新定标C。较高的权重将使分类器更加注重这些样本点。
返回值 说明
self object

注:

如果X和y不是C-ordered,并且np.float64和X的连续数组不是scipy.sparse.csr_matrix,则可以复制X或y。

如果X是一个连续数组,则其他方法将不支持将稀疏矩阵作为输入。

get_params(deep=True)

源码

获取这个估计器的参数。

参数 说明
deep bool, default = True 如果为真,则将返回此估计量和作为估计量的所包含子对象的参数
返回值 说明
params mapping of string to any 参数名被映射至他们的值
predict(X)

源码

对X中的样本执行分类。

对于返回值为+1或-1的one-class模型

参数 说明
X 形如(n_samples, n_features) 或者 (n_samples_test, n_samples_train)的数组或者稀疏矩阵
对于内核=“precomputed”,X的预期形状为(n_samples_test,n_samples_train)。
返回值 说明
y_pred 形如(n_sample, )的数组
score(X, y, sample_weight=None)

源码

返回预测的决定系数R^2。

定义决定系数R^2为(1 - u/v),其中u为(y_true - y_pred) ** 2).sum()的残差平方和,v为(y_true - y_true.mean()) ** 2).sum()的平方和。最好的分数可能是1.0,同时它可能是负的(因为模型可以任意地更糟)。一个常数模型总是预测y的期望值,而不考虑输入特征,得到的R^2值为0.0。

参数 说明
X 形如 (n_samples, n_features)的数组
测试样本。对于某些估计器,这可能是一个预先计算的内核矩阵或一列通用对象,而不是形状为(n_samples, n_samples_fitting)的数组,其中n_samples_fitting是用于拟合估计器的样本数量。
y 形如(n_samples,) 或者 (n_samples, n_outputs)的数组
X中结果为真的标签
sample_weight 形如(n_samples,)的数组,默认=None
样本的权重
返回值 说明
score 浮点数
self.predict(X) wrt. y的R^2

注:

调用回归变量上的score时,使用的R2 score(0.23版本)中的multioutput='uniform_average'来保持与r2_score的默认值一致。这影响了所有多输出回归的score方法(除了 MultiOutputRegressor)。

set_params(**params)

该方法适用于简单估计器和嵌套对象(如管道)。后者具有形式为 <component>__<parameter>的参数,这样就可以更新嵌套对象的每个组件。

参数 说明
params 字典 估算器参数
返回值 说明
self object 估算器实例

sklearn.svm.NuSVR使用示例