描述
LIBLINEAR 是一个强大而高效的 C/C++ 库,专为大规模线性分类和回归任务而设计。它特别适用于包含数百万实例和特征的数据集,是计算效率至关重要的应用的理想选择。该库支持一系列 L1 和 L2 正则化的分类器,包括线性支持向量机 (SVM) 和逻辑回归 (LR)。对于 L1 正则化分类器,它支持线性 SVM 和逻辑回归。自 1.9 版本起,它还包含了 L2 正则化的支持向量回归 (SVR),支持 L2 损失和 L1 损失,并且自 2.40 版本起,支持 L2 正则化的单类支持向量机。
阅读更多
LIBLINEAR 的主要特点包括其与通用 SVM 求解器 LIBSVM 的数据格式和使用模式兼容。它通过一对多策略和 Crammer & Singer 方法为多类分类提供强大的支持。在模型评估和选择方面,LIBLINEAR 提供交叉验证功能和自动参数选择。它还可以为逻辑回归模型提供概率估计,并允许对不平衡数据进行加权以提高在不平衡数据集上的性能。
LIBLINEAR 功能多样,为 MATLAB、Octave、Java、Python 和 Ruby 等流行编程语言提供了接口。通过 Python 的 pip 和 C++ 的 vcpkg 等包管理器可以简化安装。该库因其速度而闻名,曾赢得 ICML 2008 大规模学习挑战赛(线性 SVM 赛道)的冠军,并被用于 KDD Cup 2010 的获奖解决方案。它在文档分类等应用中尤其有效,这些应用中线性模型与非线性模型性能相当,但训练时间大大缩短。
该库正在积极维护中,最新版本侧重于改进安装流程、修复接口问题以及增强求解器性能。例如,2.42 版本在双 CD 求解器达到迭代限制时引入了直接切换到原始牛顿求解器,2.43 版本增加了对通过 PyPI 安装 Python 接口的支持。最新发布的 2.50 版本包含了用于构建 wheel 的更新设置以及 Python 接口的微小修复。LIBLINEAR 是一个开源项目,鼓励社区贡献和开发。
- 类别机器学习与数据科学
- 定价模式开源
- 部署自托管
- 平台Windows, Linux, macOS
LIBLINEAR的核心功能
支持 L2 正则化线性 SVM、L1 损失线性 SVM 和逻辑回归
包含 L1 正则化线性 SVM 和逻辑回归(v1.4 后)
提供 L2 正则化支持向量回归 (SVR),支持 L2 和 L1 损失(v1.9 后)
实现 L2 正则化单类支持向量机(v2.40 后)
使用与 LIBSVM 相同的数据格式和类似用法
支持使用一对多策略和 Crammer & Singer 方法进行多类分类
提供交叉验证用于模型评估
具备自动参数选择功能
能够为逻辑回归生成概率估计
允许对不平衡数据进行加权
提供 MATLAB、Octave、Java、Python 和 Ruby 接口
支持通过 pip 和 vcpkg 等包管理器进行安装
支持多核处理,在共享内存系统上显著加快训练速度
LIBLINEAR入门
安装:通过包管理器安装(例如,Python 使用 `pip install -U liblinear-official`,或为 C++ 使用 vcpkg)。
数据准备:按照 LIBLINEAR 的规范格式化您的数据,类似于 LIBSVM。
模型训练:使用命令行工具 `train` 或提供的接口来训练线性分类器或回归器。
参数调优:利用交叉验证和自动参数选择功能来寻找最优超参数。
预测:使用训练好的模型对新数据实例进行预测。
集成:使用可用的语言接口(Python、Java、MATLAB 等)将 LIBLINEAR 集成到您的应用程序中。
LIBLINEAR的使用案例
- 文档分类
- 大规模回归
- 垃圾邮件检测
- 图像特征分类
- 推荐系统
- 生物信息学



