正则贪婪森林的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

或者从github

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的可执行文件的详细指南,请分别在它们的文件夹中找到:此处的 和此处的

调整超参数

快速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 以确认包安装成功。

然后,请随时 打开新问题

已知问题

  • 如果训练数据集太小,则FastRGF会崩溃(data<;28)。( rgf 92
  • FastRgfClassifier FastRgfRegressor 不提供任何计算特征重要性的内置方法。( rgf 109

FAQ

  • 问:临时文件在我的硬盘上占用了太多空间(kaggle kernels磁盘空间在安装rgf python模型时耗尽)。

    A:请参见 rgf 75

  • 问:gridsearchcv/randomizedsearchcv/rfecv或其他scikit学习工具,带有 n_jobs 参数,在使用 rgf_python 估计器运行时挂起/冻结/崩溃。

    答:这是python中多处理的一个常见问题。您应该设置Estimator或SciKit Learn tool的 n_jobs=1 参数。

许可证

rgf_python mit许可证下分发。有关详细信息,请阅读文件 许可证

非常感谢rie johnson和tong zhang(rgf的作者)。

其他

无耻的是,实现的某些部分是基于以下代码。谢谢!

参考文献

[1]李强森,张彤. 使用正则贪婪森林学习非线性函数。 模式分析和机器智能的IEEE事务,36(5):942-9542014年5月

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在这段代码中只使用一个数组实例?   java为什么执行一组测试会给单独执行的测试带来不同的结果?   java如何防止jsp应用程序跨框架脚本编写?   java理解EDT和共享对象?   java使用spring读取附加的PDF文件   Java垄断游戏   java Magnolia REST工具   java如何在实例化时模拟对象?   在while循环中获取多个输入时出现java错误   java oracleConnection。createARRAY不使用WebLogic数据源连接   posthtml获取posthtml代码(在JavaEclipse中)   java如何从Unix时代开始将日期/时间字符串转换为分钟?   java将int与数字进行比较的最佳方法   端口8443上通过ssl的java Spring安全登录在使用http协议的端口8080上无法识别   JavaSpring的sec:intercepturl容易被绕过?