liblinear简介

Posted bitcarmanlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了liblinear简介相关的知识,希望对你有一定的参考价值。

1.liblinear是什么

liblinear是国立台湾大学林智仁教授开发的一个工具包。

林教授个人官网
https://www.csie.ntu.edu.tw/~cjlin/

其中关于liblinear,官网首页是这么介绍的:

a library for large linear classification. 
It is very suitable for document classification. 
Version 1.0 released in April 2007.Current Version: 2.43, February 2021.

我将原来的一行分成为四部分,简单说来就是
1.这个库适合于大规模线性分类问题。
2.特意适合于文本分类问题。
3.第一个版本1.0发布于2007.4,目前版本2.43

2.liblinear的特点

看看官网上林教授对liblinear的介绍

LIBLINEAR is a linear classifier for data with millions of instances and features. It supports
L2-regularized classifiers
L2-loss linear SVM, L1-loss linear SVM, and logistic regression (LR)
L1-regularized classifiers (after version 1.4)
L2-loss linear SVM and logistic regression (LR)
L2-regularized support vector regression (after version 1.9)
L2-loss linear SVR and L1-loss linear SVR.
L2-regularized one-class support vector machines (after version 2.40)

Main features of LIBLINEAR include

Same data format as LIBSVM, our general-purpose SVM solver, and also similar usage
Multi-class classification: 1) one-vs-the rest, 2) Crammer & Singer
Cross validation for model evaulation
Automatic parameter selection
Probability estimates (logistic regression only)
Weights for unbalanced data
MATLAB/Octave, Java, Python, Ruby interfaces

通过上面介绍我们不难总结出来liblinear的优点
1.适应于大规模线性分类问题,可以满足上百万级别的样本与特征。
2.支持libsvm类型的数据格式,并且有基本相同的用法。
3.支持多分类。
4.支持corss validation进行模型选择。
5.自动选择参数。
6.在logistic regression中支持概率预测。
7.对不平衡数据集可以进行样本权重设置。
8.支持matlab/octave, java,python,ruby等语言接口。

3.liblinear与libsvm区别

相信凡是接触过机器学习的同学都知道libsvm。简单来说,libsvm是对svm算法的一套完整实现方法,主要是在libsvm中通过核函数来训练非线性svm模型(当然也可以是线性的)。

a simple and easy-to-use support vector machines tool for classification (C-SVC, nu-SVC), regression (epsilon-SVR, nu-SVR), and distribution estimation.
It includes a GUI for both classification and regression. Version 1.0 released in April 2000. Current Version: 3.25, April 2021.

根据林教授官网对libsvm的介绍,可以看出其第一个版本再2000年就已经实现,而且一直有更新维护,主要是用来训练svm模型。

而liblinear则是用来进行线性分类场的工具包,可以支持svm,也可以支持lr,但是不能定义核函数来进行非线性分类,两者的区别主要在这里。

以上是关于liblinear简介的主要内容,如果未能解决你的问题,请参考以下文章

为啥 liblinear 不能预测多数派?

ConvergenceWarning: Liblinear 收敛失败,增加迭代次数

LibSVM 和 LibLinear 有啥区别

liblinear和libsvm区别

Anaconda 安装第三方包 libsvm liblinear

liblinear 的 50% 准确率问题