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.7
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.7.tar.gz | 32.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| icol-0.14.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 65.4 kB
Release files / icol-0.14.7.tar.gz
| Download URL | icol-0.14.7.tar.gz |
|---|---|
| Size | 32.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7e6463360cb9379b526446658d4008dc9a9984ed635d86d4e0236aa3abac70c
|
|
BLAKE2b-256 checksum How to use checksums |
3089f50b8f67851d01210416fef63d471927a81340fd9d2d8b39f36196974c17
|
| 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.7-py3-none-any.whl
| Download URL | icol-0.14.7-py3-none-any.whl |
|---|---|
| Size | 32.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15536c91a4adb695c7807454998ea3f9d2389ccdd592ff500837244ad9e5fab8
|
|
BLAKE2b-256 checksum How to use checksums |
904971d4c4f06fb8c8dfe7278565378c5c64ed3a5eb39c88a94e5a8c54985ef9
|
| 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.7
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.