SUBMARIT Documentation
Welcome to SUBMARIT’s documentation!
Getting Started:
User Guide:
- API Reference
- Algorithm Theory and Implementation
- Overview of Submarket Identification
- Local Search Algorithm
- Mini-Batch Local Search
- Hierarchical Clustering Adapter
- Custom Algorithm Implementation
- Algorithm Selection Guide
- Parallel Processing
- Constrained Clustering
- Theoretical Guarantees
- Advanced Algorithm Features
- Future Algorithms
- Research References
- Performance Tuning Guide
- Performance Considerations
- Memory Optimization
- Speed Optimization
- Algorithm-Specific Optimizations
- Profiling and Benchmarking
- Best Practices
- Hardware Considerations
- Cloud Deployment
- Edge Computing
- Performance Monitoring
- Advanced Optimization Techniques
- Optimization Decision Tree
- Performance Benchmarks
Overview
SUBMARIT (SUBMARket Identification and Testing) is a Python package for identifying and analyzing submarkets based on product substitution patterns. It provides:
Efficient clustering algorithms - State-of-the-art local search with multiple optimization strategies
Statistical evaluation methods - Comprehensive metrics for assessing submarket quality
Validation techniques - Cross-validation, stability testing, and bootstrap methods
MATLAB compatibility - Seamless migration from MATLAB implementations
Performance optimization - Support for large-scale datasets with GPU and distributed computing
Real-world applications - Ready for production use in retail, e-commerce, and market research
Key Features
Scalable: Handle datasets from 100 to 1,000,000+ products
Fast: Optimized implementations with parallel processing
Flexible: Multiple algorithms and customization options
Validated: Extensive testing and benchmarking
Well-documented: Comprehensive guides and API reference
Production-ready: Cloud deployment and monitoring tools
Use Cases
SUBMARIT is ideal for:
Retail Analytics: Understanding product competition and substitution
Pricing Strategy: Identifying products that compete on price
Inventory Management: Grouping substitutable products for stock optimization
Market Research: Analyzing market structure and competition
Recommendation Systems: Finding substitute products for out-of-stock items
Getting Help
Installation Issues: See the Installation Guide guide
Quick Tutorial: Start with the Quick Start Tutorial guide
API Details: Browse the API Reference reference
Performance: Check the Performance Tuning Guide guide
Questions: See the Frequently Asked Questions (FAQ) or file an issue on GitHub
Credits and Acknowledgments
This Python implementation is based on the original MATLAB SUBMARIT package.
Original MATLAB Implementation
Stephen France, Mississippi State University (RandIndex4.m, 2012)
Additional contributors (names unknown)
Academic Foundations
The SUBMARIT methodology is based on submarket identification research from marketing science:
Rand, W.M. (1971) - Objective criteria for the evaluation of clustering methods
Hubert, L. and Arabie, P. (1985) - Comparing partitions (Adjusted Rand Index)
Urban, G.L., Johnson, P.L., and Hauser, J.R. - Market structure analysis
Tibshirani, R., Walther, G., and Hastie, T. (2001) - Estimating the number of clusters via the gap statistic