Herkes içeriğin soruyu yaptığını bilir. Fakat iyi bir başlık da yardımcı olur ve ilk gördüğümüz şey budur. İlk izlenimi bir programa dönüştürmenin ve hangi tür başlıkların daha fazla oy aldığını bulma zamanı.
PPCG sorusu başlığını girdi olarak alan ve puanını tahmin eden bir program veya işlev yazmanız istenmektedir.
Örneğin, Counting Grains of Rice
bir girdi olarak alabilirsiniz ve 59
bu durumda skora yakın bir şey döndürmeye çalışıyorsunuzdur . Tamsayılı olmayan tahminler iyi, ancak altındaki veya altındaki tahminler iyi -20
değil.
Test ve puanlama için veriler:
http://data.stackexchange.com/codegolf/query/244871/names-and-upvotes
Puanlama: Programınız, bu sitenin (PPCG) tarihindeki her soru üzerinde çalışacaktır, kapalı soruları saymaz. Fonksiyon ln(score + 20)
daha sonra her bir puana ve her tahminde uygulanacaktır. Elde edilen iki değer kümesi arasındaki kök-ortalama-kare-hata puanınızdır. Alçak daha iyi.
Örneğin, her defasında 0 tahmin eden bir program 0,577, her defasında 11 tahmin eden bir program ise 0,362 puan alacaktır.
Lütfen puanınızı hesaplayın ve cevabınızın başlığına ekleyin. Lütfen programınızın bu sorunun kaç oy alacağı konusundaki öngörüsünü de ekleyin.
Kısıtlamalar:
Aşırı kodlamanın önlenmesi için 1000 karakterden fazla olmamalıdır.
Yukarıda belirtilen verilerin tamamını makul bir makinede bir dakikadan kısa sürede çalıştırmanız gerekir.
Standart Loopholes kapandı.
İşte kullanımınız ve / veya belirsizlikleri gidermek için Python ile yazılmış bir test cihazı:
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]
ve gibi şeyleri içerecek veya hariç tutabilecek [on hold]
mi?