Skip to main content

An AutoML project with various machine learning capabilities.

Project description

FeatureFlex: An AutoML Project with Advanced Feature Selection

PyPI - Version PyPI - Python Version GitHub - License GitHub - Issues GitHub - Forks

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-learn
    • matplotlib, shap, optuna
  • Feature Selection:

    • BorutaPy
    • scikit-rebate
  • Optimization:

    • optuna

Refer to the requirements.txt file for the full list of dependencies.


Project Links


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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

FeatureFlex-0.1.25-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file FeatureFlex-0.1.25-py3-none-any.whl.

File metadata

  • Download URL: FeatureFlex-0.1.25-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for FeatureFlex-0.1.25-py3-none-any.whl
Algorithm Hash digest
SHA256 83e598afb74492be7118ca634f60b1327e9bedb9d1b2f830d7548d3c0b9a5841
MD5 95de71bde2ef63bfefc7caa991d9773e
BLAKE2b-256 d2ab903f61cf07727f1823781772881577c5b3ee564112240dbae75aebec9487

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page