天道酬勤,学无止境

RGLPK 中的梦幻足球线性规划(Fantasy football linear programming in R with RGLPK)

问题

长时间的听众第一次打电话给 SO .. 我问的问题之前曾被问过非常相似,但是我不相信我足够聪明来破译如何实施解决方案,为此我深表歉意。 这是我发现的问题的链接:R Multiple Integer Linear Programming 中的约束

我正在最大化我的预期幻想点数(FPTS_PREDICT_RF),受制于 50,000 工资帽,同时最小化我提出的“风险”计算。

现在,问题在于“flex”位置。 球队需要由9个位置组成,1 QB 2 RB 3 WR 1 TE 1 DEF 1 FLEX

flex 可以是 RB、WR 或 TE。
所以,我们可以有: 1 QB 2-3 RB 3-4 WR 1-2 TE 1 DEF

我正在尝试实现 #RB + #WR + #TE ==7 的约束。

这是相关的代码:

library(Rglpk)



# number of variables
num.players <- length(final$PLAYER)
# objective:
obj <- final$FPTS_PREDICT_RF
# the vars are represented as booleans
var.types <- rep("B", num.players)
# the constraints
matrix <- rbind(as.numeric(final$position == "QB"), # num QB
           as.numeric(final$position == "RB"), # num RB
           as.numeric(final$position == "WR"), # num WR
           as.numeric(final$position == "TE"), # num TE
           as.numeric(final$position == "DEF"),# num DEF
           diag(final$riskNormalized),         # player's risk
           final$Salary)                       # total cost

direction <- c("==",
         "<=",
         "<=",
         "<=",
         "==",
         rep("<=", num.players),
         "<=")

rhs <- c(1, # Quartbacks
       3, # Running Backs
       2, # Wide Receivers
       1, # Tight Ends
       1, # Defense
       rep(10, num.players), #HERE, you need to enter a number that indicates how
                             #risk you are willing to be, 1 being low risk,
                             # 10 being high risk.  10 is max.
       50000)                # By default, you get 50K to spend, so leave this number alone. 

sol <- Rglpk_solve_LP(obj = obj, mat = matrix, dir = direction, rhs = rhs,
                      types = var.types, max = TRUE)
sol #Projected Fantasy Points

有人可以帮我实现这个约束吗? 任何帮助都非常感谢!

编辑:数据集“final”的链接是 csv 格式:https://www.dropbox.com/s/qp35wc4d380hep1/final.csv?dl=0

附带问题:对于你们中的任何一个幻想足球运动员,我直接根据玩家历史幻想点的 SD 计算我的“风险”因素,并在 [0,10] 的支持下标准化这个数字。 你能想出一个更好的方法来计算给定的玩家风险吗?

回答1

您可以通过添加以下约束来做到这一点:

  • RB数>=2
  • RB数<= 3
  • WR 的数量 >= 3
  • WR 的数量 <= 4
  • TE 的数量 >= 1
  • TE 的数量 <= 2
  • RBs + WRs + TEs == 7 的数量

这是更新后的代码:

library(Rglpk)

# number of variables
num.players <- length(final$PLAYER)
# objective:
obj <- final$FPTS_PREDICT_RF
# the vars are represented as booleans
var.types <- rep("B", num.players)
# the constraints
matrix <- rbind(as.numeric(final$position == "QB"), # num QB
           as.numeric(final$position == "RB"), # num RB
           as.numeric(final$position == "RB"), # num RB
           as.numeric(final$position == "WR"), # num WR
           as.numeric(final$position == "WR"), # num WR
           as.numeric(final$position == "TE"), # num TE
           as.numeric(final$position == "TE"), # num TE
           as.numeric(final$position %in% c("RB", "WR", "TE")),  # Num RB/WR/TE
           as.numeric(final$position == "DEF"),# num DEF
           diag(final$riskNormalized),         # player's risk
           final$Salary)                       # total cost
direction <- c("==",
         ">=",
         "<=",
         ">=",
         "<=",
         ">=",
         "<=",
         "==",
         "==",
         rep("<=", num.players),
         "<=")
rhs <- c(1, # Quartbacks
       2, # RB Min
       3, # RB Max
       3, # WR Min
       4, # WR Max
       1, # TE Min
       2, # TE Max
       7, # RB/WR/TE
       1, # Defense
       rep(10, num.players), #HERE, you need to enter a number that indicates how
                             #risk you are willing to be, 1 being low risk,
                             # 10 being high risk.  10 is max.
       50000)                # By default, you get 50K to spend, so leave this number alone. 

sol <- Rglpk_solve_LP(obj = obj, mat = matrix, dir = direction, rhs = rhs,
                      types = var.types, max = TRUE)

最后,您可以通过子集final来评估您的解决方案:

final[sol$solution==1,]
#        X          PLAYER FPTS_PREDICT_LIN FPTS_PREDICT_RF Salary position
# 1      1      A.J. Green         20.30647       20.885558   5900       WR
# 17    18    Andre Holmes         13.26369       15.460503   4100       WR
# 145  156 Giovani Bernard         17.05857       19.521157   6100       RB
# 148  160      Greg Olsen         17.08808       17.831687   5500       TE
# 199  222    Jordy Nelson         22.12326       24.077787   7800       WR
# 215  239 Kelvin Benjamin         16.12116       17.132573   5000       WR
# 233  262    Le'Veon Bell         20.51564       18.565763   6300       RB
# 303  340  Ryan Tannehill         17.92518       19.134305   6700       QB
# 362 3641              SD          5.00000        6.388666   2600      DEF
#         risk riskNormalized
# 1   5.131601       3.447990
# 17  9.859006       6.624396
# 145 9.338094       6.274388
# 148 6.517376       4.379111
# 199 9.651055       6.484670
# 215 7.081162       4.757926
# 233 6.900656       4.636641
# 303 4.857983       3.264143
# 362 2.309401       0.000000

对于这个问题数据,您选择了一个宽接收器到 flex 位置。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Fantasy football linear programming in R with RGLPK
    long time listener first time caller to S.O... I am asking a question that has been asked very similarly before, however I don't believe I am smart enough to decipher how to implement the solution, for this I apologize. Here is the link to the question I found: Constraints in R Multiple Integer Linear Programming I am maxing over my projected fantasy points(FPTS_PREDICT_RF), subject to a 50,000 salary cap, while minimizing a 'risk' calculation that I have came up with. Now, the problem lies in the "flex" position. The team needs to be made up of 9 positions, 1 QB 2 RB 3 WR 1 TE 1 DEF 1 FLEX
  • R 多整数线性规划中的约束(Constraints in R Multiple Integer Linear Programming)
    问题 我正在用 R 编写一些代码来优化我的梦幻足球阵容,但我在一个约束下遇到了一些困难。 我基本上有一份球员名单、他们的位置、预期分数和成本。 名册必须包括: 1 QB 2 RB 2 WR 1 TE 1 FLEX(RB、WR 或 TE) 总成本低于 200 美元 我的问题是我的代码想要选择 FLEX 位置作为它已经选择为 WR、RB 或 TE 的球员。 这是我正在使用的代码,我有一个表格,其中包含玩家、位置、积分和成本的列。 在表中,任何 RB、WR 或 TE 都被复制,位置为 FLEX。 我试图更改将 pos=="FLEX" 设置为 pos=="WR"||pos=="RB"||pos=="TE" 的行,但没有奏效,我唯一的其他想法是运行代码,如果它复制了 FLEX 播放器,我将它从源表中删除。 不过这有点痛苦。 任何想法都非常感谢。 name <- mydata$name pos <- mydata$pos pts <- mydata$pts cost <- mydata$cost num.players <- length(name) f <- pts var.types <- rep("B", num.players) A <- rbind(as.numeric(pos=="QB") , as.numeric(pos=="RB") , as.numeric(pos=="WR"
  • Constraints in R Multiple Integer Linear Programming
    I am working on some code in R to optimize my fantasy football lineup but I am having some difficulty with one constraint. I basically have a list of players, their position, expected points, and cost. Roster must include: 1 QB 2 RB 2 WR 1 TE 1 FLEX (either a RB, WR, or TE) Total cost under $200 My issue is that my code wants to pick the FLEX position as player it already selected as a WR, RB or TE. Here is the code I am using, I have a table that I imported with columns for player, position, points, and cost. In the table, any RB, WR, or TE is duplicated with the position as FLEX. I tried to
  • Rglpk - Fantasy Football Lineup Optimiser - Rbind of For Loop Output
    I have a fantasy football lineup optimiser using Rgplk. It uses a for loop to generate multiple optimal lineups, the number of which is input by the user. The code is as follows: Lineups <- list() for(i in 1:Lineup_no) { matrix <- rbind(as.numeric(Data$Position == "QB"), # num QB as.numeric(Data$Position == "RB"), # num RB as.numeric(Data$Position == "RB"), # num RB as.numeric(Data$Position == "WR"), # num WR as.numeric(Data$Position == "WR"), # num WR as.numeric(Data$Position == "TE"), # num TE as.numeric(Data$Position == "TE"), # num TE as.numeric(Data$Position %in% c("RB", "WR", "TE")), #
  • 梦幻超级联赛 API [关闭](Fantasy Premier League API [closed])
    问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 4年前关闭。 改进这个问题 有谁知道梦幻英超联赛网站是否有API? 找到了一些旧帖子,但链接不再有效。 应用商店上有几个应用,所以一定有什么吗? 回答1 编辑 似乎在 2019/2020 赛季,他们将 URL 从drf重命名为api 。 以下是新网址: 所有球员/球队数据等: https://fantasy.premierleague.com/api/bootstrap-static/ 具体球员:https://fantasy.premierleague.com/api/element-summary/[player_id]/ 示例第一名球员:https://fantasy.premierleague.com/api/element-summary/1/ 原来的 这些是目前有效的新方法: 所有球员/球队数据等:https://fantasy.premierleague.com/drf/bootstrap-static 具体球员:https://fantasy.premierleague.com/drf/element-summary/[player_id] 奥斯皮纳示例:https://fantasy
  • 网易经典IP大作《梦幻西游网页版》开发经验分享
    基于白鹭引擎研发的网易经典IP大作《梦幻西游网页版》仅用时数天步入iOS免费版TOP3,截至目前,这款产品将近20天位列畅销榜Top 10,目前基本稳定在Top 20,首月仅iOS平台流水便破亿,其表现甚至超过了很多原生手游,让很多从业者对H5游戏的上限有了新的认识。 据了解,《梦幻西游网页版》与大部分H5游戏的不同之处在于:算上调优,其研发阶段经历了近1年半的时间。为了更多的了解这款游戏的开发故事,白鹭引擎团队有幸联系到了《梦幻西游网页版》项目组团队成员并与之进行交流。 以下是相关内容: 1.咱们这部经典大作的项目成员由哪些人组成呢? 我们成立了专项组,共有数十个名成员,主要职能分别有策划、程序、测试、UI和GUI。团队主要成员皆来自梦幻西游团队,有多年MMO开发运营经验。高品质的基础人员和随时可获取的大团队支持,是我们成功的关键。 2.咱们研发耗时1年半,不知在开发和调优哪部分用时比较多,主要是解决哪些问题? 开发和调优两部分的耗时差不多,开发阶段主要是搭建功能基础框架和实现具体功能,后续调优阶段主要是完善各种功能细节和针对各种性能指标(设备兼容性,执行效率,启动速度,服务器负载等)进行优化。 我们认为,开发只是完成了游戏的一部分,而一款好的游戏,是需要持续进行玩法创新、功能调优和测试提升,秉持匠人精神,精心打磨,才能最终面世。这也是我们从立项到上市,整体研发耗时1年半的原因。
  • 为什么民间故事和拉姆达如此不同?(why are folktale and ramda so different?)
    问题 我正在通过阅读 DrBoolean 的书来学习 javascript FP。 我四处寻找函数式编程库。 我找到了 Ramda 和 Folktale。 两者都声称是函数式编程库。 但它们是如此不同: Ramda 似乎包含处理列表的实用函数:map、reduce、filter 和纯函数:curry、compose。 它不包含任何处理 monad、functor 的内容。 然而,Folktale 不包含任何用于列表或函数的实用程序。 它似乎在 javascript 中实现了一些代数结构,如 monad: Maybe, Task... 实际上我发现了更多的库,它们似乎都属于两类。 Underscore 和 lodash 就像 Ramda。 梦幻之地,自由幻想就像民间故事。 难道这很不相同的库都被称为功能,如果有,是什么让每一个功能库? 回答1 功能特点 函数式编程或函数库的定义没有明确的界限。 Javascript 内置了函数式语言的一些特性: 一等高阶函数 Lambdas/匿名函数,带闭包 其他一些可以在 Javascript 中小心完成: 不变性参照透明度 还有一些是 ES6 的一部分,现在部分或完全可用: 紧凑、简洁的功能通过尾调用优化的高性能递归 还有很多其他的确实超出了 Javascript 的正常范围: 模式匹配懒惰评价同音性 然后
  • 您如何访问 NFL 的 API?(How do you access the NFL's API's?)
    问题 我一直在尝试从 NFL.com 访问或寻找访问数据,但还没有找到。 这些网站上有公共文档: https://api.nfl.com/docs/identity/oauth2/index.html 但是这些文档没有告诉您如何获取客户端 ID 或客户端机密。 我也试过: http://api.fantasy.nfl.com/v2/docs 文档说你需要发送一封电子邮件到 Fantasy.football@nfl.com 来获取应用程序密钥。 我前段时间发了一封电子邮件并进行了跟进,但没有收到任何回复。 您可以向这些 API 发送请求,它们会做出响应,告诉您您的凭据无效。 你在这方面有成功吗? 难道我做错了什么? 这些网站过时了吗? 编辑:我在 2015 年 10 月 30 日给他们发了电子邮件 回答1 虽然我在 api.nfl.com 上没有取得任何成功,但我可以从 api.fantasy.nfl.com 获取一些数据。 您应该拥有对所有 /players/* 端点的读取权限(例如 http://api.fantasy.nfl.com/v1/players/stats?statType=seasonStats&season=2010&week=1&format=json)。 我认为您需要一个用于联盟端点和写入端点的身份验证令牌。 你多久前给他们发电子邮件? 编辑:我给 NFL
  • 机器学习,像极了一场足球比赛
    作者 | Renato Boemer译者 | Sambodhi策划 | 刘燕如果向没有技术背景的人解释清楚机器学习,可能有些难度。本文最初发表于 Towards Data Science 博客,经原作者 Renato Boemer 授权,InfoQ 中文站翻译并分享。如果你是一名专业数据科学家,你会经常被问到一个问题 —“你这个工作是干什么的?”如果向没有技术背景的人解释清楚这个问题,可能有些难度。卡内基梅隆大学著名计算机科学家 Tom Mitchell 教授给机器学习下的定义是“一种计算机程序,它从经验 E 中学习某些类别的任务 T 和性能指标 P,如果它在任务 T 中的性能(用 P 来衡量) 随着经验 E 而提高。”坦率地说,在任何非正式对话中,引用这种专业性很强的定义可能很难让对话继续下去。而作为一个数据科学家,又经常需要向非技术性的受众解释技术术语。因此,每当我发现自己在解释自己的工作时,我就用到了我的哲学老师曾经用到的同样的技巧:足球类比。即便人们不喜欢足球,他们也可以以某种方式把机器学习和足球运动及规则联系在一起。但愿足球的比喻有助于你理解或向其他人解释机器学习。球员(数据)显然,没有球员,就没有足球赛。无论你是在温布利球场进行职业级别的球赛,还是在街上和朋友们一起踢球,这都不重要。没有球员,那些地方只是一个空旷的足球场和街道。对于机器学习来说,数据就像球员,没有数据
  • Spring中的设计模式:模板方法模式
    目录 导读 什么是模板模式 优点 缺点 简单演示 Spring中的模板模式 模板抽象类 模板方法 抽象方法 具体子类 总结 导读 文章首发于微信公众号设计模式:模板模式,原创不易,谢谢支持!!! 模板模式在是Spring底层被广泛的应用,比如事务管理器的实现,JDBC模板的实现。 今天就来谈谈「什么是模板模式」、「模板模式的优缺点」、「模板模式的简单演示」、「模板模式在Spring底层的实现」。 什么是模板模式 模板模式首先要有一个抽象类,这个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 定义:「定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。」 比如在造房子一样,地基,铺线,房子户型都是一样的,由开发商决定,但是在交房之后,室内的装修风格和场景布置却是由业主决定,在这个场景中,开发商其实就是一个抽象类,地基,铺线,房子户型都是可以复用的,但是装修却是不可复用的,必须由业主决定,此时的每一个业主的房子就是一个实现的子类。 模板方法的实现条件注意: 必须是一个抽象类。 抽象类有一个模板方法,其中定义了算法骨架。 为了防止恶意操作,模板方法必须加上final关键词。 模板方法中除了复用的代码
  • mysql足球管理系统_基于java的足球队管理系统精选.doc
    基于java的足球队管理系统精选 烟台大学毕业论文(设计)任务书 院(系):计算机与控制工程学院 姓名满孝佳学号201158504235毕业届别2015专业软件工程毕业论文(设计)题目基于Java的足球队管理系统指导教师李秀娟学历本科职称项目经理所学专业计算机科学与技术具体要求(主要内容、基本要求、主要参考资料等): 主要内容:(1)绪论,包括课题背景,研究目的和意义,开发工具及技术以及软硬件需求可行性分析,系统用户用例图功能模块需求分析设计的基本思想,性能及界面需求分析与设计乱码问题的介绍实现与意义过程发现的错误 基本要求:通过撰写论文能够让学生运用科学的研究方法,进行前期调查研究,扩宽了专业知识面。在思考问题、解决问题、巩固大学期间学过的知识,实际生活中,最后系统的呈现出来 主要参考资料: [1] 王虎,张骏.管理信息系统.武汉:武汉理工大学出版社,2007. [2] 孙卫琴,《Tomcat 与 Java Web 开发技术详解》.电子工业出版社,2003 进度安排: 2015.01.04——2015.01.31:系统的分析阶段,开题 2015.02.01——2015.03.15:系统的设计、实现阶段 2015.03.15——2015.04.08:系统的测试阶段 指导教师(签字): 年 月 日院(系)意见: 教学院长(主任)(签字): 年 月 日备注:[摘要
  • 尝试将 NOT EXIST 转换为 COUNT(Trying to convert an NOT EXIST into COUNT)
    问题 所以我知道如何使用NOT EXIST进行查询。 但是我似乎无法使用COUNT找到等效项。 结构: player(playerID: integer, playerName: string) team(teamID: integer, teamName: string, sport: string) plays(playerID: integer, teamID: integer) 我提出的NOT EXIST查询有效: SELECT distinct player.playerID, playerName FROM player, plays WHERE NOT EXISTS (SELECT teamID FROM team WHERE sport='football' AND NOT EXISTS (SELECT teamID FROM plays WHERE team.teamID=plays.teamID AND player.playerid=plays.playerid)); 该查询查找为所有足球队效力的球员。 我正在尝试使用计数做同样的事情。 首先,我知道我必须计算足球在运动项下出现的次数,然后该球员必须为该运动为足球的所有TeamID比赛。 之后我就糊涂了。 任何提示? 回答1 看起来您正在寻找的是一个查询,检索所有球员HAVING COUNT(DISTINCT
  • PHP str_replace无法使用特殊字符(Php str_replace not working with special chars)
    问题 为什么这不能按预期工作: echo str_replace("é","é","Fédération Camerounaise de Football"); 结果: "Fédération Camerounaise de Football" 我期望有: "Fédération Camerounaise de Football" 回答1 你做错了。 该字符串不正确,需要替换,仅使用UTF-8进行编码。 您所要做的就是utf8_decode('Fédération Camerounaise de Football') 。 更新: 您会看到Fédération Camerounaise de Football作为输出,因为您是在UTF-8中两次传递数据。 观察: 以UTF-8格式保存的file1.php: <?php echo "Fédération Camerounaise de Football"; 输出: 喀麦隆足球联合会 现在,如果您告诉浏览器您正在使用UTF-8,它将直接显示内容: 以UTF-8格式保存的file2.php: <?php header('Content-Type: text/html; charset=utf-8'); echo "Fédération Camerounaise de Football"; 输出: 喀麦隆足球联合会 完美的。
  • GLPK:尝试安装R软件包时没有此类文件或目录错误(GLPK: No such file or directory error when trying to install R package)
    问题 我正在尝试在R 3.1.0中安装sparkTable ,这取决于Rglpk 。 我在系统上手动安装了GPLK并将libs文件夹添加到LD_LIBRARY_PATH然后再进入R进行install.packages("sparkTable")过程。 在安装过程中出现此错误。 有任何想法吗? * installing *source* package ‘Rglpk’ ... ** package ‘Rglpk’ successfully unpacked and MD5 sums checked ** libs /bin/sh: line 0: cd: GLPK: No such file or directory make: *** [GLPK.ts] Error 1 ERROR: compilation failed for package ‘Rglpk’ * removing ‘/opt/R/R-3.1.0/lib64/R/library/Rglpk’ ERROR: dependency ‘Rglpk’ is not available for package ‘sparkTable’ * removing ‘/opt/R/R-3.1.0/lib64/R/library/sparkTable’ 回答1 sudo apt-get install libglpk-dev
  • Python(足球比赛算法的烦恼)(Python (football games algorithm troubles))
    问题 我正在尝试为足球小组赛阶段编写算法。 例如:我在舞台上有 4 个团队。 teams = ['team1', 'team2', 'team3', 'team4'] 然后我得到了所有独特的对 import itertools team_pairs = list(itertools.combinations(teams, 2)) 我的 team_pairs 是球队之间独特的比赛 [('team1', 'team2'), ('team1', 'team3'), ('team1', 'team4'), ('team2', 'team3'), ('team2', 'team4'), ('team3', 'team4')] 现在。 我怎样才能创建所有回合? 例如: 第1轮:( ('team1', 'team2') ('team3', 'team4') round2: ('team1', 'team3') ('team2', 'team4') round2: ('team1', 'team4') ('team2', 'team3') 以及如何为 6 支球队或 7 支球队做到这一点? 请帮忙!!! 我解释不好: 我有11支球队。 然后我把它们分成几组。 我有: group1: ['team1', 'team2', 'team3', 'team4'] group2: ['team1',
  • 足球赔率数据爬虫分析一体化的项目
    足球,football,足彩,竞彩,赔率数据,爬虫,预测,分析一体化程序 项目地址 https://github.com/monomania/foot 项目介绍 热衷于足球多年,之余也会去研究一下,时间久了,都会有自己的心得. 但不可能每次都那么费劲的自己人工去看盘分析, 所以结合所学,就有这个项目. foot-parent 是一个集足球数据采集器,简单分析,同步到微信及其他发布平台一体化的项目. 程序采用go语言开发,项目结构清晰完整,非常容易入手并进行二次开发分析. 项目为什么开源? 让有编程能力的朋友,同样爱好足球的朋友,也可以参与进来. 大家购彩多年,都有自己购彩的心得. 如果大家将这些心得,集中起来,形成一个模型习惯算法库.进行持续优化. 再交给机器来对之前的大数据量的比赛进行复盘学习,学习过程中对各种模型习惯进行加权重加评分. 是否是一个比较有价值的预测东西,,,或只是个人妄想而已.哈哈 ##如该项目对你有帮助,请给一个star,谢谢! 公众号演示 公众号: AI球探(ai00268) 战绩截图 ##目前程序已经完成了对很多足球相关数据荐的收集,包括且不仅限于: 所有的联赛信息,球队信息,今日比赛列表,自动更新比赛结果,所有亚指的数据,所有的亚指的变化数据,部分欧指数据,(可配置)部分欧指数据的变化过程(可配置),对阵双方的积分榜收集,对阵双方的对战历史
  • 使用请求库使用python模拟Ajax请求(Simulating ajax request with python using requests lib)
    问题 为什么request不下载该网页的回复? #!/usr/bin/python import requests headers={ 'content-type':'application/x-www-form-urlencoded; charset=UTF-8', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0', 'Referer' : 'http://sportsbeta.ladbrokes.com/football', } payload={'N': '4294966750', 'facetCount_156%23327': '12', 'facetCount_157%23325': '8', 'form-trigger':'moreId', 'moreId':'156%23327', 'pageId':'p_football_home_page', 'pageType':'EventClass', 'type':'ajaxrequest' } url='http://sportsbeta.ladbrokes.com/view
  • AI足球预测软件|足球大数据预测分析爬虫
    ‍🚀 AI足球大数据爬虫分析一体化GO项目 ‍🌰 项目地址 https://gitee.com/aoe5188/foot ‍🌰‍ 项目简介 👍 foot-parent 是一个集足球数据采集器,简单分析.👍 程序采用golang开发,项目模块化结构清晰完整,非常容易入手并进行二次开发分析.👍 AI球探为程序全自动处理,全程无人为参与干预足球分析预测程序.⚡️ 避免了人为分析的主观性及不稳定因素.✨ 程序根据各大指数多维度数据,结合作者多年足球分析经验,精雕细琢, 集天地之灵气,汲日月之精华,历时七七四十九天,经Bug九九八十一个,编码而成.🎯 程序执行流程包括且不仅限于(数据自动获取–>分析学习–>自动推送发布).☕ 经近三个月的实验准确率一直能维持在一个较高的水平.☕ 同时也是一个学习golang的一个入门级项目. 🌰 项目来由 热衷于足球多年,之余也会去研究一下,时间久了,都会有自己的心得. 但不可能每次都那么费劲的自己人工去看盘分析, 所以结合所学,就有这个项目. 🙋 如该项目对你有帮助,请给一个👉 star,谢谢! 🙋 如该项目对你有帮助,请给一个👉 star,谢谢! 🙋 如该项目对你有帮助,请给一个👉 star,谢谢! 🙋‍ 公众号演示 公众号: AI球探(ai00268) 在这里插入图片描述 🌰‍ 目前程序已经完成了对很多足球相关数据的收集,包括且不仅限于
  • 设计模式:工厂模式,解除耦合的利器
    工厂模式是使用频率很高的一种设计模式,在面试中也经常问到,今天我们就来学习它。为什么要用工厂模式?解答这个问题前,我们先来了解什么是工厂模式。工厂模式其实也称创建模式,是用于创建对象的一种方式。本质上就是用工厂方法来代替new实例化对象。举个例子:我们在编写代码的时候,在一个A类中通过new的方式实例化了类B,那么A类和B类之间就存在耦合,如果以后修改了B类的代码和使用方式,例如需要在构造函数中传入参数,那么A类也就需要跟着修改了,一个类的依赖可能影响不大,但若有多个类依赖了B类,那么这个工作量将会相当的大,这无疑是件非常痛苦的事。这种情况下,我们需要把创建实例的工作单独分离,与调用方解耦,也就是使用工厂方法创建实例的工作封装起来。这样我们在需要调用对象的时候就不需要关心那些复杂的实例化问题。工厂模式工厂模式可分为两类:简单工厂模式和工厂模式。简单工厂模式定义一个接口和实现类,建立一个工厂类这些实现类进行实例的创建。我们用球来举例,定义一个基本的接口Ball,和一个抽象方法Play (玩),public interface Ball { void play(); }创建一个篮球的类和一个足球的类,并实现该接口,public class BasketBall implements Ball { public void play() { System.out.println("打篮球~
  • 如果整个字符串包含pandas中的子字符串,请替换整个字符串(Replace whole string if it contains substring in pandas)
    问题 我想替换包含特定子字符串的所有字符串。 因此,例如,如果我有此数据框: import pandas as pd df = pd.DataFrame({'name': ['Bob', 'Jane', 'Alice'], 'sport': ['tennis', 'football', 'basketball']}) 我可以用字符串“ ball sport”代替足球,如下所示: df.replace({'sport': {'football': 'ball sport'}}) 我想要的是将所有包含ball东西(在这种情况下为football和basketball )替换为“球类运动”。 像这样的东西: df.replace({'sport': {'[strings that contain ball]': 'ball sport'}}) 回答1 您可以使用str.contains屏蔽包含“ ball”的行,然后用新值覆盖: In [71]: df.loc[df['sport'].str.contains('ball'), 'sport'] = 'ball sport' df Out[71]: name sport 0 Bob tennis 1 Jane ball sport 2 Alice ball sport 要使其不区分大小写,请通过`case = False: df.loc