xLearn 命令行工具使用指南

xLearn 命令行工具使用指南

xLearn 是一个高效、易用的机器学习库,特别适合处理大规模稀疏数据。本文将详细介绍如何使用 xLearn 的命令行工具进行模型训练和预测。

快速入门

成功编译 xLearn 后,你会在构建目录中获得两个可执行文件:xlearn_trainxlearn_predict

基础训练与预测

  1. 训练模型
./xlearn_train ./small_train.txt

默认使用逻辑回归(LR)算法训练10个epoch,训练完成后会生成模型文件small_train.txt.model

  1. 进行预测
./xlearn_predict ./small_test.txt ./small_train.txt.model

预测结果默认保存在small_test.txt.out文件中。

预测结果格式转换

xLearn 提供两种结果转换选项:

  • --sigmoid:将结果转换为(0,1)概率值
  • --sign:将结果转换为二分类标签(0或1)
# 转换为概率值
./xlearn_predict ./small_test.txt ./small_train.txt.model --sigmoid

# 转换为二分类标签
./xlearn_predict ./small_test.txt ./small_train.txt.model --sign

模型输出控制

自定义模型文件

使用-m选项指定模型文件名:

./xlearn_train ./small_train.txt -m custom_model_name

文本格式模型

使用-t选项保存为可读的文本格式:

./xlearn_train ./small_train.txt -t model.txt

不同算法的模型格式:

  • 线性模型:每行存储一个参数
  • FM模型:额外存储隐向量
  • FFM模型:按字段存储隐向量

算法选择

xLearn 支持三种算法:

  • 线性模型 (GLM)
  • 因子分解机 (FM)
  • 场感知因子分解机 (FFM)

使用-s参数选择算法:

# 分类任务
./xlearn_train ./small_train.txt -s 0  # 线性模型
./xlearn_train ./small_train.txt -s 1  # FM
./xlearn_train ./small_train.txt -s 2  # FFM

# 回归任务
./xlearn_train ./small_train.txt -s 3  # 线性模型
./xlearn_train ./small_train.txt -s 4  # FM
./xlearn_train ./small_train.txt -s 5  # FFM

验证与评估

验证集设置

使用-v指定验证集:

./xlearn_train ./small_train.txt -v ./small_test.txt

评估指标

使用-x指定评估指标:

  • 分类任务:acc(准确率)、prec(精确率)、f1(F1值)、auc(AUC)
  • 回归任务:mae、mape、rmsd(rmse)
# 分类示例
./xlearn_train ./small_train.txt -v ./small_test.txt -x auc

# 回归示例
./xlearn_train ./house_price_train.txt -s 3 -x rmse --cv

交叉验证

使用--cv启用交叉验证,-f指定折数:

./xlearn_train ./small_train.txt --cv          # 默认3折
./xlearn_train ./small_train.txt -f 5 --cv    # 5折交叉验证

优化方法选择

xLearn 支持三种优化方法:

  • sgd:随机梯度下降
  • adagrad:自适应梯度(默认)
  • ftrl:Follow-the-Regularized-Leader
./xlearn_train ./small_train.txt -p sgd
./xlearn_train ./small_train.txt -p adagrad
./xlearn_train ./small_train.txt -p ftrl

超参数调优

基础参数

  • 学习率(-r):默认0.2
  • 正则化(-b):默认L2正则,λ=0.00002
./xlearn_train ./small_train.txt -r 0.1 -b 0.001

FM/FFM特有参数

  • 隐向量维度(-k):默认4
  • 初始化缩放(-u):默认0.66
./xlearn_train ./small_train.txt -s 1 -k 8 -u 0.5

FTRL特有参数

./xlearn_train ./small_train.txt -p ftrl -alpha 0.002 -beta 0.8 -lambda_1 0.001 -lambda_2 1.0

训练控制

训练轮数与早停

  • -e:设置训练轮数
  • -sw:早停观察窗口大小
  • --dis-es:禁用早停
./xlearn_train ./small_train.txt -e 10 -v ./small_test.txt -sw 3

高级特性

无锁训练

xLearn 默认使用多线程无锁训练加速:

./xlearn_train ./small_train.txt -nthread 4  # 指定线程数
./xlearn_train ./small_train.txt --dis-lock-free  # 禁用无锁训练(确定性结果)

实例归一化

FM/FFM默认启用实例归一化,可使用--no-norm禁用:

./xlearn_train ./small_train.txt -s 1 --no-norm

静默训练

使用--quiet加速训练过程:

./xlearn_train ./small_train.txt --quiet

通过以上命令行选项,你可以灵活控制xLearn的训练和预测过程,针对不同场景优化模型性能。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸竹任

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值