prediction image update
@@ -1,6 +1,6 @@
|
||||
# Tension Board 2: Predicting Climbing Route Difficulty from Board Data
|
||||
|
||||
I recently got into *board climbing*, and have been enjoying using the <a href="https://tensionclimbing.com/products/tension-board-2">Tension Board 2</a>. I've been climbing on the 12ftx12ft (mirrored) that is available at my local gym, and I've never felt that the phrase "*it hurts so good*" would be so apt. As such, I decided to do an in depth analysis of available data.
|
||||
I recently got into *board climbing*, and have been enjoying using the <a href="https://tensionclimbing.com/products/tension-board-2">Tension Board 2</a>. I've been climbing on the 12ftx12ft (mirrored) that is available at my local gym, and I've never felt that the phrase "*it hurts so good*" would be so apt. As such, I decided to do an in depth analysis of available data. See also an <a href="https://gitlab.com/psark/Kilter-Board-Analysis">analysis of the Kilter Board</a>.
|
||||
|
||||

|
||||
|
||||
@@ -11,7 +11,7 @@ I recently got into *board climbing*, and have been enjoying using the <a href="
|
||||
|
||||
## Overview
|
||||
|
||||
This project analyzes ~130,000 climbs from the Tension Boards in order to do the following.
|
||||
This project analyzes ~130,000 climbs on the Tension Boards in order to do the following.
|
||||
> 1. **Understand** hold usage patterns and difficulty distributions
|
||||
> 2. **Quantify** empircal hold difficulty scores
|
||||
> 3. **Predict** climb grades from spatial and structural features of climbs
|
||||
@@ -91,7 +91,6 @@ Go to your working directory and run notebooks in order:
|
||||
|
||||
Note:
|
||||
|
||||
* Notebooks 01-03 are uploaded with all of their cells run, so that one can see the data analysis. Notebooks 04-06 are uploaded without having been run.
|
||||
* Notebook 03 generates global hold difficulty tables
|
||||
* Notebook 04 generates feature matrix
|
||||
* Notebook 05 trains models
|
||||
|
||||
|
Before Width: | Height: | Size: 501 KiB After Width: | Height: | Size: 565 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 412 KiB After Width: | Height: | Size: 341 KiB |
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 567 KiB |
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 487 KiB After Width: | Height: | Size: 564 KiB |
@@ -367,6 +367,7 @@
|
||||
" ax.set_title(f'{model_name}: Residual Plot', fontsize=14)\n",
|
||||
"\n",
|
||||
" plt.tight_layout()\n",
|
||||
" plt.savefig(f'../images/05_predictive_modelling/{model_name.lower().replace(\" \", \"_\")}_predictions.png', dpi=150, bbox_inches='tight')\n",
|
||||
" plt.show()\n",
|
||||
"\n",
|
||||
"\n",
|
||||
@@ -398,6 +399,7 @@
|
||||
" plt.suptitle('') # Remove automatic title\n",
|
||||
"\n",
|
||||
" plt.tight_layout()\n",
|
||||
" plt.savefig(f'../images/05_predictive_modelling/{model_name.lower().replace(\" \", \"_\")}_errors.png', dpi=150, bbox_inches='tight')\n",
|
||||
" plt.show()\n"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -6,5 +6,4 @@ scikit-learn
|
||||
jupyter
|
||||
notebook
|
||||
torch
|
||||
sqlite3
|
||||
boardlib
|
||||
boardlib
|
||||
|
||||