notebooks, images, scripts

This commit is contained in:
Pawel Sarkowicz
2026-03-26 18:01:52 -04:00
parent 53f31c0f77
commit 09454ba38b
83 changed files with 8681 additions and 375 deletions

View File

@@ -0,0 +1,324 @@
Tension Board 2 Feature Engineering Explanation
This document explains the engineered features used for climb difficulty prediction.
--------------------------------------------------
1. BASIC STRUCTURE FEATURES
--------------------------------------------------
angle
Wall angle in degrees.
total_holds
Total number of holds in the climb.
hand_holds / foot_holds
Number of hand vs foot holds.
start_holds / finish_holds / middle_holds
Counts of hold roles.
--------------------------------------------------
2. MATCHING FEATURE
--------------------------------------------------
is_nomatch
Binary feature indicating whether matching is disallowed.
Derived from:
- explicit flag OR
- description text (e.g. “no match”, “no matching”)
--------------------------------------------------
3. SPATIAL FEATURES
--------------------------------------------------
mean_x, mean_y
Center of mass of all holds.
std_x, std_y
Spread of holds.
range_x, range_y
Width and height of climb.
min_y, max_y
Lowest and highest holds.
height_gained
Total vertical gain.
height_gained_start_finish
Vertical gain from start to finish.
--------------------------------------------------
4. START / FINISH FEATURES
--------------------------------------------------
start_height, finish_height
Average height of start/finish holds.
start_height_min/max, finish_height_min/max
Range of start/finish positions.
--------------------------------------------------
5. BOUNDING BOX FEATURES
--------------------------------------------------
bbox_area
Area covered by climb.
bbox_aspect_ratio
Horizontal vs vertical shape.
bbox_normalized_area
Relative coverage of board.
hold_density
Holds per unit area.
holds_per_vertical_foot
Vertical density.
--------------------------------------------------
6. SYMMETRY FEATURES
--------------------------------------------------
left_holds, right_holds
Distribution across board center.
left_ratio
Fraction of holds on left.
symmetry_score
Symmetry measure (1 = perfectly balanced).
hand_left_ratio, hand_symmetry
Same but for hand holds.
--------------------------------------------------
7. VERTICAL DISTRIBUTION
--------------------------------------------------
upper_holds, lower_holds
Split around median height.
upper_ratio
Proportion of upper holds.
--------------------------------------------------
8. REACH / DISTANCE FEATURES
--------------------------------------------------
max_hand_reach, mean_hand_reach, std_hand_reach
Distances between hand holds.
hand_spread_x, hand_spread_y
Spatial extent of hand holds.
max_foot_spread, mean_foot_spread
Foot hold spacing.
max_hand_to_foot, mean_hand_to_foot
Hand-foot distances.
--------------------------------------------------
9. HOLD DIFFICULTY FEATURES
--------------------------------------------------
mean_hold_difficulty
Average difficulty of holds.
max_hold_difficulty / min_hold_difficulty
Extremes.
std_hold_difficulty
Variation.
median_hold_difficulty
Central tendency.
difficulty_range
Spread.
mean_hand_difficulty / mean_foot_difficulty
Role-specific difficulty.
start_difficulty / finish_difficulty
Entry and exit difficulty.
--------------------------------------------------
10. COMBINED / INTERACTION FEATURES
--------------------------------------------------
hand_foot_ratio
Balance of hands vs feet.
movement_density
Holds per vertical distance.
weighted_difficulty
Height-weighted difficulty.
difficulty_gradient
Difference between start and finish difficulty.
--------------------------------------------------
11. SHAPE / GEOMETRY FEATURES
--------------------------------------------------
convex_hull_area
Area of convex hull around holds.
convex_hull_perimeter
Perimeter.
hull_area_to_bbox_ratio
Compactness.
--------------------------------------------------
12. NEAREST-NEIGHBOR FEATURES
--------------------------------------------------
min_nn_distance / mean_nn_distance
Spacing between holds.
max_nn_distance
Maximum separation.
std_nn_distance
Spread.
--------------------------------------------------
13. CLUSTERING FEATURES
--------------------------------------------------
mean_neighbors_12in
Average nearby holds within 12 inches.
max_neighbors_12in
Max clustering.
clustering_ratio
Normalized clustering.
--------------------------------------------------
14. PATH FEATURES
--------------------------------------------------
path_length_vertical
Estimated movement path length.
path_efficiency
Vertical gain vs path length.
--------------------------------------------------
15. REGIONAL DIFFICULTY FEATURES
--------------------------------------------------
lower_region_difficulty
Bottom third difficulty.
middle_region_difficulty
Middle third difficulty.
upper_region_difficulty
Top third difficulty.
difficulty_progression
Change in difficulty from bottom to top.
--------------------------------------------------
16. DIFFICULTY TRANSITIONS
--------------------------------------------------
max_difficulty_jump
Largest jump between moves.
mean_difficulty_jump
Average jump.
difficulty_weighted_reach
Distance weighted by difficulty.
--------------------------------------------------
17. NORMALIZED FEATURES
--------------------------------------------------
mean_x_normalized, mean_y_normalized
Relative board position.
std_x_normalized, std_y_normalized
Normalized spread.
start_height_normalized, finish_height_normalized
Relative heights.
spread_x_normalized, spread_y_normalized
Coverage.
--------------------------------------------------
18. RELATIVE POSITION FEATURES
--------------------------------------------------
start_offset_from_typical
Deviation from typical start height.
finish_offset_from_typical
Deviation from typical finish height.
mean_y_relative_to_start
Average height relative to start.
max_y_relative_to_start
Highest point relative to start.
--------------------------------------------------
19. DISTRIBUTION FEATURES
--------------------------------------------------
y_q25, y_q50, y_q75
Height quartiles.
y_iqr
Spread.
holds_bottom_quartile
Lower density.
holds_top_quartile
Upper density.
--------------------------------------------------
SUMMARY
--------------------------------------------------
These features capture:
- Geometry (shape, spread)
- Movement (reach, density, path)
- Difficulty (hold-based + progression)
- Symmetry and balance
- Spatial distribution
Together they allow the model to approximate both:
- physical movement complexity
- and hold difficulty structure of a climb.

View File

@@ -0,0 +1,120 @@
angle
total_holds
hand_holds
foot_holds
start_holds
finish_holds
middle_holds
is_nomatch
mean_x
mean_y
std_x
std_y
range_x
range_y
min_y
max_y
start_height
start_height_min
start_height_max
finish_height
finish_height_min
finish_height_max
height_gained
height_gained_start_finish
bbox_area
bbox_aspect_ratio
bbox_normalized_area
hold_density
holds_per_vertical_foot
left_holds
right_holds
left_ratio
symmetry_score
hand_left_ratio
hand_symmetry
upper_holds
lower_holds
upper_ratio
max_hand_reach
min_hand_reach
mean_hand_reach
std_hand_reach
hand_spread_x
hand_spread_y
max_foot_spread
mean_foot_spread
foot_spread_x
foot_spread_y
max_hand_to_foot
min_hand_to_foot
mean_hand_to_foot
std_hand_to_foot
mean_hold_difficulty
max_hold_difficulty
min_hold_difficulty
std_hold_difficulty
median_hold_difficulty
difficulty_range
mean_hand_difficulty
max_hand_difficulty
std_hand_difficulty
mean_foot_difficulty
max_foot_difficulty
std_foot_difficulty
start_difficulty
finish_difficulty
hand_foot_ratio
movement_density
hold_com_x
hold_com_y
weighted_difficulty
convex_hull_area
convex_hull_perimeter
hull_area_to_bbox_ratio
min_nn_distance
mean_nn_distance
max_nn_distance
std_nn_distance
mean_neighbors_12in
max_neighbors_12in
clustering_ratio
path_length_vertical
path_efficiency
difficulty_gradient
lower_region_difficulty
middle_region_difficulty
upper_region_difficulty
difficulty_progression
max_difficulty_jump
mean_difficulty_jump
difficulty_weighted_reach
max_weighted_reach
mean_x_normalized
mean_y_normalized
std_x_normalized
std_y_normalized
start_height_normalized
finish_height_normalized
start_offset_from_typical
finish_offset_from_typical
mean_y_relative_to_start
max_y_relative_to_start
spread_x_normalized
spread_y_normalized
bbox_coverage_x
bbox_coverage_y
y_q25
y_q50
y_q75
y_iqr
holds_bottom_quartile
holds_top_quartile
display_difficulty
angle_x_holds
angle_x_difficulty
angle_squared
difficulty_x_height
difficulty_x_density
complexity_score
hull_area_x_difficulty