Observed since 20 Oct, 19:57 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
An advanced data processing pipeline for machine learning workflows
This project implements a sophisticated data processing pipeline using Python, designed to handle large-scale data processing tasks efficiently. The pipeline includes various stages such as data loading, cleaning, transformation, analysis, and visualization.
This package is available on PyPI, and you can view it at the provided URL: https://pypi.org/project/advanced-data-processing/.
See requirements.txt for a full list of dependencies. Key libraries include:
You can install the package directly from PyPI:
pip install advanced-data-processing
Alternatively, if you are working from a local clone of the repository:
Install the required dependencies:
pip install -r requirements.txt
To build and install the package locally:
pip install -e .
For development installation with all features:
pip install -r requirements-dev.txt
To use the package in another Python project:
from advanced_data_processing import process_data, load_data, clean_data
# Use the functions as needed
data = load_data("path/to/your/data.csv")
cleaned_data = clean_data(data)
processed_data = process_data(cleaned_data, steps=['transform', 'feature_engineering'])
Configure your pipeline in config.yaml:
source: 'path/to/your/data.csv'
steps: ['load', 'clean', 'transform']
output_file: 'path/to/output.csv'
# Add other configuration parameters as needed
The config.yaml file should include the following parameters:
source: Path to the input data filesteps: List of processing steps to executeoutput_file: Path for the processed output filefile_type: Type of the input file (e.g., 'csv', 'json', 'parquet')text_column: Name of the column containing text data (for text analytics)model_type: Type of model to use for predictive analyticsRun the pipeline from the command line:
adp --config config.yaml
Or:
python data_processing/main.py --config config.yaml
You can customize the pipeline execution with various command-line arguments:
--resume: Resume from a saved pipeline state--plugins: Load custom plugins (specify paths to plugin files)--n_workers: Number of workers for parallel processing--scheduler_address: Address of the Dask scheduler for distributed processing--visualize: Generate visualizations--analyze_text: Perform text analytics--use_cache: Use cached results--generate_report: Generate a comprehensive report--auto_feature_engineering: Perform automatic feature engineering--handle_imbalanced: Handle imbalanced datasets--auto_tune: Perform automatic hyperparameter tuningGenerate visualizations:
python data_processing/main.py --config config.yaml --visualize
Perform text analytics:
python data_processing/main.py --config config.yaml --analyze_text
Use cached results and generate a report:
python data_processing/main.py --config config.yaml --use_cache --generate_report
Perform automatic feature engineering and handle imbalanced data:
python data_processing/main.py --config config.yaml --auto_feature_engineering --handle_imbalanced
You can extend the pipeline's functionality using custom plugins:
--plugins argument to specify the path to your plugin file(s) when running the pipeline.You can resume the pipeline from a previously saved state using the --resume option:
python data_processing/main.py --config config.yaml --resume pipeline_state_step_name.pkl
This pipeline uses Dask for distributed processing. You can specify the number of workers or provide a Dask scheduler address:
python data_processing/main.py --config config.yaml --n_workers 4
or
python data_processing/main.py --config config.yaml --scheduler_address tcp://scheduler-address:8786
You can also set a memory limit for Dask workers:
python data_processing/main.py --config config.yaml --n_workers 4 --memory_limit 4GB
To use caching and save intermediate results:
python data_processing/main.py --config config.yaml --use_cache --save_intermediate --intermediate_path ./intermediate/
To perform automatic hyperparameter tuning for machine learning models:
python data_processing/main.py --config config.yaml --auto_tune
The pipeline can be customized for different types of datasets by modifying the configuration file. Here are some examples:
feature_engineering:
create_time_features: true
time_column: 'timestamp'
data_transformation:
numerical_features:
- 'value'
- 'year'
- 'month'
- 'day'
categorical_features:
- 'day_of_week'
scaling_method: 'minmax'
feature_engineering:
create_text_features: true
text_columns:
- 'text_content'
data_transformation:
text_features:
- 'text_content'
text_vectorization_method: 'tfidf'
feature_engineering:
create_polynomial_features: true
create_interaction_features: true
data_transformation:
numerical_features:
- 'feature1'
- 'feature2'
categorical_features:
- 'category1'
- 'category2'
scaling_method: 'standard'
encoding_method: 'onehot'
The main processing steps are defined in the process_data function. These include:
The pipeline supports loading data from various sources.
Data cleaning operations include handling missing values, outliers, and duplicates.
The pipeline offers various data transformation techniques.
Automatic feature engineering is supported.
The pipeline can handle imbalanced datasets.
Robust error handling is implemented throughout the pipeline.
To generate a comprehensive report of the data processing steps and results, use the --generate_report flag:
python data_processing/main.py --config config.yaml --generate_report
The report includes:
The report is saved as 'pipeline_report.txt' in the project directory.
Here's a detailed example of how to use the pipeline:
from advanced_data_processing import process_data, load_config
# Load configuration
config = load_config('config.yaml')
# Process data
processed_data = process_data('path/to/your/data.csv', config=config)
# Save processed data
processed_data.to_csv('processed_data.csv', index=False)
To run the pipeline from the command line with all options:
python main.py --config config.yaml --output processed_data.csv --visualize --analyze_text --extract_entities --model_topics --select_features --reduce_dimensions --validate_schema --summary_stats --auto_feature_engineering --handle_imbalanced --auto_tune
Contributions to improve the pipeline are welcome. Please follow these steps:
git checkout -b feature-branch)git commit -am 'Add some feature')git push origin feature-branch)This project is licensed under the MIT License - see the LICENSE file for details.
For more detailed usage instructions and examples, please refer to the full documentation here.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.7 | 10 Dec 2024 | 35 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 19:57 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:c6e6f426132e071ba859c180dba60ae99d319ddf3d483cae2a9106156073a342