Piece weights with regression analysis (in Russian)

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
WinPooh
Posts: 241
Joined: Fri Mar 17, 2006 7:01 am
Location: Russia
Full name: Vladimir Medvedev
Contact:

Piece weights with regression analysis (in Russian)

Post by WinPooh » Thu Apr 30, 2015 9:19 am

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.

User avatar
Ajedrecista
Posts: 1376
Joined: Wed Jul 13, 2011 7:04 pm
Location: Madrid, Spain.
Contact:

Re: Piece weights with regression analysis (in Russian).

Post by Ajedrecista » Thu Apr 30, 2015 10:00 am

Hello Vladimir:
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.
Great job! Congratulations.

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.

User avatar
WinPooh
Posts: 241
Joined: Fri Mar 17, 2006 7:01 am
Location: Russia
Full name: Vladimir Medvedev
Contact:

Re: Piece weights with regression analysis (in Russian).

Post by WinPooh » Thu Apr 30, 2015 10:03 am

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?
Less than a minute for 10000 gradient steps on a 3000-games file.

Dann Corbit
Posts: 9518
Joined: Wed Mar 08, 2006 7:57 pm
Location: Redmond, WA USA
Contact:

Re: Piece weights with regression analysis (in Russian).

Post by Dann Corbit » Thu Apr 30, 2015 7:16 pm

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.

AlvaroBegue
Posts: 916
Joined: Tue Mar 09, 2010 2:46 pm
Location: New York
Full name: Álvaro Begué (RuyDos)

Re: Piece weights with regression analysis (in Russian).

Post by AlvaroBegue » Thu Apr 30, 2015 7:41 pm

Dann Corbit wrote:I found that it auto-translates fairly well (though elephant for bishop is a little distracting).
The word in Spanish is "alfil", which I think is a transliteration of the Arabic for "the elephant".

Dann Corbit
Posts: 9518
Joined: Wed Mar 08, 2006 7:57 pm
Location: Redmond, WA USA
Contact:

Re: Piece weights with regression analysis (in Russian).

Post by Dann Corbit » Thu Apr 30, 2015 8:04 pm

These weights are derived from correspondence chess:

PIECE VALUES:

Pawn: 100
Knight: 162.839
Bishop: 203.914
Rook: 306.862
Queen: 697.509

Dann Corbit
Posts: 9518
Joined: Wed Mar 08, 2006 7:57 pm
Location: Redmond, WA USA
Contact:

Re: Piece weights with regression analysis (in Russian).

Post by Dann Corbit » Thu Apr 30, 2015 8:16 pm

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

kbhearn
Posts: 411
Joined: Thu Dec 30, 2010 3:48 am

Re: Piece weights with regression analysis (in Russian)

Post by kbhearn » Thu Apr 30, 2015 8:40 pm

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.

Vinvin
Posts: 4201
Joined: Thu Mar 09, 2006 8:40 am
Full name: Vincent Lejeune

Re: Piece weights with regression analysis (in Russian)

Post by Vinvin » Thu Apr 30, 2015 9:37 pm

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.
It would be better to compute different values for middlegame and endgame.

Dann Corbit
Posts: 9518
Joined: Wed Mar 08, 2006 7:57 pm
Location: Redmond, WA USA
Contact:

Re: Piece weights with regression analysis (in Russian).

Post by Dann Corbit » Thu Apr 30, 2015 11:02 pm

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

Post Reply