Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/woctezuma/steam-bayesian-average
Bayesian average of games, developers, and publishers.
https://github.com/woctezuma/steam-bayesian-average
bayesian-average developers games games-list publishers ranking steam
Last synced: about 2 months ago
JSON representation
Bayesian average of games, developers, and publishers.
- Host: GitHub
- URL: https://github.com/woctezuma/steam-bayesian-average
- Owner: woctezuma
- License: mit
- Created: 2018-05-07T06:11:11.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-19T06:01:54.000Z (5 months ago)
- Last Synced: 2024-08-19T07:25:20.005Z (5 months ago)
- Topics: bayesian-average, developers, games, games-list, publishers, ranking, steam
- Language: Python
- Homepage:
- Size: 2.43 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Steam Bayesian Average
[![Build status][Build image]][Build]
[![Code coverage][Codecov image]][Codecov]
[![Code Quality][codacy image]][codacy]This repository contains Python code to compute the Bayesian average of Steam games, developers, and publishers.
![The most reliable publishers at Steam250](https://github.com/woctezuma/Steam-Bayesian-Average/wiki/img/2019_04_07_banner_publishers.png)
## Requirements
- Install the latest version of [Python 3.X](https://www.python.org/downloads/).
- Install the required packages:
```bash
pip install -r requirements.txt
```## Usage
- Call the Python script. SteamSpy data will be automatically downloaded through [an API](https://steamspy.com/api.php).
```bash
python compute_bayesian_average.py
```## Vocabulary
Formulas are shown [on the Wiki](https://github.com/woctezuma/Steam-Bayesian-Average/wiki#vocabulary).
### Acclaimed
The higher the ratio of positive reviews, and the more reviews, the more likely a game, a developer or a publisher is *acclaimed*.
### Reliable
The higher the game scores, and the more released games, the more likely a developer or a publisher is *reliable*.
### Established
The most acclaimed its most reviewed games, and the more reliable, the more likely a developer or a publisher is *established*.
## Results
Results are shown in the Wiki for:
- [the most acclaimed games](https://github.com/woctezuma/Steam-Bayesian-Average/wiki/Acclaimed-Games),
- [the most acclaimed](https://github.com/woctezuma/Steam-Bayesian-Average/wiki/Acclaimed-Developers), [the most reliable](https://github.com/woctezuma/Steam-Bayesian-Average/wiki/Reliable-Developers), and [the most established](https://github.com/woctezuma/Steam-Bayesian-Average/wiki/Established-Developers) developers,
- [the most acclaimed](https://github.com/woctezuma/Steam-Bayesian-Average/wiki/Acclaimed-Publishers), [the most reliable](https://github.com/woctezuma/Steam-Bayesian-Average/wiki/Reliable-Publishers), and [the most established](https://github.com/woctezuma/Steam-Bayesian-Average/wiki/Established-Publishers) publishers.## References
* [Wikipedia: Bayesian Average](https://en.wikipedia.org/wiki/Bayesian_average)
* [the Steam250 website](https://steam250.com/contributors) which updates rankings every day.
* [Torn's "Best of Steam" website](https://tornware.net/best-of-steam/) which updates rankings every day and allows custom ranking formulas.## Appendix: custom formulas
> [!TIP]
> For "Best of Steam", you can [use the following custom ranking formulas](https://github.com/SteamDatabase/steamdb.info-issues/issues/793#issuecomment-1966065864) to rely on the Bayesian Average.- Using **average values** obtained on September 3, 2023 for the **prior**:
```js
const C = 1117 ; // prior: average #reviews
const m = 0.756 ; // prior: average score
const n = game.votes ;
return (C*m + game.positiveVotes) / (C+n) ;
```- Using **median values** obtained on September 3, 2023 for the **prior**:
```js
const C = 17 ; // prior: median #reviews
const m = 0.822 ; // prior: median score
const n = game.votes ;
return (C*m + game.positiveVotes) / (C+n) ;
```- For comparison, **replicating** SteamDB's formula, which does not use Bayesian average::
```js
const C = 1 ; // offset for #reviews
const m = 0.50 ; // middle point for score
const n = game.votes ;
const p = game.positiveVotes / n ;
const t = (C+n) ** Math.log10(m) ;
return t*m + (1-t)*p ;
```## Appendix: data
The current algorithm relies solely on SteamSpy data. In case SteamSpy API stops providing the numbers of positive and
negative reviews, data from SteamDB could be merged with SteamSpy data.- To download data from [SteamDB](https://steamdb.info/stats/gameratings/?all), first sign-in with your Steam account.
![SteamDB login](https://i.imgur.com/cPO5t8v.png)
Once you are signed-in, make sure to view all games, then copy and paste the whole table as text into `data/steamdb.txt`.
![SteamDB start](https://i.imgur.com/PzwJXA3.png)
![SteamDB end](https://i.imgur.com/Mf8k1nY.png)
[Build]:
[Build image]:[PyUp]: https://pyup.io/repos/github/woctezuma/Steam-Bayesian-Average/
[Dependency image]: https://pyup.io/repos/github/woctezuma/Steam-Bayesian-Average/shield.svg
[Python3 image]: https://pyup.io/repos/github/woctezuma/Steam-Bayesian-Average/python-3-shield.svg[Codecov]: https://codecov.io/gh/woctezuma/Steam-Bayesian-Average
[Codecov image]: https://codecov.io/gh/woctezuma/Steam-Bayesian-Average/branch/master/graph/badge.svg[codacy]: https://www.codacy.com/app/woctezuma/Steam-Bayesian-Average
[codacy image]: https://api.codacy.com/project/badge/Grade/82a9d45f5c2d443daf525e7a1a2ee65d