Wednesday, May 25, 2011

Data mining method for League of Legends Stats

I have a lot of people asking me how I get my data for game statistics I am posting reports on. Hopefully this post answers most of the questions.

Skip this paragraph if you know how google works. As you know google and other search engines use applications capped crawlers that aimlessly scout the internet and download everything they can find usefully and store it for the search engine application to process. The data is then indexed by indexing applications and stored into a specialized database. When you search using a keyword google goes into the database and gets what you might be looking for.

How I get data is similar. Instead of indexing and looking for data aimlessly my tool indexes very specific pages and knows exactly what its looking for making it very efficient. Efficiency saves my computer as well as web server resources.

Where do I get data from?
Anywhere there is valuable data. Currently only lolbase and riot ranking ladders are indexed. Unfortunately riotstats.com is still under heavy development and has bugs and issues as well as missing a lot of valuable statistics.

I would recommend using JaxUploader from riotstats.com just because its uploading data to BOTH lolbase and riotstats.

Got more questions? Let me know.


Data scope and random factor

After looking at the data and some graphs I realized that there is substantial random variable that can decide a game. In order to get a crisp data large data sample is crucial. This especially is true for x2 champ combo.

I might release individual champ success ratio every few days while x2 champ combo every week or two. Effectively that will average data hopefully enough to remove most of the random factor and expose the interesting trends.

LoL Champion Combo Success Data [May 20-24]

Table below is sortable (click column title)

Here is table of Champ Success Ratios for both US and EU server in period between May 20-24, 2011. Keep in mind while looking at "Avg Player Elo" that since all Elo data coming from Riot Ranked ladders, players that are lower then 1200 Elo are represented by an Elo of 0 (zero).

There are 2,850 possible 2 champion combinations using 76 champs. These are 25 most successful.

With next set of data would be interesting to see how patch influenced the combos.


Champ1 Champ2 Avg Player Elo Wins Losses 1000*wins/losses Win %
Maokai Anivia 238.0 47 19 2473 71
Rumble Fiddlesticks 207.0 61 29 2103 67
Twitch Rumble 289.0 43 21 2047 67
Sona Karthus 324.0 69 34 2029 66
Singed Brand 309.0 112 62 1806 64
Warwick Soraka 394.0 227 129 1759 63
Zilean Nocturne 343.0 73 42 1738 63
Sona Evelynn 207.0 116 67 1731 63
Heimerdinger Caitlyn 258.0 129 75 1720 63
Soraka Rumble 406.0 94 55 1709 63
Kassadin Heimerdinger 130.0 41 24 1708 63
Irelia Fiddlesticks 337.0 73 44 1659 62
Rumble Rammus 325.0 176 107 1644 62
Sona Corki 372.0 64 39 1641 62
Vladimir Janna 431.0 263 162 1623 61
Swain Rumble 305.0 60 37 1621 61
Urgot Malphite 398.0 50 31 1612 61
Mordekaiser Evelynn 307.0 256 159 1610 61
Mordekaiser Maokai 214.0 80 50 1600 61
Shen Rumble 347.0 145 91 1593 61
Soraka Poppy 494.0 43 27 1592 61
Sona Malzahar 367.0 155 99 1565 61
Udyr Sona 292.0 72 46 1565 61
Vayne Soraka 411.0 343 225 1524 60
Soraka Lee Sin 465.0 59 39 1512 60

LoL Champion Success Data for May 20-24

This data is coming from lolbase.net and is generated from game logs uploaded to lolbase within past few days. There is also new data available: "Average Player Elo". Keep in mind while looking at "Avg Player Elo" that since all Elo data coming from Riot Ranked ladders, players that are lower then 1200 Elo are represented by an Elo of 0 (zero).

CLICK ON COLUMN TITLE TO SORT
Champ Avg Player Elo Wins Losses 1000*wins/losses Win %
Rumble 318.3 2001 1433 1396 58
Sona 285.0 1893 1370 1381 58
Soraka 402.6 1643 1261 1302 56
Janna 320.5 2087 1661 1256 55
Karthus 270.8 1084 873 1241 55
Amumu 345.3 3304 2723 1213 54
Mordekaiser 293.1 3397 2846 1193 54
Brand 279.4 2000 1761 1135 53
Malzahar 330.5 2464 2112 1166 53
Nocturne 286.2 2165 1910 1133 53
Vladimir 333.2 4083 3540 1153 53
Anivia 316.5 1077 973 1106 52
Evelynn 282.1 2383 2147 1109 52
Galio 300.3 421 379 1110 52
Irelia 394.6 2006 1799 1115 52
Singed 343.6 1677 1503 1115 52
Taric 382.2 798 720 1108 52
Twisted Fate 339.9 2691 2459 1094 52
Alistar 302.9 5313 5008 1060 51
Blitzcrank 354.1 1468 1376 1066 51
Caitlyn 289.2 2304 2173 1060 51
Fiddlesticks 198.4 1291 1197 1078 51
Heimerdinger 185.7 2054 1927 1065 51
Katarina 215.8 2645 2487 1063 51
Malphite 280.5 1734 1620 1070 51
Nunu 272.0 1913 1810 1056 51
Rammus 196.5 3467 3331 1040 51
Urgot 347.2 773 732 1056 51
Zilean 316.2 1080 1037 1041 51
Ashe 276.0 4695 4529 1036 50
Cassiopeia 288.1 869 863 1006 50
Corki 455.7 777 777 1000 50
Kennen 219.0 1872 1802 1038 50
Nasus 281.5 1538 1516 1014 50
Warwick 245.4 4534 4385 1033 50
Xin Zhao 219.3 7352 7101 1035 50
Annie 259.0 1680 1711 981 49
Gangplank 318.9 1561 1610 969 49
Jax 267.8 2773 2850 972 49
Lee Sin 404.4 1235 1257 982 49
Maokai 295.3 911 915 995 49
Miss Fortune 218.1 3703 3760 984 49
Poppy 286.3 1223 1257 972 49
Teemo 198.6 2997 3003 998 49
Trundle 398.6 713 727 980 49
Tryndamere 191.6 2542 2563 991 49
Jarvan IV 276.8 4364 4597 949 48
Kog'Maw 231.8 576 609 945 48
Swain 335.5 980 1060 924 48
Twitch 227.7 792 857 924 48
Vayne 287.5 6021 6513 924 48
Garen 271.6 1753 1948 899 47
Master Yi 176.3 2476 2724 908 47
Morgana 246.1 1186 1331 891 47
Renekton 341.7 1049 1142 918 47
Udyr 315.3 958 1077 889 47
Kassadin 341.9 902 1023 881 46
Lux 260.9 2124 2450 866 46
Nidalee 342.3 1482 1687 878 46
Ryze 268.6 1523 1766 862 46
Shaco 308.0 1707 1948 876 46
Shen 357.2 1908 2176 876 46
Sion 296.3 1065 1241 858 46
Cho'Gath 292.6 1349 1610 837 45
Dr. Mundo 224.5 1237 1476 838 45
Ezreal 352.2 1306 1573 830 45
Gragas 347.3 496 594 835 45
Kayle 300.2 668 812 822 45
Pantheon 253.1 1030 1218 845 45
Karma 342.2 482 608 792 44
Sivir 176.2 909 1139 798 44
Akali 252.8 1914 2466 776 43
LeBlanc 269.0 1080 1379 783 43
Olaf 299.7 1003 1281 782 43
Veigar 181.6 2743 3514 780 43
Tristana 231.2 882 1202 733 42
As you can see Rumble did really well I can't wait to see how well he will do after t nerf or the latest patch. Right after Rumble as always underrated support :)

Tuesday, May 24, 2011

Hello world :)

This blog is dedicated to my projects and personal findings in computing technology and programming.

As some of you may know, I have previously posted some statistics for a League of Legends (DotA clone) - I will continue doing so here.

I have to thank a lot of people for supporting me in my past projects such as LoLMasteriesTool
(http://www.leagueoflegends.com/board/showthread.php?p=4887295#post4887295).
I was surprises that so many people found it useful (about 25k downloads). I had pleasure to work with people from other continues and supporters to make it compatible with different language game clients and configurations as well as new and challenging features.

Recently, to my pleasant surprise, Riot (makers of League of Legends) release an official version of the tool embedded into a game
(http://www.leagueoflegends.com/news/multiple-mastery-pages-are-here). This creates an opportunity for me to dedicate more time for new projects. As you may guess currently I am digging for interesting game statistics that is uploaded to lolbase.net . Few next posts might have something to do with it. ;)

Note: As part of a bogging process I hope to also improve my writing skills. Constructional criticism is welcome for both technical and writing aspects of the posts :)

Thank you for your support.