data driven segmentation methods