一、Introduction
机器学习中的有一个利器,广泛用于Kaggle或类似的数据比赛。
xlearn的优势:
- 1.通用性好,包括主流的算法(lr, fm, ffm 等),用户不用再切换于不同软件之间
- 2.性能好,测试 xLearn 可以比 libfm 快13倍,比 libffm 和 liblinear 快5倍
- 3.易用性和灵活性,xLearn 提供简单的 python 接口,并且集合了机器学习比赛中许多有用的功能
- 4.可扩展性好。xLearn 提供 out-of-core 计算,利用外存计算可以在单机处理 1TB 数据
二、xlearn安装:
目前xlearn只支持,Linux和Mac,Windows用户可能要等等了。以下操作在Ubuntu系统进行。
2.1安装GCC(或Clang)和CMake:
建议安装GCC,Clang下载文件大,而且安装过程出现问题,便直接安装的GCC。
安装gcc
sudo apt-get install build-essential
测试是否安装成功:gcc --version
出现以下界面代表安装成功:
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
安装cmake
我实在不明白为什么要下载文件,等等那么麻烦。一行搞定。
sudo apt-get install cmake
测试是否安装成功:cmake --version
出现以下界面代表安装成功:
cmake version 3.5.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
2.2 安装xlearn:
sudo pip install xlearn
这个地方注意下,如果安装了Anaconda,确认xlearn是否安装在你所运行的Anaconda的虚拟环境中。找到安装包的位置可以查看下,如果显示安装成功,却不能import xlearn
,八成是这个问题。
三、xlearn实战:
简单实战,每一行都有详细的注释。主要是简单学会使用模型,并没有对特征过多分析。
3.1 快速入门
1 | import xlearn as xl |
3.2 更进一步:
1 | # 选择不同的机器学习算法 |
3.3 与Sklearn相结合
建议利用sklearn接口,众多sklearn的功能都能使用。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 调用Sklearn的API
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris_data = load_iris()
X = iris_data['data']
y = iris_data['target' == 2]
X_train,X_test,y_train, y_test = train_test_split(X,y,test_size=0.3,random_state=0)
linear_model = xl.LRModel(task='binary',init=0.1,epoch=10,lr=0.1,reg_lambda=1.0,opt='sgd')
linear_model.fit(X_train,y_train,eval_set=[X_test, y_test],is_lock_free=False)
y_pred = linear_model.predict(X_test)
参考资料:
2.xlearn官网