
Instead of using the traditional, historically defined boundaries of the world's oceans, I let a clustering algorithm decide how to partition them purely based on geometry.
The method: I generated ~80,000 points uniformly distributed over the Earth's surface using a Fibonacci spiral (avoiding the polar oversampling you get from a regular lat/lon grid). After filtering out all points on land, about 57,000 ocean points remained. I projected them onto a unit sphere in 3D Cartesian coordinates and ran K-Means clustering with k=7.
The results are interesting to compare with the conventional ocean boundaries. The algorithm splits the Atlantic into two regions (north and south) and the Indian Ocean stays as one cluster. The Pacific, being by far the largest ocean, gets carved into four regions: north, south, east, and west.
Tools used: Python, scikit-learn, cartopy (Robinson projection), global-land-mask, numpy.
Posted by 1000_bucks_a_month

25 Comments
interesting but you get some oddities where part of the gulf of mexico is apart of a primarily pacific ocean sea
Is it even stable? Like what do you get if you rerun it a few times? How do centroids behave? Do they land in similar points or not really? And how does it depend on the method to choose initial centroids?
Also what about 4 oceans not 7 seas?
It really shows how made up ocean boundaries already are. Thx for sharing
You should use travel distance as distance metric. Not euclidean
Ignoring sailing distance and just taking pure distance is probably the biggest failure point you have here.
Suez and Panama should 100% be boundaries of things, and yet they both leak seas.
On one hand the Yellow Sea is in the yellow sea. On the other hand, the Red Sea is not in the red sea.
Why not density based clustering? Partitioning algorithms are good for convex shaped clusters and it shows here.
Ok now what are the islands close to each center? Hawaii and Tahiti?
This is really cool!
Sea != Ocean
Atlantic Ocean, Arctic Ocean, Indian Ocean, Pacific, Pacific, Pacific, and Pacific Ocean lol
Four Pacifics, Two Atlantics, One Indian Ocean.
I like how Indian Ocean is basically has not changed
Cyan: North Atlantic Ocean
Blue: South Atlantic Ocean
Pink: American Ocean
Red: Hawaiian Ocean
Brown: Indian Ocean
Yellow: Asian Ocean
Orange: Oceanic Ocean (Australian Ocean if that’s too confusing)
Yeah, if the points are this equally distributed it follows that the sea points are going to as equidistant from each other as possible.
Why is the western Caribbean a part of the pacific ocean
I guess everybody’s looking for something
That one sea is four seas?
But what about the Seven Seas of Rhye?
Lmao the Middle Pacific
It didn’t do a good job, back to the drawing board to make a better formula
Isn’t the whole thing about the 7 seas that it was more “7 seas known at the time?” Like I don’t think they would have objected to adding new ones when they were found.
That feels like doing the same thing for “the 13 Colonies” but using the whole modern US area to spread them across. It’s kinda just like a concept clash.
Seas and oceans are not the same thing.
But those are oceans, mate
Cool. Upvote from me for any map without the bullshit Southern Ocean