One possible way to operationalize the requirement _"When the point in the denser area, it has greater weight"_ is to weight each point by the number of neighbors within a specified distance:

    nf = Nearest[pts];
    radius = 50;
    weightedData = WeightedData[pts, Length[nf[#, {All, radius}]] & /@ pts];
    center = Mean[weightedData];
    ListPlot[pts, Epilog -> {Red, PointSize[.02], Point[Mean[pts]], Green, Point @ center}]
[![enter image description here][1]][1]

With `radius = 100` we get

[![enter image description here][2]][2]


  [1]: https://i.sstatic.net/5iAfp.png
  [2]: https://i.sstatic.net/PXpHC.png