Code Monkey home page Code Monkey logo

ootp-ai's Introduction

ootp-ai

ootp-ai's People

Contributors

lstephen avatar

Watchers

James Cloos avatar  avatar

ootp-ai's Issues

Centralising of history files

Running on different computers can result in different output due to history being stored on one pc but not the other.

This may be solved by allowing configuration of history location and using Dropbox, or maybe by using a Dropbox or Google drive api.

Stolen Bases

Determine how to use stolen bases as a beneficial tactic.

Possible approach:

Remove lower bounds for defense

Currently selection can be suboptimal when there exists a player with great hitting but has defense slightly worse than the cut off for a position. Modify the defense setup so that defense doesn't have a cut off.

This may require a few different modifications as well, such as how we determine which position gets displayed for a player, and how we determine which slots a player is valid for.

Investigate how DH selection is working

Currently it seems like with some DH lineups there is a better lineup available.

Perhaps this is due to the process for choosing a DH lineup being, selection 8 defenders, then add the best hitter. Sometimes that best hitter becomes part of the defense, when there is actually a player with a better hitting+defense combo for that position on the bench.

Separate MR/SU/CL Slots

Not sure if this is worthwhile yet, but when setting up the bullpen we currently take into account clutch/consistency/duration differently for each slot. Perhaps we should attempt to value a pitcher as MR/SU/CL rather than just MR.

Have PageLoader return a Future

This way we can move on to other tasks while waiting for a page to load.

This probably needs a limited ThreadPool type executor to run the Futures, rather than making a possibly infinite number of page requests at one time.

Allow clearing of cache

Clear the cache before running.

It should be possible to trigger this through an environment variable (e.g., OOTPAI_CACHE_CLEAR)

Extract and use bunt for hit

Simplest strategy: Anyone with a 5 (OOTP6) or A (OOTP5) bunt for hit rating should be given the green light to bunt for a hit.

Add pitching to the team position report

There are different formulas for each of SP/MR/SU/CL that take into account endurance, consistency, and clutch. The team position report can present pitchers ranked by these.

As a future step perhaps the affect of endurance/consistency/clutch could be separated.

Develop 'Split Regression'

From people's research OOTP may use separate regressions based on if a rating is x. Develop a 'Split Regression' which is effectively two linear regressions.

Tweak scoring in SelectedPlayers

Seems to be outdated.

Instead of hittingWithDefenceScore it should be including a score based on a defensive ratings.

Instead of combining age and size into a single score it should be using a compound ordering

Tweaking of LineupOrdering

It seems as though clutch ability is favored too strongly.

Develop output that provides info on how the lineup is scored and then tweak to be more reasonable.

Handle league where immediate release is not possible

In cases where a player is forced to the ML roster but is not on the 40 man we wish to release him. In some leagues an immediate release is not possible.

For these leagues we wish to produce rosters that have this player on the ML roster but also produce a list showing which players should be released.

Update DepthChartSelection

Selection and percentage chosen should be based upon InLineupScore.

Should also be able to remove stuff up choosing a backup by slot, as we should now be able to order the entire bench for each position.

Team Position report

Produce a report that lists the best players by position on the roster. Take into account hitting and defense.

Take Defense into account for player value

This can not be a simple addition, otherwise position players become more valuable than pitchers.

Perhaps it can be done by calculating an 'average' fielding and then +/- vs late. Then, in theory, the average batter is still worth the same as an average pitcher.

Tweak StarterSelection#subs

We don't have to consider a player as a possible substitution in the line if their best InLineupScore is worse than the worst InLineupScore in the current starters.

Take endurance into account when valuing SPs

Currently an SP with a lower value may be chosen over another because of a higher endurance. Modify value such that it reflects this. Similar to #72 an 'average' endurance may need to be calculated such that an average SP is still worth the same as an average position player.

Base player development predictions on what actually happens

In the league batting/pitching history we record ratings for players. We can compare players between years to see how ratings change each year. From this model we can see how each rating changes on average each year and produce more accurate predictions for how a player will age/develop.

Investigate reducing fatigue factor for depth chart percentage

Instead of using Defense.getPositionRating for the 2nd person on the depth chart we could use that divided by 2 (theory being for the 3rd person to play the first two must both be fatigued).

If this proves successful can investigate bring back the 3rd spot on the depth charts (using Defense.getPositionRating/3). It is unlikely that many 3rd spots would be used.

Tweak BenchScorer

The mix of positionFactor along with an unweighted defense seems off.

It should probably reuse the same scoring as used in the team position report.

Look into whether it's important that the bench scoring be considered less than starter scoring. I suspect it might be, as the best 25 man roster probably considers lineup + bench score.

Investigate possibility of gradual migration to Scala

This includes investigating whether to make use of sbt or maven.

The advantage of sticking with maven is the already in place migration process. The disadvantage might be less mature support for scala.

Also to be investigated is how reports (such as code coverage) work with scala

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.