标签: bandit

价格优化的多武装强盗分析

最近,我读了一篇名为Bandits Know the Best Product Price的博客文章"(http://pkghosh.wordpress.com/2013/08/25/bandits-know-the-best-product-price/),其中概述了如何使用多臂强盗分析进行价格优化.

关于多臂强盗分析是否优于A/B测试(例如"每次将击败A/B测试的20行代码")还有很多讨论:http://stevehanov.ca/blog/index .php?id = 132?utm_medium =推荐与"为什么多臂强盗算法不比A/B测试更好":http://visualwebsiteoptimizer.com/split-testing-blog/multi-armed-bandit-算法/).

我知道有一个叫做"强盗"的R包,它可以用于这样的分析.

有人有一个玩具示例 -与博客文章中的示例相似 - 它显示了如何通过使用R(在价格优化的背景下)应用此方法?

谢谢你的帮助.

r ab-testing bandit

7
推荐指数
1
解决办法
4421
查看次数

绑定到所有接口有什么问题,有哪些替代方案?

我最近看到强盗抱怨B104

绑定到所有网络接口可能会打开非预期接口上的流量服务,这可能没有正确记录或保护。此插件测试查找字符串模式“0.0.0.0”,该字符串模式可能指示对所有网络接口的硬编码绑定。

>> Issue: Possible binding to all interfaces.
   Severity: Medium   Confidence: Medium
   Location: ./examples/binding.py:4
3   s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
4   s.bind(('0.0.0.0', 31137))
5   s.bind(('192.168.0.1', 8080))
Run Code Online (Sandbox Code Playgroud)

“向非预期接口上的流量开放服务”是什么意思?

我已经在 Flask 应用程序中看到了这一点app.run(host="0.0.0.0")。应该写什么?

(旁注:这不在生产中使用。这主要用于在开发过程中进行简单测试。但我不确定 gunicorn 是否可能有类似配置的相同问题)

flask bandit

5
推荐指数
1
解决办法
594
查看次数

多臂老虎机汤普森采样以获得非二元奖励

我使用以下行来更新每次试验中的 beta 发行版并给出 arm 推荐(我使用 scipy.stats.beta):

self.prior = (1.0,1.0)
def get_recommendation(self):
    sampled_theta = []
    for i in range(self.arms):
        #Construct beta distribution for posterior
        dist = beta(self.prior[0]+self.successes[i],
                    self.prior[1]+self.trials[i]-self.successes[i])
        #Draw sample from beta distribution
        sampled_theta += [ dist.rvs() ]
    # Return the index of the sample with the largest value
    return sampled_theta.index( max(sampled_theta) )
Run Code Online (Sandbox Code Playgroud)

但目前,它只适用于奖励是二元的(成功或失败)。我想修改它,使其适用于非二元奖励。(例如奖励:2300、2000,...)。我怎么做?

algorithm data-mining bayesian ab-testing bandit

5
推荐指数
0
解决办法
1374
查看次数

pyproject.toml :toml 解析器不可用,请使用 toml extra 重新安装

我正在配置我的 pyproject.toml 以便 bandit 排除测试文件,但它给了我错误 ERROR pyproject.toml : toml parser not available, reinstall with toml extra

这是我的 pyproject.toml

[tool.bandit]
exclude_dirs = ["*/test/*"]
tests = ["B201", "B301"]
skips = ["B101", "B601"]

[tool.pre-commit-hooks.bandit]
exclude = ["test*"]
Run Code Online (Sandbox Code Playgroud)

我运行以下命令:bandit -c pyproject.toml -r .

pre-commit bandit pre-commit.com pyproject.toml bandit-python

2
推荐指数
1
解决办法
1063
查看次数

连接到自己的网络守护程序意味着什么?

我目前正在overoverwire.org上进行强盗战争游戏(针对那些不知道这是一个网站的人,他们需要执行不同的任务以提高自己的黑客技能)。我以前做过它们,但是我很早就被卡住了,我用扰流板对它们进行了爆炸。这样做的好处是,它为“可重播性”留了很多空间。xD现在我在bandit20,我需要使用一个可执行文件:

/home/bandit20/suconnect
usage: ./suconnect <port number>
Run Code Online (Sandbox Code Playgroud)

“将使用TCP连接到本地主机上的给定端口。如果它从另一端收到正确的密码,则将下一个密码发送回去。”

我最初的反应是拉出nmap并寻找开放端口。我确实找到了一些打开的,其中一些正在运行echo和一些openssl。总共有5个开放的端口,无论运行的服务如何,我还发现使用ps -alx在后台运行的netcat监听另一个第6个端口。

现在,任务说明显示:

[文件]在您指定为命令行参数的端口上与本地主机建立连接。然后,它从连接中读取一行文本,并将其与上一级密码(bandit20)进行比较。如果密码正确,它将传输下一级密码(bandit21)。注意:尝试连接到您自己的网络守护程序,以查看其是否按您的想法工作

我使用预期的语法尝试了找到的所有6个端口,但它们均未返回任何内容。我确实在扰流板的博客上找到了网站上的一个较旧的描述,内容是:

要达到此级别,您需要登录两次:一次运行setuid命令,一次启动setuid将连接到的网络守护程序。

我尝试过两次sshing,并使用二进制文件在所有这些端口和第二个窗口中进行侦听,但是它什么也没做。问题是在我运行二进制文件后,它给了我一个空白命令行,但是无论我键入什么,它都没有任何输出。我在文件上使用了字符串,但我发现它确实存在无法连接的失败消息,错误的密码,正确的密码等,但我没有收到任何信息。

我希望在这种情况下更多地了解基本概念,而不是交给解决方案。我不确定连接到您自己的网络守护程序意味着什么(我尝试使用Google谷歌搜索并在youtube上查找,但我不太了解网络守护程序是什么,或者连接到网络守护程序意味着什么)。还必须运行2个终端似乎很重要,因为他们将其取出来了,但是在这种情况下,我似乎无法弄清楚您应该怎么做或应该使用它做什么。另外,要侦听我使用netcat的本地主机上的端口,请不确定是否还有其他更好的方法,或者您是否应该使用其他任何方法。

任何反馈都非常感谢,谢谢:)

networking daemon setuid bandit

1
推荐指数
1
解决办法
3645
查看次数