VowPal Wabbit Python包
vowpalwabbit的Python项目详细描述
wabbit是一个用于在线学习的快速机器学习库,这是项目的python包装器。
安装这个包将在本地构建vowpal wabbit,以便在python中显式使用,它不会创建命令行版本 该工具(或影响任何先前存在的命令行安装)。 要安装命令行版本,请参见项目主页:https://github.com/VowpalWabbit/vowpal_wabbit
pypi vowpalwabbit包的版本对应于将要使用的github repo中代码的标记版本 在建造和安装期间。 如果需要对代码进行本地更改并重新生成python绑定,请确保pip uninstall vowpalwabbit,然后重新生成 使用下面的本地repo安装说明。
安装
来自PYPI:
Linux/Mac操作系统:
$ pip install vowpalwabbit
窗口:
> pip install --global-option="--vcpkg-root=path\to\vcpkg" vowpalwabbit
来自本地回购(进行修改时有用):
# Dependencies $ sudo apt install libboost-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev libboost-math-dev libboost-test-dev libboost-python-dev zlib1g-dev cmake # Build and install package $ python setup.py install
用法
您可以直接这样使用python包装器:
>>>fromvowpalwabbitimportpyvw>>>vw=pyvw.vw(quiet=True)>>>ex=vw.example('1 | a b c')>>>vw.learn(ex)>>>vw.predict(ex)
或者您可以使用附带的scikit学习界面,如下所示:
>>>importnumpyasnp>>>fromsklearnimportdatasets>>>fromsklearn.model_selectionimporttrain_test_split>>>fromvowpalwabbit.sklearn_vwimportVWClassifier>>>>>># generate some data>>>X,y=datasets.make_hastie_10_2(n_samples=10000,random_state=1)>>>X=X.astype(np.float32)>>>>>># split train and test set>>>X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=256)>>>>>># build model>>>model=VWClassifier()>>>model.fit(X_train,y_train)>>>>>># predict model>>>y_pred=model.predict(X_test)>>>>>># evaluate model>>>model.score(X_train,y_train)>>>model.score(X_test,y_test)
故障排除
安装失败的一些常见原因是由于在构建vowpal wabbit时缺少或不匹配的依赖项。 确保您的系统上安装了boost和boost python。
对于ubuntu/debian/mint
$ apt install libboost-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev libboost-math-dev libboost-test-dev libboost-python-dev zlib1g-dev cmake
对于Mac OSX
$ brew install cmake $ brew install boost #If you want to build with python 2 support brew install boost-python #If you want to build with python 3 support brew install boost-python3
对于Windows
- Install vcpkg
- Run
> vcpkg --triplet x64-windows install zlib boost-system boost-program-options boost-test boost-align boost-foreach boost-python boost-math boost-thread python3 boost-python
在Anaconda环境下(在OSX或Linux上)安装VowPal Wabbit可以使用以下步骤:
$ git clone https://github.com/VowpalWabbit/vowpal_wabbit.git # create conda environment if necessary $ conda create -n vowpalwabbit $ source activate vowpalwabbit # install necessary boost dependencies $ conda install -y -c anaconda boost $ pip install -e vowpal_wabbit/python
用于ubuntu 16.04 lts上的python3:ubuntu 16.04默认为boost的旧的定制版本。因此,boost_python库名称不遵循office boost发行版为boost_python库采用的标准命名约定。 在这种情况下,您可能需要手动创建相关的符号链接。python 3.5的示例命令如下:
$ cd /usr/lib/x86_64-linux-gnu/
$ sudo ln -s libboost_python-py35.so libboost_python3.so
$ sudo ln -s libboost_python-py35.a libboost_python3.a
开发
欢迎对vowpal wabbit的python包装器进行改进。
- 检查打开的issues或创建一个来讨论功能想法或错误。
- 分叉github上的repo并对master分支(或master的新分支)进行更改。
- 在python/tests文件夹中编写一个测试,显示错误已修复或功能正常(建议使用pytest)。
- 确保包在所有支持的环境下安装并测试通过(这将自动调用tox)。
- 发送请求。
可以使用setup.py运行测试:
$ python setup.py test
目录结构:
- python:这就是c++扩展的生命所在
- python/vowpalwabbit:这是python包装器代码和实用程序的主目录
- python/示例:示例python代码和jupyter笔记本来演示功能
- python/tests:包含python代码的所有测试
注意:分布式包中不包括示例和测试目录,它们仅用于开发目的。
Windows的实验构建
主项目experimental Windows CMake build上的扩展。
注意:如果在vcpkg中安装多个python版本时试图在vcpkg中安装boost python,将导致错误。继续之前,请确保环境中只安装了相关的python版本。
Python3
- 安装所需的VCPKG
> vcpkg install python3:x64-windows > vcpkg install boost-python:x64-windows
- 运行
> python setup.py --vcpkg-root=path\to\vcpkg install
Python2
由于当前版本boost python的限制,必须对vcpkg工具进行一些手动更改
- 编辑[vcpkg root]\ports\boost python
- 编辑文件控件
- 将python3的依赖于生成的项更改为python2
- 安装所需的VCPKG
> vcpkg install python2:x64-windows > vcpkg install boost-python:x64-windows
- 运行
> python setup.py --vcpkg-root=path\to\vcpkg install