Rock Climbing Recommendation Engine

Gabriel Seemann
3 min readMar 19, 2020

--

Pitch 2 of Bonnie’s Roof 5.9, The Gunks New York

For my final project at Flatiron’s Data Science Immersive I decided to merge my two passions: coding and rock climbing.

I’ve often had climbing routes I enjoy and I’ll ask friends if they know of similar types of climbs. I figured, why not create a program that could do exactly that.

Holcomb Valley, CA Photo: Kent Sullivan

The general concept was that I create a content based recommendation system that would ask for a reference climb, search location, and radius. The program would then return the top 10 most similar climbs in that area. I wanted the flexibility to search for a climb in Yosemite that is similar to a reference climb in the Gunks (New York).

The Process

I began by going to Mountain Project (think Wikipedia for rock climbing routes) and used their API to get general info on around 36,000 climbs across the US. The information included, route difficulty, route type(boulder, trad, sport etc.), height, star rating, and some geographic data.

Though this information was a good baseline, I felt that it did not really capture the style of the route. Perhaps as important as grade and type, was how the features of the rock characterize the route. For example, I wanted to show if the route was a slab, crimpy, overhung, vertical, or followed a crack feature.

Some of the climbing styles and descriptions

To get this information I went back to all the routes and scraped their descriptions. From here, I looked for keywords and added them as a binary column to describe the climbs.

After that, I looked at the distributions of my ~36,000 climbs and felt I was ready to create the recommendation engine.

Climbing

Recommendation Engine

To began, I scaled the features, vectorized all of the routes, and choose to use a cosine similarity to find the best match.

Cosine Similarity Equation

My program will ask the user for a reference climb (using a mountain project url), a zip code or city & state, and search radius. From there is will display the top 10 most similar climbs.

Website and Demo

Feel free to follow this link to try out the recommendation engine for yourself. I have also made a Demo video for those of you that would prefer to watch that instead.

Climb recommender Demo

Next Steps

I would like to add a choice that allows the user to select features to match on rather than a specific reference climb, as well as create a user based recommendation system.

References

For those who are interested in seeing more of the code, I have pasted the link to my GitHub repo below.

https://github.com/gseemann/climb_recommender

--

--