xLearn 命令行工具使用指南
xLearn 是一个高效、易用的机器学习库,特别适合处理大规模稀疏数据。本文将详细介绍如何使用 xLearn 的命令行工具进行模型训练和预测。
快速入门
成功编译 xLearn 后,你会在构建目录中获得两个可执行文件:xlearn_train
和 xlearn_predict
。
基础训练与预测
- 训练模型:
./xlearn_train ./small_train.txt
默认使用逻辑回归(LR)算法训练10个epoch,训练完成后会生成模型文件small_train.txt.model
。
- 进行预测:
./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),仅供参考