A data scientist is working with a dataset containing customer transactions for an e-commerce platform.
The goal is to segment customers into distinct groups based on their purchasing behavior to enable targeted marketing campaigns.
The data contains non-globular cluster shapes and a significant amount of noise from fraudulent or one-time buyers.
The number of customer segments is not known beforehand.
Which clustering algorithm would be most appropriate for this scenario?