正则贪婪森林的scikit学习包装器
rgf-python的Python项目详细描述
rgf_python
python的机器学习算法的包装器
功能
scikit学习界面和用于多类分类问题的可能性。
rgf_python 同时包含论文中的原始rgf和 快速rgf 实现a
请注意,fastrgf是为与大型(和稀疏)数据集一起使用而开发的,因此在小型数据集上,与普通rgf相比,它通常表现出较差的性能。
最初的rgf实现仅适用于回归和二进制分类,但也可通过"one vs rest"方法用于多类分类。
示例
fromsklearnimportdatasetsfromsklearn.utils.validationimportcheck_random_statefromsklearn.model_selectionimportStratifiedKFold,cross_val_scorefromrgf.sklearnimportRGFClassifieriris=datasets.load_iris()rng=check_random_state(0)perm=rng.permutation(iris.target.size)iris.data=iris.data[perm]iris.target=iris.target[perm]rgf=RGFClassifier(max_leaf=400,algorithm="RGF_Sib",test_interval=100,verbose=True)n_folds=3rgf_scores=cross_val_score(rgf,iris.data,iris.target,cv=StratifiedKFold(n_folds))rgf_score=sum(rgf_scores)/n_foldsprint('RGF Classifier score: {0:.5f}'.format(rgf_score))
在这里可以找到使用rgf估计器的更多示例。
使用fastrgf估计器的示例可以在这里找到。
软件要求
- 巨蟒(2.7或>;=3.5)
- 科学套件学习(>;=0.18)
安装
使用 pip :
pip install rgf_python
git clone https://github.com/RGF-team/rgf.git cd rgf/python-package python setup.py install
MacOS用户, rgf_python 在 3.5.0 版本用 g++-9 构建之后,不能在 g++-8 和更早版本的系统上启动。如果您不想从源代码构建或从pypi安装rgf_python,您应该更新 g++ 编译器,pypi是使用 g++-8 构建的最后一个版本。
MacOS用户, rgf_python 在 3.1.0 版本用 g++-8 构建之后,不能在 g++-7 和更早版本的系统上启动。如果您不想从源代码构建或从pypi安装rgf_python,您应该更新 g++ 编译器,pypi是使用 g++-7 构建的最后一个版本。
如果按上述方法安装时遇到任何问题,则应自行从二进制文件构建rgf和fastrgf可执行文件,并将编译后的可执行文件放入包含在环境变量 'path' 中或包含已安装程序包的目录中的目录。或者,您可以通过配置文件 .rgfrc 中的相应标志指定可执行文件的实际位置和放置临时文件的目录,您应该在主目录中创建这些标志。默认值如下: rgf-location=$home/rgf (对于Windows, $home/rgf.exe ) fastrgf-location=$home , temp-location=tempfile.gettempdir() (以下是有关 tempfile.gettempdir() )。请看一下 .rgfrc 文件的示例:
rgf_location=C:/Program Files/RGF/bin/rgf.exe fastrgf_location=C:/Program Files/FastRGF/bin temp_location=C:/Program Files/RGF/temp
请注意,虽然 rgf_location 应指向具体的rgf可执行文件 文件 , fastrgf_location 应指向 文件夹 ,其中 forest_train.exe 和 forest_predict.exe fastrgf可执行文件位于该文件夹中。
另外,您可以直接指定安装,而无需自动编译:
pip install rgf_python --install-option=--nocompilation
或
git clone https://github.com/RGF-team/rgf.git cd rgf/python-package python setup.py install --nocompilation
执行安装命令可能需要sudo(或windows中的管理员权限)。
有关如何从源文件构建rgf和fastrgf的可执行文件的详细指南,请分别在它们的文件夹中找到:此处的 和此处的 。
Docker图像
# Run docker image docker run -it rgfteam/rgf /bin/bash # Run RGF example python ./rgf/python-package/examples/RGF/comparison_RGF_and_RF_regressors_on_boston_dataset.py # Run FastRGF example python ./rgf/python-package/examples/FastRGF/FastRGF_classifier_on_iris_dataset.py
调整超参数
快速rgf
- n_估计量 :典型范围是[100,10000],典型值是1000。
- 最大深度 :控制树的深度。
- 最大叶数 :控制树的大小。
- 树增益比 :控制何时开始新树。
- min_samples_leaf :控制树木生长过程。
- 丢失 :您可以选择"ls"、"modls"或"logistic"。
- l1 :典型范围是[0,1000],大值会导致稀疏性。
- l2 :使用相对较大的值,例如1000或10000。数值越大,需要使用的n_估计量就越大:训练时间越长,得到的精度往往越好。
- opt_algorithm :您可以选择"rgf"或"epsilon greedy"。
- 学习率 :epsilon贪婪提升的步长。用于 opt_算法 ="epsilon greedy"。
- max_bin :密集数据的典型范围是[106500],稀疏数据的典型范围是[10250]。
- 最小子权重 :控制离散化(创建箱子)的过程。
- data_l2 :控制离散化(创建存储箱)的l2正则化程度。
- 稀疏最大特性:典型范围为[1000,10000000]。用于稀疏数据。
- 稀疏最小发生次数:控制要选择的功能。用于稀疏数据。
故障排除
如果遇到任何错误,请尝试运行 test戋rgf戋python.py 以确认包安装成功。
然后,请随时 打开新问题
已知问题
FAQ
问:临时文件在我的硬盘上占用了太多空间(kaggle kernels磁盘空间在安装rgf python模型时耗尽)。
A:请参见 rgf 75
问:gridsearchcv/randomizedsearchcv/rfecv或其他scikit学习工具,带有 n_jobs 参数,在使用 rgf_python 估计器运行时挂起/冻结/崩溃。
答:这是python中多处理的一个常见问题。您应该设置Estimator或SciKit Learn tool的 n_jobs=1 参数。
其他
无耻的是,实现的某些部分是基于以下代码。谢谢!
参考文献
[1]李强森,张彤. 使用正则贪婪森林学习非线性函数。 模式分析和机器智能的IEEE事务,36(5):942-9542014年5月