LinearSVC 技术文档
LinearSVC 是基于 liblinear 库实现的线性支持向量分类器,在高维稀疏特征场景下训练速度远超核 SVM,适合 A 股大规模因子分类任务。
模型简介
LinearSVC 求解以下优化问题(L2 正则 + 平方合叶损失):
$$\min_{w,b} \frac{1}{2}w^Tw + C \sum_{i=1}^{n} \max(0, 1 - y_i(w^T\phi(x_i) + b))^2$$
使用 liblinear 求解器,比基于核函数的 SVM(SVC)在百万级样本上快几个数量级。支持 One-vs-Rest 多分类策略。
核心库论文:LIBLINEAR: A Library for Large Linear Classification — Fan et al., JMLR 9, 1871–1874, 2008
在 A 股量化策略中的应用
1. 高维因子分类(择时/选股)
当因子数量远大于样本数量时,LinearSVC 的高维分类能力突出。对 3900+ 股票的全因子矩阵进行分类,C 参数控制正则强度,penalty='l1' 实现因子稀疏化。
2. 多资产状态分类
将不同行业股票的收益区间(高涨/低涨/横盘/下跌)作为多分类目标,LinearSVC 使用 OvR 策略分别为每类训练一个分类器,输出最高置信度类别。
3. 文本因子分类
研报、公告的 TF-IDF 向量特征维度极高(数千维),LinearSVC 在稀疏高维文本特征上是最高效的分类器之一,可用于情感分类(正面/负面)辅助选股。
核心参数(金融应用推荐)
| 参数 | 说明 | 推荐值 |
|---|---|---|
C | 正则化强度倒数 | 0.001–10 |
penalty | 正则类型 | 'l2'(默认)/ 'l1' |
loss | 损失函数 | 'squared_hinge'(默认) |
max_iter | 最大迭代次数 | 1000–5000 |
class_weight | 类别权重 | 'balanced' |
multi_class | 多分类策略 | 'ovr' |
dual | 对偶/原始问题 | 样本 < 特征时用 False |
L1 参数组合限制
penalty='l1' 时必须同时设置 loss='squared_hinge' 且 dual=False,否则会抛出参数组合错误。
性能特点
优势:
- 比 RBF-SVM 在大数据上快几个数量级,适合全市场日频训练
penalty='l1'时产生稀疏权重,天然实现因子筛选- 内存效率高,适合稀疏文本/报表特征矩阵
劣势:
- 线性决策边界,不适合非线性因子关系
predict_proba需额外 Platt Scaling 校准,概率不如逻辑回归直接- 对特征尺度敏感,必须先做标准化
