Python GLMNET
维护警告
此包不再维护。
描述
这是R包glmnet中使用的Fortran库的Python封装。虽然该库包含线性、逻辑、Cox、泊松和多响应高斯回归,但本包只实现了线性和逻辑回归。
API遵循Scikit-Learn的惯例,因此预期可与该生态系统的工具配合使用。
安装
要求
python-glmnet需要Python版本>=3.6,scikit-learn,numpy和scipy。从源代码或通过pip安装需要Fortran编译器。
conda
~~~~~
.. code:: bash
conda install -c conda-forge glmnet
pip
~~~
.. code:: bash
pip install glmnet
源代码
~~~~~~
glmnet依赖numpy、scikit-learn和scipy。
还需要一个可用的Fortran编译器来构建包。
对于Mac用户,brew install gcc可以满足这个要求。
.. code:: bash
git clone git@github.com:civisanalytics/python-glmnet.git
cd python-glmnet
python setup.py install
使用
-----
通用
~~~~~
默认情况下,LogitNet和ElasticNet使用lasso惩罚(α = 1)和最多100个λ值(由算法确定)拟合一系列模型。此外,在计算λ值路径后,使用3折交叉验证计算每个λ值的性能指标。对应最佳表现模型的λ值保存为lambda_max_属性,而使模型性能在最佳得分模型的cut_point * standard_error范围内的最大λ值保存为lambda_best_属性。
predict和predict_proba方法接受一个可选参数lamb,用于选择将用于预测的模型。如果省略lamb,将使用lambda_best_。
两种模型都接受稠密或稀疏数组。
正则化逻辑回归
.. code:: python
from glmnet import LogitNet
m = LogitNet()
m = m.fit(x, y)
预测类似于Scikit-Learn:
.. code:: python
# 预测标签
p = m.predict(x)
# 或概率估计
p = m.predict_proba(x)
正则化线性回归
.. code:: python
from glmnet import ElasticNet
m = ElasticNet()
m = m.fit(x, y)
预测:
.. code:: python
p = m.predict(x)