lolo机器学习库的python包装器
lolop的Python项目详细描述
lolo的python包装器
===
``lolopy``实现了一个python接口到'lolo machine learning
library<;https://github.com/citrineinformatics/lolo>;``uuuu.
lolo是一个scala库,包含各种机器学习算法特别关注提供稳健的不确定性估计的算法。`` lolopy``允许访问这些算法作为
scikit学习兼容接口,并自动管理python和jvm之间的
接口(即,您可以使用``lolopy``
,而不必知道它在jvm上运行)
PYPI上提供。通过调用安装它:
BR/>"PIP安装Loope'"
BR/>使用"LoLope`",您还需要在您的
系统上安装Java JRE和Gt=1.8。'LoLopy' pypy包包含编译后的‘洛洛’BR/>库,安装后即可使用。BL/>开发
~~~~~~~~~~~~~~~BR/> BR/> LoLopy需要Python & Gt=3.6,JavaJDK& Gt=1.8,在开发LoLopy时安装在系统上。开发"lolopy",使用
maven在系统上编译"lolo"。我们提供了一个"makefile",其中包含所需的
操作。要在此
目录中构建并安装"lolopy"call"make"。
use
--
`randomForestRegressor``类最清楚地演示了
``lololopy``的用法。该类基于"Wagner et
al<;http://jmlr.org/papers/volume15/wager14a/wager14a.pdf>;` ` ` `基于不确定性估计的随机森林,有效地-
使用森林中不同树木之间的方差来生成不确定性估计每一个预言。使用这个
算法就像使用'randomForestRegressor from
scikit learn<;https://scikit learn.org/stable/modules/generated/sklearn.ensemble.randomForestRegressor.html>;`:
代码::python
from lolopy。学习者导入randomforestressor
rf.fit(x,y)
y_pred,y_std=rf.predict(x,return_std=true)
此代码的结果是生成预测值(``y_pred```)
NTIES(``Y`U STD``).
有关更多示例和
详细信息,请参阅```Examples`<;/Examples>;``文件夹。
在较大的数据集大小上使用它时,可能需要增加``LoLopy`
可用的内存量。设置运行机器学习计算的jvm的最大内存
可以通过设置"lolopy\ujvm\u memory"环境变量来实现。"lolopy jvm_memory"的
值用于设置jvm的最大堆大小(有关
详细信息,请参见"Oracle的文档"<;https://docs.oracle.com/cd/e21764_01/web.1111/e13814/jvm_tuning.htm perfm164>;````````````````````.
im实现和性能
----------
``lolopy``是使用'py4j<;https://www.py4j.org/>;``库
与lolo scala库接口构建的。PY4J提供了
轻松管理JVM服务器、在JVM中创建Java对象的能力,并从Python调用
Java方法。然而,py4j在
传输大型
数组<;https://github.com/bartdag/py4j/issues/159>;``方面的性能很慢。为了在模型
训练或评估之前将
特征数组(例如,训练数据)传递给JVM,我们将数据转换到/BR/Java和Python侧的字节数组。将数据转换为字节数组确实允许在JVM和Python之间快速移动数据,但需要立即在内存中保存3个数据拷贝(Python、Java字节数组和Java数字数组)。我们可以通过将字节数组
分块传递来减少内存使用,但这目前还没有实现。ted.
我们的模型训练性能与scikit learn相当,如下图所示。图中的蓝色阴影区域表示将培训数据传递给jvm所需的时间。我们注意到
对于大于100的训练集,使用scala接口
lolo和"lolopy"的训练时间是相等的。
图::/示例/配置文件/训练性能.png
:alt:训练性能
模型计时在1000个数据集(包含145个特征)上进行评估。
模型性能随训练集大小的降低是由于林中
树的数量等于训练集大小的影响。lolopy和
lolo对于训练集大小大于100的模型具有相似的性能。在训练集大小为100的情况下,发送数据的成本会限制"lolopy"的性能。图::./示例/profile/evaluation performance.png
:alt:evaluation performance
evaluation performance
有关更多详细信息,请参阅"基准测试"笔记本<;/examples/profile/scaling test.ipynb>;`
===
``lolopy``实现了一个python接口到'lolo machine learning
library<;https://github.com/citrineinformatics/lolo>;``uuuu.
lolo是一个scala库,包含各种机器学习算法特别关注提供稳健的不确定性估计的算法。`` lolopy``允许访问这些算法作为
scikit学习兼容接口,并自动管理python和jvm之间的
接口(即,您可以使用``lolopy``
,而不必知道它在jvm上运行)
PYPI上提供。通过调用安装它:
BR/>"PIP安装Loope'"
BR/>使用"LoLope`",您还需要在您的
系统上安装Java JRE和Gt=1.8。'LoLopy' pypy包包含编译后的‘洛洛’BR/>库,安装后即可使用。BL/>开发
~~~~~~~~~~~~~~~BR/> BR/> LoLopy需要Python & Gt=3.6,JavaJDK& Gt=1.8,在开发LoLopy时安装在系统上。开发"lolopy",使用
maven在系统上编译"lolo"。我们提供了一个"makefile",其中包含所需的
操作。要在此
目录中构建并安装"lolopy"call"make"。
use
--
`randomForestRegressor``类最清楚地演示了
``lololopy``的用法。该类基于"Wagner et
al<;http://jmlr.org/papers/volume15/wager14a/wager14a.pdf>;` ` ` `基于不确定性估计的随机森林,有效地-
使用森林中不同树木之间的方差来生成不确定性估计每一个预言。使用这个
算法就像使用'randomForestRegressor from
scikit learn<;https://scikit learn.org/stable/modules/generated/sklearn.ensemble.randomForestRegressor.html>;`:
代码::python
from lolopy。学习者导入randomforestressor
y_pred,y_std=rf.predict(x,return_std=true)
此代码的结果是生成预测值(``y_pred```)
NTIES(``Y`U STD``).
有关更多示例和
详细信息,请参阅```Examples`<;/Examples>;``文件夹。
在较大的数据集大小上使用它时,可能需要增加``LoLopy`
可用的内存量。设置运行机器学习计算的jvm的最大内存
可以通过设置"lolopy\ujvm\u memory"环境变量来实现。"lolopy jvm_memory"的
值用于设置jvm的最大堆大小(有关
详细信息,请参见"Oracle的文档"<;https://docs.oracle.com/cd/e21764_01/web.1111/e13814/jvm_tuning.htm perfm164>;````````````````````.
im实现和性能
----------
``lolopy``是使用'py4j<;https://www.py4j.org/>;``库
与lolo scala库接口构建的。PY4J提供了
轻松管理JVM服务器、在JVM中创建Java对象的能力,并从Python调用
Java方法。然而,py4j在
传输大型
数组<;https://github.com/bartdag/py4j/issues/159>;``方面的性能很慢。为了在模型
训练或评估之前将
特征数组(例如,训练数据)传递给JVM,我们将数据转换到/BR/Java和Python侧的字节数组。将数据转换为字节数组确实允许在JVM和Python之间快速移动数据,但需要立即在内存中保存3个数据拷贝(Python、Java字节数组和Java数字数组)。我们可以通过将字节数组
分块传递来减少内存使用,但这目前还没有实现。ted.
我们的模型训练性能与scikit learn相当,如下图所示。图中的蓝色阴影区域表示将培训数据传递给jvm所需的时间。我们注意到
对于大于100的训练集,使用scala接口
lolo和"lolopy"的训练时间是相等的。
图::/示例/配置文件/训练性能.png
:alt:训练性能
模型计时在1000个数据集(包含145个特征)上进行评估。
模型性能随训练集大小的降低是由于林中
树的数量等于训练集大小的影响。lolopy和
lolo对于训练集大小大于100的模型具有相似的性能。在训练集大小为100的情况下,发送数据的成本会限制"lolopy"的性能。图::./示例/profile/evaluation performance.png
:alt:evaluation performance
evaluation performance
有关更多详细信息,请参阅"基准测试"笔记本<;/examples/profile/scaling test.ipynb>;`