I'm currently working on a clustering algorithm for that uses a non-metric similarity measure. Many clustering algorithms perform in such a scenario because they assume metric properties. One of these is the triangular equality property.
This research paper describes some techniques for 'fixing' the triangle inequalities in a matrix: https://arxiv.org/pdf/1710.10655.pdf The purpose of this task is to read the paper thoroughly and choose one or two metric repair techniques to implement. It needs to be implemented in python, but I can help with this if you're not familiar with python.
We will then measure whether it improves clustering performance with DBSCAN, a technique that works better with metric distance functions.