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.3
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.3.tar.gz | 32.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| icol-0.15.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.1 kB
Release files / icol-0.15.3.tar.gz
| Download URL | icol-0.15.3.tar.gz |
|---|---|
| Size | 32.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e04aca6957fa388772a6b440ba20161a59805ea394d9c4aaa043ee0ab83eaa7
|
|
BLAKE2b-256 checksum How to use checksums |
87b63dac7a868ae2e523517e9c20214e36b3a5ac8422a87ee02303135055c124
|
| 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.3-py3-none-any.whl
| Download URL | icol-0.15.3-py3-none-any.whl |
|---|---|
| Size | 33.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5988bad45cc8bd0789583521390133ecb41a585ae5f91cfbeb4d21f4e1057b84
|
|
BLAKE2b-256 checksum How to use checksums |
2e543eb269a9f0ae74edf2091a23bd9cefb742f5771fe71b29be913f9fe41530
|
| 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.3
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.