足球联赛的贝叶斯模型

bpl的Python项目详细描述


bpl

Build Statuscodecov

bpl是一个python 3库,用于将dixon&coles(1997)模型的贝叶斯版本拟合到数据中。 它使用stan库使模型适合数据。

安装

你需要一个工作C++编译器。 如果您使用的是anaconda,则可以使用

conda install gcc

然后可以使用pip

安装
pip install bpl

这可能需要一段时间,因为两个stan模型是作为构建的一部分编译的。

用法

bpl提供了一个可用于预测足球比赛结果的类BPLModel。 数据应以pandas数据帧的形式提供给模型,其中包含home_teamaway_teamhome_goalsaway_goals列。 你也可以选择为每支球队提供一组数值协变量(例如他们在国际足联的评分),这些变量将用于fit。 示例用法:

importbplimportpandasaspddf_train=pd.read_csv("<path-to-training-data>")df_X=pd.read_csv("<path-to-team-level-covariates>")forecaster=bpl.BPLModel(data=df_train,X=df_X)forecaster.fit(seed=42)# calculate the probability that team 1 beats team 2 3-0 at home:forecaster.score_probability("Team 1","Team 2",3,0)# calculate the probabilities of a home win, an away win and a draw:forecaster.overall_probabilities("Team 1","Team 2")# compute home win, away win and draw probabilities for a collection of matches:df_test=pd.read_csv("<path-to-test-data>")# must have columns "home_team" and "away_team"forecaster.predict_future_matches(df_test)# add a new, previously unseen team to the model by sampling from the priorX_3=np.array([0.1,-0.5,3.0])# the covariates for the new teamforecaster.add_new_team("Team 3",X=X_3,seed=43)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java传递位置作为FragmentPagerAdapter中片段的参数   html Java Jsoup循环打印   java如何使用FileOutputStream写入数据而不丢失旧数据?   java在测试用例类/方法中执行sql before/after/in   java在javafx中注册鼠标处理程序,但处理程序不是内联的   Android嵌入了一个C++库的java代码,不需要TopPLE程序来嵌入它?   片段类内部的java ProgressBar导致setMax方法出现NullPointerException?   带有google app engine的java Activator Play框架   java如何解析星级而不是字符串?   java如何在基本实体中定义通用主键字段?   通过扩展实现Java克隆   使用CipherOutputStream的java递归加密提供一个空字节[]   在运行时提取字段值的Java服务   Java 11和spring boot从spring boot应用程序的fat jar中的依赖项jar加载资源   java尝试使用J2SE枚举所有可用的Wifi网络   使用Java库进行SWIFT MT消息解析   java拆分非逗号分隔的字符串   java为什么toString()不能是静态方法?   java在连接到集群数据库时遇到mongo异常   java访问Hashmap中存储的json有效负载值