내용이 질문을한다는 것을 누구나 알고 있습니다. 그러나 좋은 제목도 도움이되며 이것이 우리가 가장 먼저 보는 것입니다. 이제 첫인상을 프로그램으로 바꾸고 어떤 종류의 타이틀이 더 인기를 얻었는지 알아볼 차례입니다.
이에 따라 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 자 이하 여야합니다.
합리적인 머신에서 1 분 이내에 위의 전체 데이터 세트에서 실행해야합니다.
표준 허점이 닫힙니다.
다음은 파이썬으로 작성된 테스터로, 사용 및 / 또는 모호성을 해결합니다.
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]
and 같은 항목이 포함되거나 제외 [on hold]
됩니까?