o
    h_                     @   sX   d dl mZ d dlZedZedZedZdZdd Zd	ej	d
e
fddZdd ZdS )    )PathNzdata/predictions/2526zdata/raw/2025-26/gwszdata/evaluation/2526   c                 C   sF   | d }d\}}|dk rt |tkrdnd\}}tj||gddgdS )	Nerror)FFr   )TF)FTacceptable_errbad_errindex)absERROR_MARGINpdSeries)rowdiffr   r    r   9/var/www/html/fantasy/fantasy_model/scripts/model_eval.pydetermine_prediction_accuracy
   s
   r   gw_evalgwc                 C   s  t d }| rt|}ntjg dd}|  }|jtdd|ddg< |d  	d}|d  	d}|| }t
|}t|| d	 d}	t|| d	 d}
t|| d	 d}|d
  }|d
  }tj||||||	||
||g
g dd|j|d < |j|dd d S )Nzmodel_eval_metrics.csv)
r   Zpredictions_countZerror_pred_countZ
accept_errr   ztotal_err_%zaccept_err_%z	bad_err_%max_postive_errmax_negative_errcolumns   )axisr   r   Td   r   r   F)EVALUATION_DIRexistsr   read_csv	DataFramecopyapplyr   value_countsgetlenroundmaxminr   locto_csv)r   r   Zmetrics_fileZmodel_eval_metricsZgw_dfZaccept_err_countZbad_err_countZtotal_error	total_lenZtotal_err_percentageZbad_err_percentageZacceptable_err_percentager   r   r   r   r   create_evaluation_metrics   s&   r*   c               
   C   s   z]t ddD ]T} td|  d }td|  d }t|jddid}t|g d	 jd
ddd}tj||d
dd}|d |d  |d< t||  td|  d }|j	|dd qW d S  t
yp } zW Y d }~d S d }~ww )Nr   '   r   z_predictions.csvz.csvxP
predictionr   )elementnametotal_pointsidactual)r.   r0   left)onhowr   Fr   )rangePREDECTIONS_DIRPLAYERS_GW_DIRr   r   renamemerger*   r   r(   	Exception)r   Z
preds_fileZactuals_filepredsZactualsmergedZgw_fileer   r   r   evaluate_model_predictions/   s     
r?   )pathlibr   pandasr   r7   r8   r   r
   r   r   intr*   r?   r   r   r   r   <module>   s    