Fuzzy Imputation and Critical Attribute Reduction for Intelligent Analysis
About The Package • Prerequisites • Setup • Usage • License • Authors
🔷 About The Package
The ficaria package is a Python package providing custom, scikit-learn–compatible transformers
for data imputation and feature selection. The transformers are designed to integrate seamlessly with
scikit-learn pipelines, making them easy to use in real-world
machine learning workflows and straightforward to extend for
custom or research-oriented use cases.
The package was developed as part of a Bachelor’s degree thesis at the Warsaw University of Technology, Faculty of Mathematics and Information Science. All implemented methods are fuzzy-based, leveraging concepts from fuzzy set theory to handle uncertainty, vagueness, and incomplete data in a principled and interpretable manner. This makes ficaria particularly suitable for datasets where classical crisp methods may be insufficient or overly restrictive.
⚙️ Prerequisites
The ficaria package depends on the following Python libraries:
- NumPy
- Pandas
- SciPy
- scikit-learn
- kneed
🛠 Setup
Ficaria can be installed from PyPI:
pip install ficaria
All dependencies are automatically installed when installing the package via pip.
🚀 Usage
Ficaria provides scikit-learn–compatible transformers for data imputation and feature selection. All transformers implement the standard fit / transform interface, so they can be used directly in pipelines alongside scalers, estimators, and cross-validation tools.
Example 1 — Feature Selection with FuzzyGranularitySelector
from ficaria import FuzzyGranularitySelector
selector = FuzzyGranularitySelector(n_features=5, eps=0.3)
selector.fit(X_train, y_train)
X_reduced = selector.transform(X_test)
Example 2 — Data Imputation with FCMKIterativeImputer
from ficaria import FCMKIterativeImputer
pipeline.fit(X_train, y_train)
X_transformed = pipeline.transform(X_test)
Example 3 — Combining Transformers in a Pipeline
Since all transformers implement fit and transform, they can be combined:
from sklearn.pipeline import Pipeline
from ficaria import FuzzyGranularitySelector, FCMKIterativeImputer
pipeline = Pipeline([
("imputer", FCMKIterativeImputer()),
("selector", FuzzyGranularitySelector(n_features=5, eps=0.3)),
])
pipeline.fit(X_train, y_train)
X_final = pipeline.transform(X_test)
📄 License
This project is licensed under the MIT License.
See the LICENSE file for details.
👥 Authors
Aleksandra Kwiatkowska
Email: aleksandra.kwiatkowska263@gmail.com
Github: @kwiatkowskaa
Małgorzata Mokwa
Email: malgosiam628@gmail.com
Github: @malgosiam2
Bogumiła Okrojek
Email: bogumila.okrojek@gmail.com
Github: @szostkawron
Metadata
Release files for ficaria 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ficaria-0.1.0.tar.gz | 45.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ficaria-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.9 kB
Release files / ficaria-0.1.0.tar.gz
| Download URL | ficaria-0.1.0.tar.gz |
|---|---|
| Size | 45.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c2dee040f0df07966d231ece0d60f7c347e545ca7bb2a5d7ff8c171efffcc7d
|
|
BLAKE2b-256 checksum How to use checksums |
fb5c4008c3a3ac59e86ac2d5d003277881cf7b2a1523db623cec5e4eb0d78e77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / ficaria-0.1.0-py3-none-any.whl
| Download URL | ficaria-0.1.0-py3-none-any.whl |
|---|---|
| Size | 46.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40e0d4adc965910d279166812a45378f15022bd8d4fab51179d429b25d3350a8
|
|
BLAKE2b-256 checksum How to use checksums |
3d8dcceffa4eef5134d978d45c789210c3b39d4c0105893ca22804786d77e785
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|