thecel
morph king
- Joined
- May 16, 2020
- Posts
- 24,232
- Reputation
- 51,256
How to figure out whether jaw is law or not
A step-by-step tutorial
The data in this post are fake—they're just examples. Someone here needs to actually do this study to endow the looksmaxxing community with invaluable info that'll finally end the "jaw is law" vs. "eyes are the prize" debate.
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
1. Obtain several thousand photos of male faces with consistent angles and lighting.A step-by-step tutorial
The data in this post are fake—they're just examples. Someone here needs to actually do this study to endow the looksmaxxing community with invaluable info that'll finally end the "jaw is law" vs. "eyes are the prize" debate.
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
2. Measure a fixed number of independent facial attributes for all of the faces. These are your independent variables. Independent means the attributes don't affect each other. For example, if you measure IPD and nose length, you should not also measure midface ratio.
3. Standardize the variables. In other words, take the z-score of every value.
4. Store the data in a spreadsheet or database. It should look like this (in reality it should have way more measured attributes than just the 4 shown):
Picture | IPD | PFL | Bigonial breadth | Bizygomatic breadth |
IMG_0001.jpg | 0.02 | 0.107 | -0.721 | -0.111 |
IMG_0002.jpg | -0.628 | 0.667 | 1.987 | 0.008 |
IMG_0003.jpg | 0.456 | 1.599 | 2.414 | 0.543 |
5. Make a survey that asks women to rate the male faces in your dataset on a scale of 1 to 10. Get a few thousand women to participate in your survey. Each survey participant should rate a moderate number of photos (like 20). Just make sure that, at the end, every photo has at least about 10 women's ratings on it.
6. Take the averages of the survey responses for each photo, and put these average values in your spreadsheet or database. It should look like this now:
Picture | …Variable names… | …Variable names… | …Variable names… | Mean attractiveness rating |
IMG_0001.jpg | …Numbers… | …Numbers… | …Numbers… | 5.25 |
IMG_0002.jpg | …Numbers… | …Numbers… | …Numbers… | 2.95 |
IMG_0003.jpg | …Numbers… | …Numbers… | …Numbers… | 8.43 |
7. Train a neural network (regression model) with your independent variables (standardized facial measurements) as the inputs and mean attractiveness rating as the output.
8. Write a script that goes through every face in the dataset, and for each variable, the script calculates how much changing that variable (holding all other variables constant) changes the attractiveness rating when all the variables are fed back into the neural network, using average rate of change to approximate instantaneous rate of change.
Basically, if we call the attractiveness rating of a particular face A and a variable such as canthal tilt x, you're calculating dA/dx when the other variables stay the same. The rates of change go into your spreadsheet or database.
Let's call the absolute value of dA/dx for any facial measurement x the importance of that facial attribute. The greater dA/dx is, the more significantly an attribute affects the overall attractiveness of the face at its current state.
Python pseudocode:
Code:
#
# The list face_data looks like this:
#
# [
# [0.02, 0.107, -0.721, -0.111, …],
# [-0.628, 0.667, 1.987, 0.008, …],
# [0.456, 1.599, 2.414, 0.543, …]
# ]
#
# It's like the table in step 3 except without the table header and the image names.
#
delta = 0.001
face_importance_data = []
for face in face_data:
importance_of_current_face_attributes = []
for x in face:
importance_of_current_face_attributes.append(abs((model.predict(x + delta / 2) - model.predict(x - delta / 2)) / delta))
face_importance_data.append(importance_of_current_face_attributes)
Example results:
Picture | … | Mean attractiveness rating | Importance of IPD | Importance of PFL | Importance of bigonial breadth | Importance of bizygomatic breadth |
IMG_0001.jpg | … | 5.25 | 0.334 | 4.393 | 0.832 | 3.888 |
IMG_0002.jpg | … | 2.95 | 1.203 | 0.955 | 1.203 | 5.001 |
IMG_0003.jpg | … | 8.43 | 0.234 | 1.3943 | 3.414 | 6.747 |
9. Group the faces into bins by their attractiveness ratings rounded down. For instance, a face with a rating of 1.25 goes into the "1" bin, a face with a rating of 9.7 goes into the "9" bin, and so on. There's no "10" bin.
10. Make a graph with the bins along the x axis. Plot points with the y values being the average importance per facial attribute of all the faces in each bin. It should look like this (needless to say, this is only an example with fake data):
Please don't misunderstand this graph as a graph that answers the question, "What feature(s) matter the most in order to ascend to [X] PSL?" No, what this graph says is, "For the average [X] PSL man, how much does his [feature] matter for his attractiveness being what it is?"
11. Congratulations! By making this graph, you'll now have the knowledge of what features are the most important to men's attractiveness across all looks tiers.
Last edited: