An AutoML project with various machine learning capabilities.
Project description
FeatureFlex: An AutoML Project with Advanced Feature Selection
Overview
FeatureFlex is an AutoML project that provides a comprehensive suite of machine learning capabilities. It includes advanced preprocessing, feature selection, model optimization, and evaluation functionalities, making it a robust choice for tackling classification tasks with large and complex datasets.
This package is particularly suited for tasks requiring feature selection and comparison across multiple methods, including SHAP, Boruta, SelectKBest, and more.
Features
-
Advanced Feature Selection:
- Boruta
- SelectKBest
- SHAP-based feature selection
- ReliefF (via scikit-rebate)
-
Dynamic Model Optimization:
- Grid search
- Random search
- Bayesian optimization
-
Evaluation Metrics:
- AUC, Accuracy, Precision, Recall, F1-score
- Confusion Matrix
- ROC and Precision-Recall Curves
-
Comparison Tool:
- Compare feature selection methods based on model performance.
Installation
Install FeatureFlex via PyPI:
pip install FeatureFlex
Usage
Preprocessing Data
FeatureFlex includes a DataPreprocessor for preprocessing data with missing values, scaling, and encoding.
from preprocessing import DataPreprocessor
data = ... # Load your dataset
preprocessor = DataPreprocessor()
X, y, _ = preprocessor.preprocess(data, target_column="click")
Feature Selection
FeatureFlex allows you to use various feature selection techniques:
from feature_selector import EnhancedFeatureSelector
# Using SHAP-based feature selection
selector = EnhancedFeatureSelector(input_dim=X.shape[1])
top_features = selector.select_via_shap(X, y, n_features=10)
Model Optimization
Optimize models using dynamic, grid, random, or Bayesian search:
from model_optimizer import ModelOptimizer
optimizer = ModelOptimizer()
best_model, best_score = optimizer.optimize_model(X, y, method="bayesian")
Comparison of Feature Selection Methods
Compare different feature selection methods using the provided comparison script:
from comparison import compare_feature_selectors
results = compare_feature_selectors(data, target_column="click", n_features=10)
Evaluation
Evaluate your model with various metrics and generate reports:
from evaluation import ModelEvaluator
metrics = ModelEvaluator.evaluate(model, X_test, y_test, output_format="html")
Example Dataset
The package includes utilities tested with datasets such as:
For more information on the dataset's context, see:
Comparison with Existing Packages
FeatureFlex distinguishes itself from existing feature selection packages:
| Method | FeatureFlex | Boruta | SelectKBest | SHAP | ReliefF |
|---|---|---|---|---|---|
| Multi-method support | ✔ | ✘ | ✘ | ✘ | ✘ |
| Dynamic optimization | ✔ | ✘ | ✘ | ✘ | ✘ |
| Scalable to large datasets | ✔ | ✔ | ✔ | ✔ | ✔ |
| Integrated evaluation | ✔ | ✘ | ✘ | ✘ | ✘ |
Full Comparison Script
Here is an example script to compare various feature selection techniques:
from comparison import compare_feature_selectors, save_results_and_plots
import pandas as pd
# Load dataset
data = pd.read_csv("path/to/dataset.csv")
results = compare_feature_selectors(data, target_column="click", n_features=10)
# Save results to CSV and generate plots
save_results_and_plots(results)
Dependencies
FeatureFlex depends on the following libraries:
-
Core:
numpy,pandas,scikit-learnmatplotlib,shap,optuna
-
Feature Selection:
BorutaPyscikit-rebate
-
Optimization:
optuna
Refer to the requirements.txt file for the full list of dependencies.
Project Links
- GitHub: FeatureFlex Repository
- PyPI: FeatureFlex on PyPI
License
This project is licensed under the MIT License.
Contact
For queries or suggestions, contact the author at info@itsharppro.com.
Changelog
FeatureFlex uses a dynamic versioning system. The current version is updated automatically at build time.
Contribution
Contributions are welcome! Feel free to fork the repository and submit a pull request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file FeatureFlex-0.1.62-py3-none-any.whl.
File metadata
- Download URL: FeatureFlex-0.1.62-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77acc45ad4a14669baa5f85851751c7e4a67b420a06fc4472e056d5358adcf3a
|
|
| MD5 |
a6a98b201948f9caa9ba5a95944a82c1
|
|
| BLAKE2b-256 |
35cf95a81ae3b819cb541edbb306cce64c5e33f95fbb1127c7941555d53148ed
|