What is DBSCAN and how is it used in machine learning for clustering tasks? How does DBSCAN identify clusters based on data density? What are the roles of parameters like epsilon (ε) and minimum points in the DBSCAN algorithm? How does DBSCAN handle noise and outliers compared to other clustering methods? What are the advantages and limitations of using DBSCAN in real-world applications?