Skip to main content
. 2021 Dec 22;16(12):e0259472. doi: 10.1371/journal.pone.0259472

Table 1. Improved DBSCAN clustering algorithm.

Input: D = {D1 (x1, y1), D2 (x2, y2),. . . Dm (xm, ym)}
        E, M
            MaxNum, MinNum, MaxEps, MinEps
Output: resultC, MinIDECI, bestEps, bestMinPts
1. Set D = undefined
2. for Eps in E and Minpts in M do
3.        for each p in D do
            4. If label(p) ≠ undefined then
5.                continue
6.                end
7.                else
8.                Check Eps(p) if Eps(p) < MinPts then
                    9. The Label (p) = Noise;
10.            end
11.            else
12.                    Label(p) = core, new C, Eps(p) join C
                for q in Eps(p) and Label(q) = undefined do
13.                        Check Eps(q) if Eps(q) and Label(q) not in any C then
14.                            Eps(q) join C
15.                end
16.            end
17.        end
18.        end
19.     end
20. if IEDCI(C) < MinIDECI then
21.        MinIDECI = IDECI(C)
22.        bestEps = Eps
23.        bestMinPts = MinPts
24.        resultC = C
25.        Eps + = 1,MinPts + = 1
26.    end
27. end