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.15.1
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.15.1.tar.gz | 32.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| icol-0.15.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.1 kB
Release files / icol-0.15.1.tar.gz
| Download URL | icol-0.15.1.tar.gz |
|---|---|
| Size | 32.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdddf02f834805aae68f1b865563b1edd63e59ab3e58796e50ff2ad60365129a
|
|
BLAKE2b-256 checksum How to use checksums |
ce1cf8222859b398082b2cbd67e0902423b556090d56ce2c4ee5ef05446a45c2
|
| 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.15.1-py3-none-any.whl
| Download URL | icol-0.15.1-py3-none-any.whl |
|---|---|
| Size | 33.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a46161b37f7c1d469daa818650a039b2ef1407a71bcb8a55aee9b39aa0ebbb0
|
|
BLAKE2b-256 checksum How to use checksums |
59a6e330376910dd3a03821f26777047dedbed7e8a07ed77e998eb4892180a3d
|
| 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.15.1
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.