每个人都知道内容是问题所在。但是好标题也有帮助,这是我们看到的第一件事。现在是时候将第一印象变成一个程序,并弄清楚哪种标题会获得更多支持。
您面临的挑战是编写一个程序或函数,该程序或函数将PPCG问题的标题作为输入,并返回其得分的预测。
例如Counting Grains of Rice
,59
在这种情况下,您可能会收到输入作为输入,并且您将尝试返回接近分数的内容。非整数的猜测是可以的,但低于或等于猜测的-20
则不行。
以下是用于测试和评分的数据:
http://data.stackexchange.com/codegolf/query/244871/names-and-upvotes
评分:您的程序将针对该站点(PPCG)历史记录中的每个问题运行,而不包括已关闭的问题。ln(score + 20)
然后,该功能将应用于每个分数和每个猜测。两个结果值集之间的均方根误差就是您的得分。越低越好。
例如,一个程序每次猜测为0的得分为0.577,而每次猜测为11的程序得分为0.362。
请计算您的分数,并将其包括在答案标题中。还请包括您的程序对这个问题将获得多少票的预测。
限制条件:
为防止过多的硬编码,请不要超过1000个字符。
必须在一台合理的计算机上在一分钟之内运行上面的所有数据集。
标准漏洞已关闭。
这是一个用Python编写的测试器,供您使用和/或消除歧义:
import sys
import math
import csv
scores_dict = {}
with open(sys.argv[1], 'r') as csv_file:
score_reader = csv.reader(csv_file)
for score, title in score_reader:
if score == 'Score':
continue
scores_dict[title] = int(score)
def rate_guesses(guesser):
def transform(score):
return math.log(score + 20) if score > -20 else 0
off_by_total = 0
lines_count = 0
for title in scores_dict:
guessed_score = guesser(title)
real_score = scores_dict[title]
off_by_total += (transform(real_score) - transform(guessed_score)) ** 2
return (off_by_total/len(scores_dict)) ** .5
def constant11(title):
return 11
print(rate_guesses(constant11))
[closed]
和之类的内容[on hold]
?