在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')
# 将参数命令写作paramm = 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, 估计值

在python中使用liblinear相关推荐

  1. 如何在 Python 中开始机器学习?(小白必看)

    其实学习机器学习的最好方法是设计和完成小项目. Python 是一种流行且功能强大的解释型语言.与 R 不同,Python 是一种完整的语言和平台,可用于研究和开发以及开发生产系统. 还有很多模块和库 ...

  2. 如何优雅的在python中暂停死循环?

    死循环 有时候在工作中可能会遇到要一直执行某个功能的程序,这时候死循环就派上用途了,python中死循环的具体形式大致如下 while True:run_your_code() 结束死循环 通常我们结 ...

  3. 关于python中的dict和defaultdict

    dict 在Python中如果访问字典中不存在的键,会引发KeyError异常,所以一般当我们比如统计一句话的词频时候,我们总是使用这样的处理方式: strings = ('puppy', 'kitt ...

  4. python中的新式类与旧式类的一些基于descriptor的概念(上)

    python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...

  5. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  6. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  7. 逗号分隔的字符串转换为Python中的列表 split

    将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...

  8. [翻译]Python中yield的解释

    问题: Python中yield关键字的作用是什么?它做了什么? 例如,我想理解以下代码 def node._get_child_candidates(self, distance, min_dist ...

  9. 全面理解Python中的类型提示(Type Hints)

    众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...

最新文章

  1. 苦酒入喉心作痛,红酒入鹅鹅想哭——震惊!勒索病毒想哭靠wine感染了Ubuntu16.04...
  2. mvc html传参数乱码,SpringMVC Controller 接收页面传递的中文参数出现乱码
  3. C语言 main函数参数 argc,argv 用处,控制台应用程序模板2
  4. 深蓝学院【视觉SLAM十四讲】汇总
  5. protues 选项卡说明
  6. 51单片机流水灯从原理图到PCB转化
  7. 把项目部署在腾讯云服务器上详细内容教程
  8. itextsharp、Aspose.Words、Aspose.Cells联合使用
  9. bcdedit无法打开启动配置数据存储拒绝访问
  10. 2018年的第一篇文章(福利篇)
  11. 微信公众平台开发[5] —— 微信扫码支付介绍
  12. 2020年3大免费又好用的BI工具软件
  13. Win10的截图功能
  14. 互联网概述, 分组交换, 网络类别, 网络拓扑结构
  15. js中判断一个对象是否存在
  16. 实践指南-网页生成PDF
  17. 灵云工作室计算机,灵云全方位人工智能开放平台:AI赋能 共享产业未来
  18. 专利代理人考试1:备考
  19. feiq只能运行一个实例
  20. 云盘下载利器proxyee-down

热门文章

  1. 全国省(23个)、直辖市(4个)、自治区(5个)、特别行政区(2个)
  2. SSR 与当年的 JSP、PHP 有什么区别?
  3. Linux命令大全【中文手册】
  4. 激动人心,2022开放原子全球开源峰会报名火热开启
  5. codeblock主题颜色配置
  6. 软件安全测试-软件安全测试概述
  7. Linux 监控命令
  8. Android-自定义圆形ProgressBar加载
  9. RabbitMQ概念篇 vhost
  10. Python的几句经典口号