本文简要介绍python语言中 sklearn.svm.LinearSVC
的用法。
用法:
class sklearn.svm.LinearSVC(penalty='l2', loss='squared_hinge', *, dual=True, tol=0.0001, C=1.0, multi_class='ovr', fit_intercept=True, intercept_scaling=1, class_weight=None, verbose=0, random_state=None, max_iter=1000)
线性支持向量分类。
与参数 kernel='linear' 的 SVC 类似,但根据 liblinear 而不是 libsvm 实现,因此它在选择惩罚和损失函数方掩码有更大的灵活性,并且应该更好地扩展到大量样本。
此类支持密集和稀疏输入,并且多类支持根据one-vs-the-rest 方案处理。
在用户指南中阅读更多信息。
- penalty:{‘l1’, ‘l2’},默认='l2'
指定惩罚中使用的规范。 ‘l2’ 惩罚是 SVC 中使用的标准。 ‘l1’ 导致稀疏的
coef_
向量。- loss:{‘hinge’, ‘squared_hinge’},默认='squared_hinge'
指定损失函数。 ‘hinge’ 是标准 SVM 损失(例如由 SVC 类使用),而 ‘squared_hinge’ 是铰链损失的平方。不支持
penalty='l1'
和loss='hinge'
的组合。- dual:布尔,默认=真
选择算法来解决对偶或原始优化问题。当 n_samples > n_features 时首选 dual=False。
- tol:浮点数,默认=1e-4
停止标准的公差。
- C:浮点数,默认=1.0
正则化参数。正则化的强度与 C 成反比。必须严格为正。
- multi_class:{‘ovr’, ‘crammer_singer’},默认='ovr'
如果
y
包含两个以上类,则确定多类策略。"ovr"
训练 n_classes one-vs-rest 分类器,而"crammer_singer"
优化所有类的联合目标。虽然crammer_singer
从理论角度来看很有趣,因为它是一致的,但在实践中很少使用它,因为它很少会带来更好的准确性并且计算成本更高。如果选择"crammer_singer"
,则选项loss、penalty和dual将被忽略。- fit_intercept:布尔,默认=真
是否计算此模型的截距。如果设置为 false,则不会在计算中使用截距(即数据预计已经居中)。
- intercept_scaling:浮点数,默认=1
当 self.fit_intercept 为 True 时,实例向量 x 变为
[x, self.intercept_scaling]
,即将具有等于 intercept_scaling 的常数值的 “synthetic” 特征附加到实例向量。截距变为intercept_scaling * 合成特征权重 注意!合成特征权重像所有其他特征一样受到 l1/l2 正则化。为了减少正则化对合成特征权重(以及因此对截距)的影响,必须增加intercept_scaling。- class_weight:dict或‘balanced’,默认=无
对于 SVC,将第 i 类的参数 C 设置为
class_weight[i]*C
。如果没有给出,所有的类都应该有一个权重。 “balanced” 模式使用 y 的值自动调整与输入数据中的类频率成反比的权重,如n_samples / (n_classes * np.bincount(y))
。- verbose:整数,默认=0
启用详细输出。请注意,此设置利用了 liblinear 中的 per-process 运行时设置,如果启用,该设置可能无法在多线程上下文中正常工作。
- random_state:int、RandomState 实例或无,默认=无
控制伪随机数生成,以混洗双坐标下降的数据(如果
dual=True
)。当dual=False
时,LinearSVC
的底层实现不是随机的,并且random_state
对结果没有影响。传递 int 以在多个函数调用之间实现可重现的输出。请参阅术语表。- max_iter:整数,默认=1000
要运行的最大迭代次数。
- coef_:ndarray of shape (1, n_features) if n_classes == 2 else (n_classes, n_features)
分配给特征的权重(原始问题中的系数)。
coef_
是从raw_coef_
派生的只读属性,它遵循 liblinear 的内部存储器布局。- intercept_:ndarray 形状 (1,) if n_classes == 2 else (n_classes,)
决策函数中的常数。
- classes_:ndarray 形状 (n_classes,)
唯一的类标签。
- n_features_in_:int
拟合期间看到的特征数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。- n_iter_:int
在所有类中运行的最大迭代次数。
参数:
属性:
注意:
底层 C 实现使用随机数生成器在拟合模型时选择特征。因此,对于相同的输入数据,结果略有不同的情况并不少见。如果发生这种情况,请尝试使用较小的
tol
参数。底层实现,liblinear,对将导致内存复制的数据使用稀疏的内部表示。
在某些情况下,预测输出可能与独立 liblinear 的输出不匹配。请参阅叙述文档中与 liblinear 的区别。
参考:
例子:
>>> from sklearn.svm import LinearSVC >>> from sklearn.pipeline import make_pipeline >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.datasets import make_classification >>> X, y = make_classification(n_features=4, random_state=0) >>> clf = make_pipeline(StandardScaler(), ... LinearSVC(random_state=0, tol=1e-5)) >>> clf.fit(X, y) Pipeline(steps=[('standardscaler', StandardScaler()), ('linearsvc', LinearSVC(random_state=0, tol=1e-05))])
>>> print(clf.named_steps['linearsvc'].coef_) [[0.141... 0.526... 0.679... 0.493...]]
>>> print(clf.named_steps['linearsvc'].intercept_) [0.1693...] >>> print(clf.predict([[0, 0, 0, 0]])) [1]
相关用法
- Python sklearn LinearSVR用法及代码示例
- Python sklearn LinearDiscriminantAnalysis用法及代码示例
- Python sklearn LinearRegression用法及代码示例
- Python sklearn LarsCV用法及代码示例
- Python sklearn Lars用法及代码示例
- Python sklearn LocalOutlierFactor.kneighbors_graph用法及代码示例
- Python sklearn LeavePOut用法及代码示例
- Python sklearn Lasso用法及代码示例
- Python sklearn LabelPropagation用法及代码示例
- Python sklearn LassoLars用法及代码示例
- Python sklearn LeaveOneOut用法及代码示例
- Python sklearn LogisticRegression用法及代码示例
- Python sklearn LassoLarsIC用法及代码示例
- Python sklearn LocallyLinearEmbedding用法及代码示例
- Python sklearn LedoitWolf用法及代码示例
- Python sklearn LassoCV.path用法及代码示例
- Python sklearn LogisticRegressionCV用法及代码示例
- Python sklearn LassoCV用法及代码示例
- Python sklearn LabelSpreading用法及代码示例
- Python sklearn LabelEncoder用法及代码示例
- Python sklearn LocalOutlierFactor.kneighbors用法及代码示例
- Python sklearn LabelBinarizer用法及代码示例
- Python sklearn LassoLarsCV用法及代码示例
- Python sklearn LatentDirichletAllocation用法及代码示例
- Python sklearn Lasso.path用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.svm.LinearSVC。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。