CornfedForever wrote: ↑Thu Sep 08, 2022 5:35 pm
How does a 'simple' algorithm distinguish a 'blunder' from a mathematical 'innacuracy'?
That is my problem with any I've seen is that they either can't or simply do not do it very well. Then again...it can be a difficult distinction. However, they really are different things.
The ones online at lichess and chess.com (and aimchess) are kind of laughable at times.
The question is what is a blunder.
The best thing is to calculate practical expected result from human point of view but this task is hard.
Defining a blunder by change in the estimate for expected result based on evaluation of a chess engine is at least better then defining it by change in evaluation by number of centipawns.
I like to define a blunder (??) move as a move that brings a playable position to losing. A playable position can have an eval of -75 cp or more, perhaps -50 or more for engines. And a losing position can have an eval of -500 cp or less, perhaps -300 cp or less for engines.
That eval is not material but from stockfish's search evaluation. Depending on the position, the -500 can still be fighting. For humans even if you are losing according to engine, but you are attacking and the position is complicated, you will still enjoy the moment and will not resign. So perhaps a measurement of complication is needed.
A mistake/bad (?) move is a move that brings a playable position to a position close to losing, but not losing. Example from -50cp to -200cp.
A dubious (?!) move is a move that brings a playable position to a position that is slightly bad. Example from -50cp to -100cp.
Inaccuracy is the distance from the best score to the score of your chosen move. If the best score is 50 cp and your move results to a score of -100 cp, the inaccuracy is 50 - (-100) or 150. So whether a move is a blunder, or a mistake or a dubious, there is inaccuracy in it.
Generally strong players do not commit a blunder/mistake/dubious moves. But they can lose by gradual deterioration of position evaluation. This is captured by the inaccuracy metric.
Inaccuracy can be weighted. If the score is from 1000 to 500, you are still winning but the inaccuracy of 500 is big. Compared to a score from 100 to -50, the inaccuracy is 150, it is smaller but it is more important (to determine the strength of the player) than the inaccuracy of 500 in the former example.
CornfedForever wrote: ↑Thu Sep 08, 2022 5:35 pm
How does a 'simple' algorithm distinguish a 'blunder' from a mathematical 'innacuracy'?
That is my problem with any I've seen is that they either can't or simply do not do it very well. Then again...it can be a difficult distinction. However, they really are different things.
The ones online at lichess and chess.com (and aimchess) are kind of laughable at times.
This is true, and is also where Fritz 18's "weighted error" concept in Full Analysis shines imo.
A beta release, the program is in github. There is a guide on how to run it on your browser.
The user will upload the pgn file and engine sf15 will analyze the games. Do not use huge pgn files as it may take time to analyze the games. There are sample pgn files with 2 and 4 games under the pgn folder.
Warning if you refresh the page or close it, the training positions will be lost.
In the next version I will provide support for loading the test positions from csv file and engine analyzer that can save the test positions in csv format.
There is a new file test_generator.py from the repo that can generate test positions (see usage) in json format. The output can be used in the upcoming new version of position trainer.