高性能Python GLM,具有所有功能!
项目描述
glum
广义线性模型(GLM)是一种核心统计工具,包括许多常见方法,如最小二乘回归、泊松回归和逻辑回归作为特例。在QuantCo,我们已在电子商务定价、保险索赔预测等领域使用GLM。我们开发了 glum
,这是一个快速的Python优先GLM库。该开发基于 scikit-learn的一个分支,因此它具有类似scikit-learn的API。我们对在那个PR中由Christian Lorentzen提供的起点表示感谢!
glum
的目标是至少与现有的GLM库(如 glmnet
或 h2o
)一样功能齐全。它支持
- 内置交叉验证以实现最佳正则化,高效利用“正则化路径”
- L1正则化,它产生稀疏且易于理解的解
- L2正则化,包括变量矩阵值(Tikhonov)惩罚,在建模相关效应时很有用
- 弹性网络正则化
- 正态、泊松、逻辑、伽马和Tweedie分布,以及可变和可定制的连接函数
- 箱型约束、线性不等式约束、样本权重、偏移量
此存储库还包括用于在 glum_benchmarks
模块中基准测试GLM实现的工具。有关基准测试的详细信息,请参阅此处。虽然glum相对于glmnet和h2o的性能取决于具体问题,但我们发现,当N >> K(观测值多于预测值)时,它对各种问题都明显更快。
有关glum
的更多信息,包括教程和API参考,请参阅文档。
我们为什么选择glum
这个名字?我们想要一个包含GLM字母的名字,且不与任何现有实现混淆。我们还认为glum听起来很有趣(实际上并非如此!)如果你需要一个更专业的名字,请随意将其读作G-L-um。或者,它可能代表“广义线性...嗯...建模?”
一个经典的房价预测例子
>>> from sklearn.datasets import fetch_openml
>>> from glum import GeneralizedLinearRegressor
>>>
>>> # This dataset contains house sale prices for King County, which includes
>>> # Seattle. It includes homes sold between May 2014 and May 2015.
>>> house_data = fetch_openml(name="house_sales", version=3, as_frame=True)
>>>
>>> # Use only select features
>>> X = house_data.data[
... [
... "bedrooms",
... "bathrooms",
... "sqft_living",
... "floors",
... "waterfront",
... "view",
... "condition",
... "grade",
... "yr_built",
... "yr_renovated",
... ]
... ].copy()
>>>
>>>
>>> # Model whether a house had an above or below median price via a Binomial
>>> # distribution. We'll be doing L1-regularized logistic regression.
>>> price = house_data.target
>>> y = (price < price.median()).values.astype(int)
>>> model = GeneralizedLinearRegressor(
... family='binomial',
... l1_ratio=1.0,
... alpha=0.001
... )
>>>
>>> _ = model.fit(X=X, y=y)
>>>
>>> # .report_diagnostics shows details about the steps taken by the iterative solver.
>>> diags = model.get_formatted_diagnostics(full_report=True)
>>> diags[['objective_fct']]
objective_fct
n_iter
0 0.693091
1 0.489500
2 0.449585
3 0.443681
4 0.443498
5 0.443497
>>>
>>> # Models can also be built with formulas from formulaic.
>>> model_formula = GeneralizedLinearRegressor(
... family='binomial',
... l1_ratio=1.0,
... alpha=0.001,
... formula="bedrooms + np.log(bathrooms + 1) + bs(sqft_living, 3) + C(waterfront)"
... )
>>> _ = model_formula.fit(X=house_data.data, y=y)
安装
请通过conda-forge安装此包
conda install glum -c conda-forge
性能
为了在x86_64架构上实现最佳性能,我们建议使用MKL库(conda install mkl
)。默认情况下,conda通常会安装openblas版本,这比较慢,但支持所有主要架构和操作系统。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
glum-3.0.2.tar.gz (13.5 MB 查看哈希)
构建分布
glum-3.0.2-cp312-cp312-win_amd64.whl (530.2 kB 查看哈希)
glum-3.0.2-cp312-cp312-macosx_11_0_arm64.whl (623.9 kB 查看哈希)
glum-3.0.2-cp311-cp311-win_amd64.whl (521.2 kB 查看哈希值)
glum-3.0.2-cp310-cp310-win_amd64.whl (520.5 kB 查看哈希值)
glum-3.0.2-cp39-cp39-win_amd64.whl (521.6 kB 查看哈希值)
glum-3.0.2-cp39-cp39-macosx_11_0_arm64.whl (610.2 kB 查看哈希值)
关闭
glum-3.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3ed52adc9520c51102fa18292de18e3399fe26b2c2270f3ead8652439fb6382d |
|
MD5 | 387d71b64093fd5fc09ac00aebada925 |
|
BLAKE2b-256 | 8c6ce6e5a84f8a48ff5d8b055f677f29090c0eda940833290678d6895feb3348 |
关闭
glum-3.0.2-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c467bd9614e2441fb6189c16ad053b347124e8161ba42bc8da77504390336144 |
|
MD5 | 148a33f7df310fa91ebdb1b86b2f924d |
|
BLAKE2b-256 | 99508f288e884463769109800cc25c03538130072311440e2e3abd0ff18c0a4b |
关闭
glum-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 961bbec4d568f6d400d440771e13a9c1b8ea608404dec58c5790d9911f7dc71f |
|
MD5 | cf8d4cb910f557a3aec9ae564bf4fbcb |
|
BLAKE2b-256 | 3a0692c95df66ea3b2e3c63feea52727b9f920e08cc535d8af42a5332edbcdc2 |
关闭
glum-3.0.2-cp312-cp312-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2ebdfd25f7e5e934caab2ffd9ed05dae121c50d9f976af7eefece8fed4362f74 |
|
MD5 | 1442ce9868d267f072aebd0ceae6cadb |
|
BLAKE2b-256 | 79a37916aaa4853f4529d1ca748be849b72edd474970f74a67900104ba0b8035 |
关闭
glum-3.0.2-cp312-cp312-macosx_10_13_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 257675e06140cac8e729143c9ea74c102aa8ff75e46d7aa1b319d2b2ac65462e |
|
MD5 | 3c28d0af0f74a3b9e182c78e0459bb0e |
|
BLAKE2b-256 | b29e0a67a25f93d6693b6f9d8ef06d4a27912ba4a83344a9c88758a0729b2cd0 |
关闭
glum-3.0.2-cp311-cp311-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c275e08351650487bfcf92a52779544866e0ea92afa761f17cce863670058db9 |
|
MD5 | ec97a4af7029453776e0aecafaa7378f |
|
BLAKE2b-256 | 38ec56d92637017c7bed7ce30f1f478e1d902230dcff5a009a9ff308e1174e71 |
关闭
glum-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c248aa3fed18b036d13dd6af2afa2fd606941dfa87b2db12ad13d5b230fd7949 |
|
MD5 | 16aa80a17e83f575a35b235dd98a8c57 |
|
BLAKE2b-256 | d5a46eefdeb19e3856e68d7251068157cd0bfb15d929395d6f96dd3dca3eec44 |
关闭
glum-3.0.2-cp311-cp311-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5ae171f79c2cd662d75e027e84f7f2d7bc70b153446d0d2c82c873730de9746c |
|
MD5 | fac9077a089fe392c22de2825cde6b5c |
|
BLAKE2b-256 | 1358e5f54195db79d43a07aa15071eb2841564500547188df311a36efaf5c1de |
关闭
glum-3.0.2-cp311-cp311-macosx_10_13_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2d6b79338cb7a988e811df000da110fd398cbe136b637de6b95bb6fc69c00f94 |
|
MD5 | 05ab08214210d7637bf364d343bbfd25 |
|
BLAKE2b-256 | f2f0f760c1e3d4973e7ec95b1a45b49218941adba3eab5b76cb65017fac665cd |
关闭
glum-3.0.2-cp310-cp310-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0ad67870f87d57a7a65aaee3e241e7dbc7c850866648e8d08eebf7a57c0ae9d5 |
|
MD5 | 1af95fbb98bd09b9b55ab5f61cd90236 |
|
BLAKE2b-256 | 4be573b5dc3080ed8bf89b747de42c1dd74f7dfcbffc7c7f7fc9e232e8f0b594 |
关闭
哈希值 用于 glum-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 18d13c00fbf6a56ebb051b333918ba1c0584a010a535f96adb531f62f5192fe9 |
|
MD5 | 2a8fe2a50487d5f6997f3a10fb5d2fef |
|
BLAKE2b-256 | 417b22ca16f9e99b4a60a0cb26147fdc59dfe2fc11dfb0925d0c013b51802605 |
关闭
哈希值 用于 glum-3.0.2-cp310-cp310-macosx_10_13_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 90c86e35df57634b30cf77e536394ae7208a055666c60a9e6523245bbada0358 |
|
MD5 | 3eb46dfb0a1476072778cc4ab47fb3a9 |
|
BLAKE2b-256 | 57bcb25cc439edee21718d72fffd2f39663acd969c5a691afbc6b13b4934015d |
关闭
哈希值 用于 glum-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | af573e46f99e75d0c0258509d643bd0762f3fd4a2287535fc8a410a0ddbcc441 |
|
MD5 | c93d10a68525525d183ee0fa9ed8680a |
|
BLAKE2b-256 | 9e085f0346b83a057b04e917ebfe64856168e962fd4e93b1ba97f469dc58d0a7 |