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)
从结果的角度,LinearSVC和使用SVC且kernel传入linear,结果是一致的。但是由于LinearSVC只能计算线性核,而SVC可以计算任意核,所以,他们的底层计算方式不一样,这使得同样使用线性核的SVC,用LinearSVC的计算速度,要比用SVC且kernel传入linear参数,快很多。所以,整体而言,如果你决定使用线性SVM,就使用LinearSVC,但如果你要是用其他核的SVM,就只能使用SVC:)
参数: | penalty : 字符串,'l1'或'l2'(默认='l2') 指定惩罚中使用的规范。'l2'惩罚是SVC中使用的标准。'l1'导致 loss : string,'hinge'或'squared_hinge'(默认='squared_hinge') 指定损失函数。'hinge'是标准SVM损失(例如由SVC类使用),而'squared_hinge'是铰链损失的平方。 dual : bool,(默认= True) 选择算法以解决双重或原始优化问题。当n_samples> n_features时,首选dual = False。 tol : float,optional(默认值= 1e-4) 容忍停止标准。 C : float,可选(默认值= 1.0) 错误术语的惩罚参数C. multi_class : string,'ovr'或'crammer_singer'(默认='ovr') 如果y包含两个以上的类,则确定多类策略。 fit_intercept : boolean,optional(default = True) 是否计算此模型的截距。如果设置为false,则不会在计算中使用截距(即数据预计已经居中)。 intercept_scaling : float,optional(默认值= 1) 当self.fit_intercept为True时,实例向量x变为 ,即具有等于intercept_scaling的常量值的“合成”特征被附加到实例向量。截距变为intercept_scaling *合成特征权重注意!合成特征权重与所有其他特征一样经受l1 / l2正则化。为了减少正则化对合成特征权重(并因此对截距)的影响,必须增加intercept_scaling。 class_weight : {dict,'balanced'},可选 将类i的参数C设置 verbose : int,(默认= 0) 启用详细输出。请注意,此设置利用liblinear中的每进程运行时设置,如果启用,则可能无法在多线程上下文中正常工作。 random_state : int,RandomState实例或None,可选(默认=无) 伪随机数生成器的种子,用于在对双坐标下降(if max_iter : int,(默认值= 1000) 要运行的最大迭代次数。 |
---|