LABS: Linear-time Adaptive Best-subset Selection
Project description
Overview
Best-subset selection plays a vital role in regression analysis, aiming to identify a parsimonious subset of variables that maximizes prediction accuracy within the resulting linear model. This process is important in various scientific fields, including physics, biology, and medicine, where extensive datasets are routinely generated. Nevertheless, the computational complexity of selecting the best subset from massive datasets presents a formidable challenge, given the problem’s well-known NP-hard nature.
To address this challenge, we introduce a new tuning-free iterative algorithm scikit-labs that capitalizes on a novel subset splicing procedure. Remarkably, under mild conditions, our algorithm demonstrates provable identification of the best subset while maintaining a linear time complexity, achieving optimality in computation and statistics simultaneously. The power of scikit-labs is numerically certified by extensive test cases.
Quick Start
Installation
Install the stable scikit-labs Python package from Pypi:
pip install scikit-labs
And then the package can be imported as:
import sklabs
Example
Best subset selection for linear regression on a simulated dataset in Python:
from sklabs.datasets import make_glm_data
from sklabs.linear import LinearRegression
sim_dat = make_glm_data(n = 350, p = 500, k = 6, family = "gaussian")
model = LinearRegression()
model.fit(sim_dat.x, sim_dat.y)
Open source software
scikit-labs is a free software and its source code are publicly available in Github. The core framework is programmed in C++, and user-friendly Python interfaces are offered. You can redistribute it and/or modify it under the terms of the GPL-v3 License. We welcome contributions for scikit-labs, especially stretching scikit-labs to the other best subset selection problems.
Citation
If you use scikit-labs or reference our tutorials in a presentation or publication, we would appreciate citations of our library.
@article{scikit-labs,
title = {Selecting the Best Subset in Regression in Linear Time},
author = {Jin Zhu and Junxian Zhu and Junhao Huang and Xueqin Wang and Heping Zhang},
journal = {Submitted},
year = {2023},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1206a81b11bb28c9da86f787e357cc6169493a0fd31d869528e3d884ec350905 |
|
MD5 | febd3f6ddf8332305a3e66932bec306a |
|
BLAKE2b-256 | 448741dca16ada65a663d4d4f63e21efb56af4038e3f75fa566d613d9134e129 |
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c1aad881d394e08ddcca7d56c50e06e404c27a9b95b8c6f678556836ccbf9da |
|
MD5 | c645f4b74eeebb371b995fa44bdbd0ab |
|
BLAKE2b-256 | 041b0162b1036498cccb7e2b8c7fc05d502137e68e2ee00f519a05aa14ef0446 |
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22728d2a800bb78a3ce70dccdd91bbd07da0a06d1f43d80e8a15ce3dadfd5b94 |
|
MD5 | fb483547833ac161464860fa7b0139c0 |
|
BLAKE2b-256 | d4a7c8b8c60f29815645d9b084a5c454c6b42f77d01266d436de69dafe331165 |
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1bf7f887247fb8e1bfa70f722604f905a56007d59537207995928567a25b580 |
|
MD5 | 10f6e441d2f8d0e488a5382586225da2 |
|
BLAKE2b-256 | d6aa6ad93d19ba1a39c6e5e6177cabceb59636fd4834c86d5708bdfd0c9bed58 |
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd1f4144c4a74d9ddcb52babdf83cc0a1efea49b2cb4fbcf20495921b3ce96c1 |
|
MD5 | c873e61630e5316e3dd0e3badc0ca548 |
|
BLAKE2b-256 | 8f7a8343aee4f9119515dc9d1f78d2b5f50b4b98828e699ed694cf8399c16e13 |
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b65c0458be05e1d247a44c989eaf0647d6964f1e03f6faae343b2312b1656ee8 |
|
MD5 | 80aef6a5d0b427c8f2f8029f167ffb03 |
|
BLAKE2b-256 | 2c8b740902291d57e129173ef7e9ce49c81809cb54ceeebd9fd3e854b8a3efe3 |
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 609a29dcff9eeffca0efee4d2f7a1910bf18977467cb35bad7c2e871d6169e1a |
|
MD5 | cd3092cb17d4afb29d0a6d8b37e8717d |
|
BLAKE2b-256 | 1d08ea732e60ab146e1846de95c2d1d6e6274cd3cf0c7c41473e33baef9afd31 |
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 137aa7d04d152046194d162f91188b9b8f230622c2f07d63c86ced82998f7041 |
|
MD5 | ec7404b53faa96d1d7c587b7e697d535 |
|
BLAKE2b-256 | b77796210b24250b059c7aa1578ceab9f2a480daac5b6a78c5aa4a6e8535f7fe |
Hashes for scikit_labs-0.0.1rc2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d1ccf21c5caf569714bf72dca6a5ce7d0fefc3eeb119d80472d1d8d7c78796b |
|
MD5 | 3782f1f86e65676bf2ed3992a17263f2 |
|
BLAKE2b-256 | e0995e045ce1cd8b6b85d7955ac940182d0623c1d013e749f3eda305ba1fde40 |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1132abf91b3e7c47550a0674a8746671bce4b1fdf76c8da6f398776fc0a89dd |
|
MD5 | 55961bf7c5accbc8e8b599d5d018b60a |
|
BLAKE2b-256 | 84b6c343936dad75dff6c2f9844112f0a3cfb077c786b82319913651377373fe |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f507078e114ead893f7f276d478d6f9145a3a57b37f327754d557d7ca3f842bb |
|
MD5 | 0befead8ba24c06c52d0f89918b0a48f |
|
BLAKE2b-256 | 30f15a433c67a173581cb0e83630a5fa4c37ee873d55e5b83510ce6c0d4810e4 |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 104b0cfbc5556b80a0a41d77a4322b0e21fd52440eb9d4049f24da05c697ae44 |
|
MD5 | 49a5ce37b285ef12ca5df2d67f9894ca |
|
BLAKE2b-256 | b8964d0d472d940b714617afb852635de24655db8ea9d941fa230e4da2d4bd45 |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67de13084a10352cbf583afac6413c65a2136952e2445a2c4929d755df440752 |
|
MD5 | ff59c5068779dff6c6efc01dcdf9e268 |
|
BLAKE2b-256 | 6147d84435e03c29c36e908e27d1783ced0b6c85da42dadb4a71b1fabe2b30c2 |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55a4f0764143660b0ce26b03c294a3bf51cc62c9a29ca29e84cc3a24a0ad98ac |
|
MD5 | 1eb55137003e1ff810beec84851e42ee |
|
BLAKE2b-256 | 8b5f1f49324f6eed6c7d20ec8a454e85e204b5edda7117e2eb577d1a0db93c71 |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 582f889125d261d784352c596ca1f1b7b2b5e4dc3e1cb017401d4f21ceaea93c |
|
MD5 | 4172247cd47496e46ec86258dfe2e84a |
|
BLAKE2b-256 | 66678f388248cb583e16fc710529a1a4242f11668376d785f58008ea944c7f1f |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8206d5d69c2bfd2913d0bdb2347298706ba2b57e2ac33496fbdc1985102f287b |
|
MD5 | 7b7dd43865d5234915ba88cc41cbf798 |
|
BLAKE2b-256 | 8f5ceb8cbab403ff9ef4aa0a1f11d922b1b73105b4bf015319125e86db263e8c |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c850b24e75f93f03f829aa0ea1e9764744356dfec1ebba4a0ba857189973057 |
|
MD5 | cc5f1db76e05872ef6d4ac619e388dec |
|
BLAKE2b-256 | 72362eb601f1874316e2019831e28ba14c8eedca6dee655c86f8cd4753ae4e6d |
Hashes for scikit_labs-0.0.1rc2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17815a45ca14b8d692fe0c8dccb48681fc11437744d8e3cd2908ad88d3d8c0a5 |
|
MD5 | 487857d8d68c31086a246787199115b4 |
|
BLAKE2b-256 | d72ecee01e5c8551b9d0761ffb333580e9ce35cf39946b2e01ab000677b229bd |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | def5bf308592a1f9a462eb5e353691bedb3bb6fb409e5a270e82689c4ef728b2 |
|
MD5 | aa392172a42d47a93503a6b7c85dc9db |
|
BLAKE2b-256 | 9c9898c56ecf73fb21c3591d1431fc24c1fefc129a15bd0216b2517f1b8ff091 |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd89ea2803f55df8660e5b475819360788aa53b62afcebd4100e13b9cefc1680 |
|
MD5 | c1121325b3373fae0ee58f4f3f905a92 |
|
BLAKE2b-256 | bd2ee8521847bddaa8076d94c520b3b697c1752a84c8213165c1b6c69d8d2e84 |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae8e35e9856a145da0329144d49abc438a3051710c652334130d0539987e2126 |
|
MD5 | 00747768725762fff77316833593b1cd |
|
BLAKE2b-256 | 56865d20ed3a6819ab2120510cd45e4d62ad79fb9dddc54d8984ab97fdce153b |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30a34ea1010e14b562d7b9ba1e9c95fbaf796f277a0bd87eda99b5836034effd |
|
MD5 | 243bbaf5fab583719d9e17254ab59b20 |
|
BLAKE2b-256 | 469a165a692a90be73de28834b5509319d2e4aaf49e9c760dcc2733278686ff7 |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f801fc3149b7f4d04dec981dcdd7b1ee1b14461fb8d660d8d5168ac923f567b2 |
|
MD5 | 07757417c288eae2c4f2fea9fe7cb652 |
|
BLAKE2b-256 | b67bc04ac7aa89f89c6512c001917cd7eb51f4d8bed79718e485895819a019fa |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0395b30eac426cf08ed8143c0e8e20dbc6b5dfed68eb7d2a9acec3f19ff105ed |
|
MD5 | 33d64e1049d3bf72875d0cf8518b7961 |
|
BLAKE2b-256 | 596bed248c8dff357a4be5589284b78d4559e6168f66f4f2639e8116c9eeb703 |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3bc4f14fce9788b17ad5f2e4b4a6bb39af5453971ca883d05cdb454953e3520 |
|
MD5 | 74ba7d264bc10002b1a8849358cbd517 |
|
BLAKE2b-256 | 4f69ab4a0550ad4470bad48839ef3a023dc07511d2114d1a76ea5afe3800610b |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0227a8edcef4d25ec5d26d6dcc07722f885948e096f9356a8f27bfccd74068f |
|
MD5 | a02000a414574bdf4e1e1562edd3c1cc |
|
BLAKE2b-256 | 4e7fd7358f5844b4c20db828124fd5df7816df3e59725b081b88cdd420ac3002 |
Hashes for scikit_labs-0.0.1rc2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4cb1a5ff488f7165134f528de691bb6345cf9f2c37dcaebaf4a4cd9082c3b98 |
|
MD5 | 21566e07aa527bb7282ae6b1123c4b8b |
|
BLAKE2b-256 | d8c308f026d8eda09df902f0e91dae17e40beebcc8a5b97a327aea895b2aa978 |
Hashes for scikit_labs-0.0.1rc2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1199ddd834ac9f57ddc4a109d69b49649608a7506d86691549157689536ab55f |
|
MD5 | 00cde612188bad62431eb845fa8821f0 |
|
BLAKE2b-256 | d0ff86b4078dec10901ac2d889fee21f4e59cf6b260a90acf0d7e7fd9a40804c |
Hashes for scikit_labs-0.0.1rc2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08ce47d2227b8d1f7ab8661c11c31a87bb2c0f068f35ceeebfb93f33545574cf |
|
MD5 | e5050e6f01f1d994cbeb6e46c6f2575f |
|
BLAKE2b-256 | 8178b4030c5aa72e6d057120dbd59ee51957348b55caabbdeac24766a3daa7aa |
Hashes for scikit_labs-0.0.1rc2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6d130bde4f52cd51682f590ad694ada711fb97e9f14ef0b815ffc880afae850 |
|
MD5 | 4157e48959714b84fe8fee7e8dc1c234 |
|
BLAKE2b-256 | 85d2afd13f902884e3667ea9d07a77e50bc2100f5a33c7b3ab96c93f1e90173f |
Hashes for scikit_labs-0.0.1rc2-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0205570a527f5f97410ce19f037cd6605fef3b771bb15823c06c684470a0f47a |
|
MD5 | b8b11928621f64b10937e3077c759d7a |
|
BLAKE2b-256 | 7028ced014a3b5ca715798baff40d4a7b48d84a37029b782d4905c6dc81c526b |
Hashes for scikit_labs-0.0.1rc2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8dc35d54cbfaea6ad8d420b666e9cfc0829a71b3390c05c85963ae87b826e85 |
|
MD5 | 9a3ba095643e6dbe22d91c2ee5e6be12 |
|
BLAKE2b-256 | 8bd55fad1738a3d14a60b76b04e81928023f40f75c63e19470ade095c4fc28d2 |
Hashes for scikit_labs-0.0.1rc2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ba01aa1cbcabb9cd9049a09733645fc7b8eedcd2342278b2800d44efe3ace51 |
|
MD5 | 0368cd1f57653d2c82b6bc2012393371 |
|
BLAKE2b-256 | 4691a01ff94c58f61d4199a4d8bcb61736442749dbe2466864ea29215387ace9 |
Hashes for scikit_labs-0.0.1rc2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f99f36e5cc9b374c71098c6457db02efd44dc8199a960dd632833a05df36fddb |
|
MD5 | 68e8436d978a72450302e2f548f5c52f |
|
BLAKE2b-256 | 9aea1fa6e3c4c18eebddcaa018f8540925bdc24b80c1105397d3b3c76575532e |
Hashes for scikit_labs-0.0.1rc2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a29dd3835c590062f25c8746342feaca69b39d5caaa41ef11dff3260b3cc3f37 |
|
MD5 | 31b785664c6a46c3dbd26a0ec4ba3af2 |
|
BLAKE2b-256 | 6d599c74629f45eca2722be92a02c5e050aa104e94ad92c78c25a400392ef497 |
Hashes for scikit_labs-0.0.1rc2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9adad7c4778fc321b82704b7f13535198dfb026909112773a5e991ee2f56a292 |
|
MD5 | 51a4474e8bdfc6f16257f7f0adbf838c |
|
BLAKE2b-256 | 1054de6710b0de474b9f3f5e180eed2128bd29b943cc326b202cb01db5c68c04 |
Hashes for scikit_labs-0.0.1rc2-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63623d78a1d98c51ad91c5659542be355c9507cef57d1dc4e8901ac88b215c9f |
|
MD5 | 68da33c88b5f6197123fb94a48b54a74 |
|
BLAKE2b-256 | e71442eb8033cf626e7f5433b51a36d73ceb30988ef760995acb940cb012832d |
Hashes for scikit_labs-0.0.1rc2-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edaff50d7bc91cb02b8f7e605e695dc23891867d029e701278ef40dcc384c7f6 |
|
MD5 | 020292d893caed44730625f30b564176 |
|
BLAKE2b-256 | 39d637df4364682f386dee4e7f0dc392be12bf192d36a13dac76222f61779c0d |
Hashes for scikit_labs-0.0.1rc2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c634c70490e9358ff6f5d9cf7646d2c5f900db16b43668913c86cd2e7f42f6e |
|
MD5 | 4da4ca40cb9a54067c82c7adf1f515c8 |
|
BLAKE2b-256 | 43f88daeb11cc068ada4ec53fa9e80e08cb00e1c7435fa9d70bcace195f76207 |
Hashes for scikit_labs-0.0.1rc2-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cedf577a0f4fb175e7cce45baa09b619a9d643552356b98590730f11cf2aefc |
|
MD5 | 0cd02409035cf0678dfdf7b493194b4a |
|
BLAKE2b-256 | 15f236249ef2af3d97c5bf80fc4181f8b3ef82f2cf7b9fd0b5d462942b05c552 |
Hashes for scikit_labs-0.0.1rc2-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b77ff100ef9e0adac941ca5e61556a76d3ea4e2610de660bff01bd904c26d33 |
|
MD5 | 51c845560ac241a52116eebe147a8ef6 |
|
BLAKE2b-256 | 1872a0f5cc0325a62462677080a15e6216b8831362c4f778f264ed81bc388ae7 |