多目标机器学习
项目描述
喜马拉雅:多目标线性模型
Himalaya [1]实现了Python中的机器学习线性模型,专注于大量目标的高效计算。
如果您需要以下功能的库,请使用himalaya:
在大量目标上估计线性模型
在CPU和GPU硬件上运行
提供与scikit-learn API兼容的估计器
Himalaya是稳定的(特别关注向后兼容性)并且对公众开放(给它一个星吧!)。
示例
import numpy as np
n_samples, n_features, n_targets = 10, 5, 4
np.random.seed(0)
X = np.random.randn(n_samples, n_features)
Y = np.random.randn(n_samples, n_targets)
from himalaya.ridge import RidgeCV
model = RidgeCV(alphas=[1, 10, 100])
model.fit(X, Y)
print(model.best_alphas_) # [ 10. 100. 10. 100.]
模型RidgeCV使用与scikit-learn估计器相同的API,具有如fit、predict、score等方法。
该模型能够高效地拟合大量目标(通常使用100k目标)。
该模型为每个目标独立选择最佳超参数alpha。
更多示例
查看更多关于 himalaya 的使用示例,请访问示例画廊。
使用 himalaya 的 fMRI 教程
Himalaya 主要设计用于功能性磁共振成像(fMRI)编码模型。关于如何使用 himalaya 进行 fMRI 编码模型的深入教程,请访问 gallantlab/voxelwise_tutorials。
模型
Himalaya 实现以下模型:
岭回归,岭回归CV
核岭回归,核岭回归CV
分组岭回归CV,多核岭回归CV,加权核岭回归
稀疏分组LassoCV
请参阅文档网站中的模型描述。
Himalaya 后端
Himalaya 可以与不同的后端无缝使用。可用的后端包括 numpy(默认),cupy,torch 和 torch_cuda。要更改后端,请调用
from himalaya.backend import set_backend
backend = set_backend("torch")
并将 torch 数组输入到 himalaya 求解器中。为了方便起见,实现 scikit-learn API 的估计器可以将数组转换为正确的输入类型。
GPU 加速
要在图形处理单元(GPU)上运行 himalaya,您可以使用 cupy 或 torch_cuda 后端
from himalaya.backend import set_backend
backend = set_backend("cupy") # or "torch_cuda"
data = backend.asarray(data)
安装
依赖项
Python 3
Numpy
Scikit-learn
可选(GPU后端)
PyTorch(推荐版本1.9+)
Cupy
标准安装
您可以使用包管理器 pip 安装 himalaya 的最新版本,它将自动从 Python 包索引(PyPI)下载 himalaya。
pip install himalaya
从源码安装
要从最新源码(main分支)安装 himalaya,您可以调用
pip install git+https://github.com/gallantlab/himalaya.git
开发者还可以通过以下方式以可编辑模式安装 himalaya:
git clone https://github.com/gallantlab/himalaya
cd himalaya
pip install --editable .
引用此包
如果您在工作中使用了 himalaya,请给它加星标,并引用我们的出版物
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。