- Anomalous Transaction Detection System
- Table of Contents
- Executive Summary
- Anomaly Detection Methods
- System Architecture
- Usage
- Development Setup
- Implementation Details
- Technical Specifications
- Quality Assurance
- Deployment Considerations
- Business Value Proposition
- Technical Limitations and Future Enhancements
- Conclusion
This anomaly detection system monitors financial transactions by processing unstructured logs, extracting meaningful features, and identifying suspicious patterns using four detection algorithms. The system features enterprise-level architecture with robust logging, comprehensive error handling, interactive visualization, and multiple deployment options including a live web interface using Streamlit.
The system implements four complementary detection algorithms, each designed to catch different types of anomalous behavior:
Best for: General-purpose anomaly detection with high accuracy
How it works: Uses ensemble learning to isolate anomalies by randomly selecting features and split values. Anomalous points require fewer splits to isolate.
Key Parameters:
contamination(0.01-0.10): Expected proportion of anomalies (default: 0.02 = 2%)- Higher contamination = more anomalies detected
- Lower contamination = stricter detection
When to use:
- Unknown anomaly patterns
- Need explainable results
- Balanced dataset
- Production environments
Best for: Known fraud patterns and compliance requirements
How it works: Flags transactions that combine high amounts (>$3000) with new location usage
Key Parameters:
RULE_THRESHOLD: Amount threshold (default: $3000)- No contamination parameter needed
When to use:
- Clear business rules exist
- Regulatory compliance
- High-value transaction monitoring
- Interpretable results required
Best for: Detecting unusual user behavior patterns
How it works: Analyzes location transition patterns and flags rare user movements (≤3 occurrences)
Key Parameters:
RARE_TRANSITION_THRESHOLD: Minimum occurrences to be considered normal (default: 3)- Focuses on user journey anomalies
When to use:
- Geographic fraud detection
- Travel pattern analysis
- Account takeover detection
- Behavioral anomalies
Best for: Complex pattern recognition in categorical data
How it works: Uses PCA reconstruction error on transaction type, location, and device combinations
Key Parameters:
PCA_PERCENTILE: Threshold percentile for anomalies (default: 98th percentile)n_components: PCA dimensions (default: min(10, features))
When to use:
- Complex categorical patterns
- Device fingerprinting
- Subtle anomaly detection
- Research and experimentation
| Scenario | Recommended Method | Reason |
|---|---|---|
| Production deployment | Isolation Forest | Best balance of accuracy and interpretability |
| Compliance/Audit | Rule-Based | Clear, explainable business logic |
| Geographic fraud | Sequence Modeling | Specializes in location patterns |
| Research/Experimentation | All methods | Compare results across approaches |
| High-value transactions | Rule-Based + Isolation Forest | Combine explicit rules with ML |
The system follows a modular architecture with clear separation of concerns:
- Data Ingestion Layer (
parsing_utils.py) - Feature Engineering & Analysis Engine (
analysis.py) - Interactive User Interface (
streamlit_app.py) - Robust Logging System (
errorlogger.py) - Cross-Platform Build System (
Makefile) - Container Orchestration (
docker-compose.yml,Dockerfile)
Live Demo: https://anomaloustransactiondetector.streamlit.app/
Local deployment:
# Install dependencies
pip install -r requirements.txt
# Run Streamlit app
streamlit run streamlit_app.py# Run with different detection methods
python analysis.py --input [your_data_set] --method isolation_forest
python analysis.py --input [your_data_set] --method rule_based
python analysis.py --input [your_data_set] --method sequence_modeling
python analysis.py --input [your_data_set] --method embedding_autoencoder
# Adjust parameters
python analysis.py --input [your_data_set] --contamination 0.05 --top_n 50 --method [your_preferred_method]NB: You can use any of CSV, XLSX or XLS files.
# Build and run with Docker Compose
docker-compose up --build
# Or use Makefile
make docker-build
make docker-run# Complete development setup
make dev-setup
# Or manual setup
pip install -r requirements-dev.txt# Run tests with coverage
make test
# or
pytest --cov=. --cov-report=html
# Code formatting
make format
# or
black . && isort .
# Linting
make lint
# or
flake8 .
# Security checks
make security
# or
bandit -r . && safety check
# Run all quality checks
make checkObjective: Convert unstructured log entries into structured data suitable for analysis.
Key Features:
- Multi-format Support: Handles diverse log formats including triple-colon (
:::), double-colon (::), pipe-separated (|), and compound patterns - Robust Pattern Matching: Uses regex-based parsing with fallback mechanisms
- Error Resilience: Graceful handling of malformed entries with partial data recovery
Parsing Strategies:
parse_triple_colon(): Handles:::delimited logsparse_simple_colon(): Processes::delimited entriesparse_compound_patterns(): Complex regex patterns for varied formats_fallback_parse_log(): Extracts partial information when primary parsers fail
Data Extraction:
- Timestamp normalization with timezone handling
- Currency symbol detection and standardization
- User ID extraction and formatting
- Transaction type classification
- Location and device information extraction
Core Functions:
convert_amount(): Handles multi-currency transactions (USD, EUR, GBP)- Automatic symbol detection and numeric conversion
- Negative amount handling and precision control
parse_datetime(): Intelligent date parsing with format detection- Time-based features: hour, weekday, day of month, month
- Sequential analysis: time gaps between transactions
- Statistical Profiling: Per-user transaction statistics (median, standard deviation)
- Behavioral Anomalies: New device/location detection
- Z-score Calculation: Standardized amount deviation from user baseline
_add_sequential_features(): Transaction sequence analysis_add_user_stats(): Rolling statistical measures_add_z_score(): Normalized deviation metrics
The system implements four distinct detection approaches:
- Algorithm: Isolation Forest with configurable contamination rates
- Features: Multi-dimensional feature space including amount, temporal, and behavioral features
- Preprocessing: One-hot encoding for categorical variables, standardization for numerical features
- Tuning: Contamination rate control (default: 2%)
- Logic: High-amount transactions combined with new location usage
- Threshold: Configurable amount threshold (default: $3000)
- Behavioral Trigger: First-time location usage per user
- Approach: Markov Chain analysis of location transitions
- Detection: Identifies rare location transition patterns
- Threshold: Transitions occurring ≤3 times in dataset
- Method: Principal Component Analysis with reconstruction error
- Features: Text-based features (transaction type, location, device)
- Threshold: 98th percentile of reconstruction error
Explanation Generation:
- Feature-based heuristics for anomaly explanation
- Multi-factor analysis: amount deviation, device novelty, location novelty, temporal gaps
- Human-readable explanations for each flagged transaction
Explanation Categories:
- Amount-based: "Amount far above user average"
- Behavioral: "First time using device", "Unseen location"
- Temporal: "Unusual time gap since last transaction"
Architecture: Web-based interface built with Streamlit framework
Key Features:
- File Upload: Support for CSV and Excel formats
- Algorithm Selection: Dynamic switching between detection methods
- Parameter Tuning: Real-time adjustment of contamination rates and result counts
- Visualization Suite: Interactive charts using Plotly
Visualization Components:
- Time series analysis of anomaly frequency
- Device usage patterns for anomalous transactions
- Geographic distribution of anomalies
- User-level anomaly frequency analysis
- Transaction amount distributions
- Top anomalies table with explanations
Business Intelligence Dashboard:
- Dynamic risk assessment with color-coded alerts
- Financial impact estimation
- Recent activity monitoring (7-day window)
- Most anomalous entities identification
Output Formats:
- CSV Exports: Parsed logs, feature matrices, top anomalies
- HTML Visualizations: Interactive charts for stakeholder review
- Diagnostic Reports: Parsing success/failure statistics
File Structure:
.
├── analysis.py
├── anomaly_detection.ipynb
├── data
│ ├── synthetic_dirty_transaction_logs.csv
│ └── synthetic_dirty_transaction_logs.xlsx
├── Data Flow Architecture.png
├── docker-compose.yml
├── Dockerfile
├── errorlogger.py
├── fraud_tools_team_ds_test.docx
├── Makefile
├── output
│ ├── embedding_autoencoder/
│ ├── isolation_forest/
│ ├── jupyter_output
│ │ ├── embedding_autoencoder_anomalies.csv
│ │ ├── embedding_autoencoder_result.csv
│ │ ├── isolation_forest_anomalies.csv
│ │ ├── isolation_forest_result.csv
│ │ ├── parsed_logs.csv
│ │ ├── rule_based_anomalies.csv
│ │ ├── rule_based_result.csv
│ │ ├── sequence_modeling_anomalies.csv
│ │ └── sequence_modeling_result.csv
│ ├── rule_based/
│ └── sequence_modeling/
├── parsing_utils.py
├── pyproject.toml
├── pytest.ini
├── README copy.md
├── README.md
├── requirements-dev.txt
├── requirements.txt
├── streamlit_app.py
└── tests
├── __init__.py
├── test_analysis.py
├── test_errorlogger.py
├── test_parsing_utils.py
└── test_streamlit.py
Architecture: Centralized logging with file-based persistence and clean console output
Key Features:
- Separate Log Files:
info.log,warning.log,error.log - Duplicate Prevention: Hash-based deduplication
- Session Tracking: Automatic session separators
- Context Enrichment: Additional metadata for debugging
- Log Rotation: Automatic file rotation based on size
- Clean Console: Minimal console output for production use
Usage:
from errorlogger import system_logger
system_logger.info("Process completed successfully")
system_logger.warning("Partial data recovered", {"records": 150})
system_logger.error(exception, {"context": "data_processing"}, exc_info=True)Production Dependencies (requirements.txt):
- Core Processing: pandas>=2.0.0, numpy>=1.24.0, scikit-learn>=1.3.0
- Visualization: plotly>=5.15.0, streamlit>=1.25.0
- Date Processing: python-dateutil>=2.8.0
- File Handling: openpyxl>=3.1.0 (Excel support)
Development Dependencies (requirements-dev.txt):
- Testing: pytest>=7.4.0, pytest-cov>=4.1.0
- Code Quality: black>=23.0.0, flake8>=6.0.0, isort>=5.12.0
- Security: bandit>=1.7.0, safety>=2.3.0
- Type Checking: mypy>=1.5.0
Infrastructure:
- Containerization: Docker, docker-compose
- Build System: Make (cross-platform)
- CI/CD: GitHub Actions
- Scalability: Vectorized operations using pandas/numpy
- Memory Efficiency: Streaming data processing where applicable
- Processing Speed: Optimized feature engineering with minimal loops
- Parsing Resilience: Graceful degradation with partial data recovery
- Validation: Input data validation with informative error messages
- Robust Logging: Centralized logging system with file persistence
- Exception Tracking: Full traceback capture with context information
- Session Management: Automatic session separation and log rotation
- Modular Design: Clear separation of concerns with enterprise-grade architecture
- Documentation: Comprehensive docstrings and inline comments
- Type Hints: Function signatures with type annotations
- Error Handling: Robust exception management with centralized logging
- Code Standards: PEP8 compliance with automated formatting
- Comprehensive Test Suite: 109+ tests with 90%+ coverage across all modules
test_analysis.py: 23 tests covering anomaly detection algorithmstest_errorlogger.py: 26 tests covering logging functionalitytest_parsing_utils.py: 29 tests covering log parsing with 100% coveragetest_streamlit.py: 31+ tests covering web interface functionality
- Automated CI/CD Pipeline: GitHub Actions with multi-stage validation
- Code formatting checks (Black, isort)
- Linting validation (flake8 with zero-error policy)
- Security scanning (Bandit, Trivy)
- Test execution with coverage reporting
- Quality Gates: All checks must pass before deployment
- Cross-Platform Testing: Automated testing on multiple environments
- Configuration Management: Parameterized thresholds and settings
- Monitoring: Built-in diagnostic reporting and robust logging
- Scalability: Designed for batch processing of large datasets
- Integration: Command-line interface and web API for automated workflows
- Containerization: Docker support with multi-stage builds
- Cross-Platform: Windows, Linux, macOS compatibility
- CI/CD Pipeline: Automated testing, security scanning, and deployment
- Code Quality: Enforced formatting, linting, and security standards
- Input Validation: Sanitization of user inputs
- Data Privacy: No sensitive data persistence beyond session
- Access Control: Web interface with configurable access patterns
- Security Scanning: Automated vulnerability detection with Bandit and Trivy
- Dependency Management: Regular security updates and vulnerability monitoring
- Safe Defaults: Secure configuration out-of-the-box
- Automated Detection: Reduces manual review overhead by 80%+
- Multi-Algorithm Approach: Four detection methods for comprehensive coverage
- Interpretable Results: Clear explanations for each flagged transaction
- Interactive Analysis: Web interface with real-time parameter tuning
- Method-Specific Outputs: Organized results by detection algorithm
- Live Demo Access: Immediate testing via hosted Streamlit app
- False Positive Control: Tunable contamination rates
- Comprehensive Coverage: Multiple detection algorithms reduce blind spots
- Audit Trail: Complete transaction processing history
- Regulatory Compliance: Transparent decision-making process
- Supervised Learning: No labeled data integration (unsupervised only)
- Real-time Processing: Batch-oriented design
- Model Persistence: No model serialization for reuse
- Deep Learning Integration: LSTM networks for sequence analysis
- Real-time Streaming: Apache Kafka integration for live processing
- Model Management: MLOps pipeline for model versioning and deployment
- Advanced Visualization: Geographic mapping with coordinate support
This anomaly detection system represents a comprehensive solution for financial transaction monitoring, combining robust data processing, multiple detection algorithms, and intuitive visualization. The modular architecture ensures maintainability and extensibility, while the multi-algorithm approach provides comprehensive anomaly coverage. The system is production-ready with appropriate error handling, logging, and quality assurance measures.
