
    &`i                     |   d dl mZmZ d dlZd dlZd dlZd dlZ	d dl
mZ d dlZd dlmZ d dlmZ d dlmZ dZdefd	Zdefd
ZddZddefdZedk    rfd dlZ ej                    Ze                    ddd           e                                \  ZZ  eej!                  Z"ej!        s ee"          Z#dS dS dS )    )DictListN)train_test_split)tune)TuneReportCheckpointCallback)ASHASchedulerzbooster-checkpoint.jsonconfigc           
      4   t           j                            d          \  }}t          ||d          \  }}}}t	          j        ||          }t	          j        ||          }t	          j        | ||dfgdt          dt          	          g
           d S )NT
return_X_yg      ?)	test_sizelabeltestF   )	frequencyfilename)evalsverbose_eval	callbacks)	sklearndatasetsload_breast_cancerr   xgbDMatrixtrainr   CHECKPOINT_FILENAME)	r	   datalabelstrain_xtest_xtrain_ytest_y	train_settest_sets	            u/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/tune/examples/xgboost_example.pytrain_breast_cancerr'      s     #66$6GGLD& (8fPT'U'U'U$GVWfG7333I{6000H I&!"(1?RSSS
         c           
      L   t           j                            d          \  }}dt          t          t
          t                   f         dt          t          t          f         fd}t          j        ||          }t          j	        | |ddt          |d	          g
           d S )NTr   results_dictreturnc                 >    d |                                  D             S )Nc                 >    i | ]\  }}|t          j        |          S  )npmean).0kvs      r&   
<dictcomp>zDtrain_breast_cancer_cv.<locals>.average_cv_folds.<locals>.<dictcomp>2   s&    ???$!Q271::???r(   )items)r*   s    r&   average_cv_foldsz0train_breast_cancer_cv.<locals>.average_cv_folds1   s"    ??,*<*<*>*>????r(   r   Fr   )results_postprocessing_fnr   )r   
stratifiedr   )r   r   r   r   strr   floatr   r   cvr   )r	   r   r   r6   r$   s        r&   train_breast_cancer_cvr<   )   s    
 #66$6GGLD&@tCe,<'= @$sEzBR @ @ @ @ D///I F )*:a  
     r(   best_resultray.tune.Resultc                     t          j        | j        t                    }d| j        d         z
  }t          d| j                    t          d|d           |S )N)r         ?z
test-errorzBest model parameters: zBest model total accuracy: z.4f)r   	get_model
checkpointr   metricsprintr	   )r=   best_bstaccuracys      r&   get_best_model_checkpointrG   E   so    +5)<  H [(66H	
8K$6
8
8999	
6
6
6
6777Or(   Fuse_cvc           	         dddgt          j        dd          t          j        g d          t          j        dd          t          j        d	d
          d}t          ddd          }t          j        t          j        | st          nt          ddi          t          j
        ddd|          |          }|                                }|                                S )Nzbinary:logisticloglosserrorr   	   )r         g      ?r@   g-C6?g?)	objectiveeval_metric	max_depthmin_child_weight	subsampleeta
   rM   )max_tgrace_periodreduction_factorcpu)	resourcesztest-loglossmin)metricmodenum_samples	scheduler)tune_configparam_space)r   randintchoiceuniform
loguniformr   Tunerwith_resourcesr'   r<   
TuneConfigfitget_best_result)rH   search_spacer_   tunerresultss        r&   tune_xgboostrn   O   s    '!7+\!Q'' K			22\#s++tT** L q1  I J'-I3Iaj	
 	
 	

 O!	
 
 
 !  E iikkG""$$$r(   __main__z--use-cv
store_truez$Use `xgb.cv` instead of `xgb.train`.)actionhelp)r=   r>   )F)$typingr   r   numpyr/   sklearn.datasetsr   sklearn.metricsxgboostr   sklearn.model_selectionr   rayr   ray.tune.integration.xgboostr   ray.tune.schedulersr   r   dictr'   r<   rG   boolrn   __name__argparseArgumentParserparseradd_argumentparse_known_argsargs_rH   r=   rE   r.   r(   r&   <module>r      s                           4 4 4 4 4 4 



       E E E E E E - - - - - -/     04    8   % % % % % %D zOOO$X$&&F
<.T     %%''GD!,t{++K ; :,,[99 : :r(   