o
    Bi                     @  sD   d dl mZ d dlZd dlmZ dddZdd
dZddddZdS )    )annotationsN)DatabaseManagerreturntuple[int, int, int]c                 C  s<   | j d u s
| jd u rdS | j | jkrdS | j | jkrdS dS )Nr   r   r   )   r   r   )r   r   r   )r   r   r   )
home_score
away_score)m r   ;/var/www/www-root/data/www/77.83.87.30/analytics/metrics.py_one_hot_outcome   s
   r   xfloatc                 C  s   t tdtd| S )Ng-q=g      ?)mathlogmaxmin)r   r   r   r   	_safe_log   s   r   poisson+formdbr   modelstrdictc                   sL  | j dddI d H }d}d}d}d}|D ]p}| j|j|dI d H }|s%qt|}	|	dkr.q|j|j|jf ttd fd	d
d}
|	d rHdn|	d rNdnd}|
|krX|d7 }| d |	d  d  d |	d  d   d |	d  d  7 }|t	 |  7 }|d7 }q|dkr|dddddS ||t
|| t
|| t
|| dS )Nfinishedi  )statuslimitr   g        )r   r      c                   s    |  S )Nr   )iprobsr   r   <lambda>   s    z!compute_metrics.<locals>.<lambda>)keyr      )r   	n_matchesaccuracybrierlogloss)list_matchesget_prediction_for_matchidr   
p_home_winp_draw
p_away_winr   ranger   r   )r   r   matchesnacc	brier_sumll_sumr
   pypredtruer   r   r   compute_metrics   s:   @



r8   )r   r   )r   r   r   r   )r   )r   r   r   r   r   r   )
__future__r   r   database.managerr   r   r   r8   r   r   r   r   <module>   s    

