My article on a polular Russian IT portal:
http://habrahabr.ru/post/254753/
It is in Russian, but I believe the text is quite understandable even without translation.
Piece weights with regression analysis (in Russian)
Moderators: hgm, Rebel, chrisw
-
- Posts: 267
- Joined: Fri Mar 17, 2006 8:01 am
- Location: Russia
- Full name: Vladimir Medvedev
-
- Posts: 1968
- Joined: Wed Jul 13, 2011 9:04 pm
- Location: Madrid, Spain.
Re: Piece weights with regression analysis (in Russian).
Hello Vladimir:
If I understood correctly, you input a PGN file in a programme of your own and you get results that you later normalize to pawn = 100 cp. It would be interesting to input some big PGN files such as CCRL 40/4, CEGT 40/4 and CEGT (various TCs).
There are free PGNs of tons of players and openings here:
Download PGN Files
It would be interesting to compare more players than Anand, Andersen and Carlsen. I do not know about the openings.
I know that it depends on the hardware, but... how much time does it take to solve the gradient method and with how many games in the PGN?
Once again: thank you very much. I really enjoy this topic.
Regards from Spain.
Ajedrecista.
Great job! Congratulations.WinPooh wrote:My article on a polular Russian IT portal:
http://habrahabr.ru/post/254753/
It is in Russian, but I believe the text is quite understandable even without translation.
If I understood correctly, you input a PGN file in a programme of your own and you get results that you later normalize to pawn = 100 cp. It would be interesting to input some big PGN files such as CCRL 40/4, CEGT 40/4 and CEGT (various TCs).
There are free PGNs of tons of players and openings here:
Download PGN Files
It would be interesting to compare more players than Anand, Andersen and Carlsen. I do not know about the openings.
I know that it depends on the hardware, but... how much time does it take to solve the gradient method and with how many games in the PGN?
Once again: thank you very much. I really enjoy this topic.
Regards from Spain.
Ajedrecista.
-
- Posts: 267
- Joined: Fri Mar 17, 2006 8:01 am
- Location: Russia
- Full name: Vladimir Medvedev
Re: Piece weights with regression analysis (in Russian).
Less than a minute for 10000 gradient steps on a 3000-games file.Ajedrecista wrote:Hello Vladimir:
I know that it depends on the hardware, but... how much time does it take to solve the gradient method and with how many games in the PGN?
-
- Posts: 12540
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Piece weights with regression analysis (in Russian).
I found that it auto-translates fairly well (though elephant for bishop is a little distracting).
Here is the github link for the source:
https://github.com/WinPooh/pgnlearn
This seems like a really fun experiment.
I wonder if it can be used to discover weaknesses in opponents.
Here is the github link for the source:
https://github.com/WinPooh/pgnlearn
This seems like a really fun experiment.
I wonder if it can be used to discover weaknesses in opponents.
-
- Posts: 931
- Joined: Tue Mar 09, 2010 3:46 pm
- Location: New York
- Full name: Álvaro Begué (RuyDos)
Re: Piece weights with regression analysis (in Russian).
The word in Spanish is "alfil", which I think is a transliteration of the Arabic for "the elephant".Dann Corbit wrote:I found that it auto-translates fairly well (though elephant for bishop is a little distracting).
-
- Posts: 12540
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Piece weights with regression analysis (in Russian).
These weights are derived from correspondence chess:
PIECE VALUES:
Pawn: 100
Knight: 162.839
Bishop: 203.914
Rook: 306.862
Queen: 697.509
PIECE VALUES:
Pawn: 100
Knight: 162.839
Bishop: 203.914
Rook: 306.862
Queen: 697.509
-
- Posts: 12540
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Piece weights with regression analysis (in Russian).
TCEC 2900+ Elo games:
Created file: f:\pgn\tcec-2900.mat
Loading dataset...
[ 16885 x 5 ]
Solving (gradient method)...
Iter 0: [ 0 0 0 0 0 ] -> 0.693147
Iter 1000: [ 0.58 1.65046 1.9756 2.75676 5.59641 ] -> 0.605806
Iter 2000: [ 0.619852 1.87064 2.20553 3.09101 6.36438 ] -> 0.604818
Iter 3000: [ 0.627587 1.91357 2.25042 3.15607 6.51386 ] -> 0.604781
Iter 4000: [ 0.62918 1.92242 2.25967 3.16948 6.54465 ] -> 0.60478
Iter 5000: [ 0.629511 1.92426 2.2616 3.17227 6.55106 ] -> 0.60478
Iter 6000: [ 0.62958 1.92464 2.262 3.17285 6.5524 ] -> 0.60478
Iter 7000: [ 0.629595 1.92472 2.26208 3.17297 6.55268 ] -> 0.60478
Iter 8000: [ 0.629598 1.92474 2.2621 3.173 6.55274 ] -> 0.60478
Iter 9000: [ 0.629599 1.92474 2.2621 3.173 6.55275 ] -> 0.60478
Iter 10000: [ 0.629599 1.92474 2.26211 3.173 6.55276 ] -> 0.60478
PIECE VALUES:
Pawn: 100
Knight: 305.71
Bishop: 359.293
Rook: 503.972
Queen: 1040.78
Press ENTER to finish
Created file: f:\pgn\tcec-2900.mat
Loading dataset...
[ 16885 x 5 ]
Solving (gradient method)...
Iter 0: [ 0 0 0 0 0 ] -> 0.693147
Iter 1000: [ 0.58 1.65046 1.9756 2.75676 5.59641 ] -> 0.605806
Iter 2000: [ 0.619852 1.87064 2.20553 3.09101 6.36438 ] -> 0.604818
Iter 3000: [ 0.627587 1.91357 2.25042 3.15607 6.51386 ] -> 0.604781
Iter 4000: [ 0.62918 1.92242 2.25967 3.16948 6.54465 ] -> 0.60478
Iter 5000: [ 0.629511 1.92426 2.2616 3.17227 6.55106 ] -> 0.60478
Iter 6000: [ 0.62958 1.92464 2.262 3.17285 6.5524 ] -> 0.60478
Iter 7000: [ 0.629595 1.92472 2.26208 3.17297 6.55268 ] -> 0.60478
Iter 8000: [ 0.629598 1.92474 2.2621 3.173 6.55274 ] -> 0.60478
Iter 9000: [ 0.629599 1.92474 2.2621 3.173 6.55275 ] -> 0.60478
Iter 10000: [ 0.629599 1.92474 2.26211 3.173 6.55276 ] -> 0.60478
PIECE VALUES:
Pawn: 100
Knight: 305.71
Bishop: 359.293
Rook: 503.972
Queen: 1040.78
Press ENTER to finish
-
- Posts: 411
- Joined: Thu Dec 30, 2010 4:48 am
Re: Piece weights with regression analysis (in Russian)
One problem with this approach is the situations in which the imbalances are likely to most commonly occur. For instance, minor for 2-3 pawns, the stronger players usually will have only gone into this when it's really minor for 2-3 pawns AND positional compensation. This will make the minors look less valuable than they actually are.
-
- Posts: 5228
- Joined: Thu Mar 09, 2006 9:40 am
- Full name: Vincent Lejeune
Re: Piece weights with regression analysis (in Russian)
It would be better to compute different values for middlegame and endgame.kbhearn wrote:One problem with this approach is the situations in which the imbalances are likely to most commonly occur. For instance, minor for 2-3 pawns, the stronger players usually will have only gone into this when it's really minor for 2-3 pawns AND positional compensation. This will make the minors look less valuable than they actually are.
-
- Posts: 12540
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Piece weights with regression analysis (in Russian).
CEGT 40/20, games with both players having ELO 2900+:
Games: 250312
Created file: f:\pgn\cegt4020-2900.mat
Loading dataset...
[ 1527543 x 5 ]
Solving (gradient method)...
Iter 0: [ 0 0 0 0 0 ] -> 0.693147
Iter 1000: [ 0.727343 1.77441 2.06056 2.98876 5.90056 ] -> 0.563205
Iter 2000: [ 0.764584 1.97576 2.27007 3.30258 6.65456 ] -> 0.562299
Iter 3000: [ 0.772605 2.01907 2.31517 3.37003 6.81694 ] -> 0.562258
Iter 4000: [ 0.774447 2.02902 2.32553 3.38552 6.85424 ] -> 0.562256
Iter 5000: [ 0.774876 2.03134 2.32794 3.38912 6.86293 ] -> 0.562255
Iter 6000: [ 0.774976 2.03188 2.3285 3.38996 6.86496 ] -> 0.562255
Iter 7000: [ 0.775 2.03201 2.32864 3.39016 6.86543 ] -> 0.562255
Iter 8000: [ 0.775005 2.03204 2.32867 3.39021 6.86554 ] -> 0.562255
Iter 9000: [ 0.775006 2.03204 2.32867 3.39022 6.86557 ] -> 0.562255
Iter 10000: [ 0.775007 2.03205 2.32868 3.39022 6.86557 ] -> 0.562255
PIECE VALUES:
Pawn: 100
Knight: 262.197
Bishop: 300.472
Rook: 437.444
Queen: 885.873
Games: 250312
Created file: f:\pgn\cegt4020-2900.mat
Loading dataset...
[ 1527543 x 5 ]
Solving (gradient method)...
Iter 0: [ 0 0 0 0 0 ] -> 0.693147
Iter 1000: [ 0.727343 1.77441 2.06056 2.98876 5.90056 ] -> 0.563205
Iter 2000: [ 0.764584 1.97576 2.27007 3.30258 6.65456 ] -> 0.562299
Iter 3000: [ 0.772605 2.01907 2.31517 3.37003 6.81694 ] -> 0.562258
Iter 4000: [ 0.774447 2.02902 2.32553 3.38552 6.85424 ] -> 0.562256
Iter 5000: [ 0.774876 2.03134 2.32794 3.38912 6.86293 ] -> 0.562255
Iter 6000: [ 0.774976 2.03188 2.3285 3.38996 6.86496 ] -> 0.562255
Iter 7000: [ 0.775 2.03201 2.32864 3.39016 6.86543 ] -> 0.562255
Iter 8000: [ 0.775005 2.03204 2.32867 3.39021 6.86554 ] -> 0.562255
Iter 9000: [ 0.775006 2.03204 2.32867 3.39022 6.86557 ] -> 0.562255
Iter 10000: [ 0.775007 2.03205 2.32868 3.39022 6.86557 ] -> 0.562255
PIECE VALUES:
Pawn: 100
Knight: 262.197
Bishop: 300.472
Rook: 437.444
Queen: 885.873