您的位置:首页 > 编程语言 > Python开发

在python中使用liblinear

2015-07-17 19:57 711 查看

在python中使用liblinear

1.安装

1.从http://www.csie.ntu.edu.tw/~cjlin/liblinear/ 下载压缩文件,解压

2.进入liblinear主目录,执行
make


3.进入
./python
的文件夹下,拷贝文件夹目录

4.将目录添加至python解释器的path中,
export  PYTHONPATH=/Users/username/Downloads/liblinear-2.01/python:$PAYTHONPATH


5.进入python, 运行
import liblinear
,无报错,即完成。

2.使用liblinearutil

liblinearutil模块相比liblinear模块不用考虑ctypes的问题,直接用python数据类型就可以。

from liblinearutil import *


常用函数

train()
:训练线性模型

predict()
:对testing数据做预测

svm_read_problem()
:读取libsvm格式的数据

load_model()
:load模型

save_model()
:将模型存储为文件

evaluations()
:评价预测结果

model = train(y, x[, 'training_options'])
# y是list/tuple类型,长度为l的训练标签向量
# x是list/tuple类型的训练实例,list中的每一个元素是list/tuple/dictory类型的feature向量
#以下写法的作用是相同的
model = train(prob[, 'training_options'])
model = train(prob, param)

# examples
y, x = svm_read_problem('../heart_scale')
# 读入libsvm格式的数据
prob = problem(y, x)
# 将y,x写作prob
param = parameter('-s 3 -c 5 -q')
# 将参数命令写作param

m = train(y, x, '-c 5')
m = train(prob, '-w1 5 -c 5')
m = train(prob, param)
# 进行训练

CV_ACC = train(y, x, '-v 3')
# -v 3 是指进行3-fold的交叉验证
# 返回的是交叉验证的准确率

best_C, best_rate = train(y, x, '-C -s 0')

p_labs, p_acc, p_vals = predict(y, x, m [,'predicting_options'])
# y是testing data的真实标签,用于计算准确率
# x是待预测样本
# p_labs: 预测出来的标签
# p_acc: tuple类型,包括准确率,MSE,Squared correlation coefficient(平方相关系数)
# p_vals: list, 直接由模型计算出来的值,没有转化成1,0的值,也可以看做是概率估计值

(ACC, MSE, SCC) = evaluations(ty, pv)
# ty: list, 真实值
# pv: list, 估计值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息