icol
** Iterative Correlation Learning in Python **
icol allows one to fit extremly sparse linear models from very high dimensional datasets in a computationally efficient manner. We also include two feature expansion methods, allowing icol to be used as a Symbolic Regression tool.
Installation
Install via pip:
pip3 install icol
Example
import numpy as np
from icol.icol import PolynomialFeaturesICL, AdaptiveLASSO, ICL, rmse
# Example Data: 10 features, three of which are used to form a degree 3 polynomial with 4 terms.
random_state = 0
n = 100
p = 10
rung = 3
s = 5
d = 4
np.random.seed(random_state)
X_train = np.random.normal(size=(n, p))
y = lambda X: X[:, 0] + 2*X[:, 1]**2 - X[:, 0]*X[:, 1] + 3*X[:, 2]**3
y_train = y(X_train)
# Initialise and fit the ICL model
FE = PolynomialFeaturesICL(rung=rung, include_bias=False)
so = AdaptiveLASSO(gamma=1, fit_intercept=False)
X_train_transformed = FE.fit_transform(X_train, y)
feature_names = FE.get_feature_names_out()
icl = ICL(s=s, so=so, d=d, fit_intercept=True, normalize=True, pool_reset=False)
icl.fit(X_train_transformed, y_train, feature_names=feature_names, verbose=False)
# Compute the train and test error and print the model to verify that we have reproduced the data generating function
print(icl)
print(icl.__repr__())
y_hat_train = icl.predict(X_train_transformed)
print("Train rmse: " + str(rmse(y_hat_train, y_train)))
X_test = np.random.normal(size=(100*n, p))
X_test_transformed = FE.transform(X_test)
y_test = y(X_test)
y_hat_test = icl.predict(X_test_transformed)
print("Test rmse: " + str(rmse(y_hat_test, y_test)))
Metadata
Release files for icol 0.14.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| icol-0.14.8.tar.gz | 32.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| icol-0.14.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 65.4 kB
Release files / icol-0.14.8.tar.gz
| Download URL | icol-0.14.8.tar.gz |
|---|---|
| Size | 32.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cee6b00415ce196c6dab159c63de2e50ae28923f6fa2cc5f77535f4b3df8bdd6
|
|
BLAKE2b-256 checksum How to use checksums |
e7b3afe91a9c479d8f396c92284eff2ff74f6e09d5f22016b0976e4efba4397d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|
Release files / icol-0.14.8-py3-none-any.whl
| Download URL | icol-0.14.8-py3-none-any.whl |
|---|---|
| Size | 32.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ad3c5921840d1c6b3351bd7db2f954cfd19d5a1ec47cb660426dac796a0bd4d5
|
|
BLAKE2b-256 checksum How to use checksums |
bfb50bc65d1dbde161ab5d274bac44f59acc0eb7b521e386797591191a6cd3db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|
Security for icol 0.14.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.