
    i!                         d Z ddlZddlmZmZmZ ddlZddlm	Z	 ddl
mZmZmZ ddlmZmZmZ ddlmZmZ dd	lmZ d
dlmZ d
dlmZmZ dededdfdZdedededdfdZdeddfdZ deddfdZ!y)z#Tests for estimating the intercept.    N)DictListOptional)softmax)make_classificationmake_multilabel_classificationmake_regression   )BoosterDMatrixQuantileDMatrix)XGBClassifierXGBRegressor)train   )get_basescore)Devicenon_increasingtree_methoddevicereturnc                     dt         j                  dt         j                  ddf fd}t        dd      \  }} |||       t        dd	d
      \  }} |||       	 ddt         j                  dt         j                  dt        t         j                     dt        t
           f fd}t        dd      \  }} |||       t        dd	dd      \  }} |||       t        ddddd      \  }} |||      }t         j                  j                  t        j                  t        |            d       t         j                  j                  t        j                  |      dd       t        j                  t        |      dkD        sJ t        j                  |t        j                  t        j                  |      t        j                   t        j"                  t         j$                        j&                  g      g            d   |j(                  d   z  }t         j                  j                  t        |      |d       t         j*                  j-                  d      }|j/                  dd|j(                  d   f      }	 ||||	      }t         j                  j                  t        j                  t        |            d       t        j                  t        |      dkD        sJ y)zTest for init estimation.Xyr   Nc                    t        
dd	      }|j                  | || |fg       t        |      }|j                         d   d   d   }|j                  dk(  rdn|j
                  d   }t        j                  |fdt        j                        }t        
	dd|	      }|j                  | || |fg       t        |      }|j                         d   d   d   }t        j                  ||      j                         rJ ||k  sJ y )
Nr   r   	max_depthn_estimatorsr   eval_setvalidation_0rmser         ?shape
fill_valuedtype)r   r   r   r   
base_score)r   fitr   evals_resultndimr%   npfullfloat32iscloseany)r   r   regbase_score_0score_0	n_targets	interceptbase_score_1score_1r   r   s            _/home/ubuntu/crypto_trading_bot/.venv/lib/python3.12/site-packages/xgboost/testing/intercept.pyrun_regz$run_init_estimation.<locals>.run_reg   s   #qq
 	1Ax($S)""$^4V<Q?1A!''!*	GG9,3bjjQ	# 
 	1Ax($S)""$^4V<Q?::lL9==???       i      )	n_samplesrandom_state   )r<   r4   r=   wc                 8   t        dd
      }||j                  | ||| |fg|g       n|j                  | || |fg       t        |      }|j                  dk(  r|j	                         d   d   d   }n|j	                         d   d	   d   }|j
                  dk(  rdn|j                  d   }t        j                  |fd
t        j                        }t        dd
|      }||j                  | ||| |fg|g       n|j                  | || |fg       t        |      }|j                  dk(  r|j	                         d   d   d   }	n|j	                         d   d	   d   }	t        j                  ||      j                         rJ ||	dz   k  sJ |S )Nr   r   )sample_weightr    sample_weight_eval_setr   r
   r!   loglossr   mloglossr#   r$   )r   r   r   r   r(   g-C6?)r   r)   r   
n_classes_r*   r+   r%   r,   r-   r.   r/   r0   )r   r   r?   clfr2   r3   r4   r5   r6   r7   r   r   s             r8   run_clfz$run_init_estimation.<locals>.run_clf8   s    #qq
 =GG1A!QRSQT   GGAqQF8G,$S)>>Q&&(8CAFG&&(8DQGG1A!''!*	GG9,3bjjQ	# 
 =GG1A!QRSQT   GGAqQF8G,$S)>>Q&&(8CAFG&&(8DQGG::lL9==???4'''r:      )r<   n_labels	n_classesr=      r   )r<   r=   rJ   n_informativen_redundant      ?        gư>)atol)binsrtol  r   )lowhighsize)N)r,   ndarrayr	   r   r   floatr   r   testingassert_allclosesumr   all	histogramconcatenateuniquearrayfinfor.   maxr%   randomdefault_rnguniform)
r   r   r9   r   r   rG   r5   np_intrngr?   s
   ``        r8   run_init_estimationri      sf   !2:: !"** ! !0 T;DAqAqMTQRHDAqAqM AE)::)**))1"**)=)	e)X B?DAqAqM)abDAq AqM R1BTUDAq 1IJJrvvgi&893?JJrvvi0#DA66')$q()))
BNNBIIaL"((BHHRZZ<P<T<T;U2V#WX	

	 ''!*	  JJwy16E
))


%C6A1a IJJrvvgi&893?66')$q()))r:   weightedc                    t         j                  j                  d      }ddlm} d}t        |d|      \  }}|rL|j                  |      }||j                         z  }t        |||      }	d	d
i}
 |j                  ||fi |
}n!t        ||      }	t        j                  |      }t        | |d|d|	d      }t        | d|d|	d      }t        j                  |j                               }t        j                  |j                               }t        |      t        |      k(  sJ |j!                  d      }t#        |      }t        j                  |j                               }t        |      t        |      k(  sJ t        | |dz   d|d|	d      }t        j                  |j                               }t         j$                  j'                  t        |      t        j(                  t        |            dz          i }t        | |dddd|	d|	dfg|       |d   d   }|d   dk  sJ t+        |      sJ y)zTest for adaptive trees.rT   r   )stats      )r=   )rW   )weightpercentile_rank2   zreg:absoluteerror)r   r(   	objectiver   r   num_boost_round)r   rr   r   ubj)
raw_format)
model_filerN   皙?)r   r   rr   	subsampleeta
   Train)rt   evalsr*   maeg      4@N)r,   rd   RandomStatesklearn.utilsrl   r	   normalminr   _weighted_percentilemedianr   jsonloadssave_configr   save_rawr   rZ   r[   asarrayr   )r   rj   r   rh   rl   r<   r   r   r?   Xykwargsr(   	booster_0	booster_1config_0config_1raw_booster	booster_2config_2r*   r~   s                        r8   run_adaptiver      s]   
))


%C#I2CDAq JJIJ&	QUUWQ!$#R(/U//q


 Q]YYq\
 &$,		
 		I &,	

 	I zz)//12Hzz)//12H"mH&==== $$$6K;/Izz)//12H"mH&==== &$s*,		
 		I zz)//12HJJhM(,C!Dq!H
 02L	&,	
 	G}o! w

&Cr7T>>#r:   c                    t        ddddg      \  }}t        ||      }t        d| d|d	      }t        d
| d|d	      }t        d| d|d	      }t        j                  j                  |||fD cg c]  }t        |       c}|j                                t        ddgd      \  }}t        dd| dt        ||      d	      }t        |      }t        j                  j                  |dd       yc c}w )z!Exp family has a closed solution.   r
   rx   g?)r<   rJ   weightsbinary:logisticrr   r   r   rs   zreg:logisticzbinary:logitrawi  )r   r=   g      @)rr   scale_pos_weightr   r#   gMbP?rR   N)r   r   r   r,   rZ   r[   r   mean)	r   r   r   r   rF   r1   clf1mscores	            r8   run_exp_familyr      s    C:NDAq	A	B
'6:BPQC n?UV
WC'6:BPQD JJ3T:JKQa 0KQVVXVSzEDAq
'SFS1C
 #EJJuc5  Ls   3C7c                 B     dt         ddf fd} |d        |d       y)z3Test https://github.com/dmlc/xgboost/issues/11499 .vr   Nc                     t        t        j                  dgdgg      | | g      }t        dd|d      }t	        |      }|d   | k(  sJ y )NrN   )labelr   r   r   r   )r   r,   r   r   r   )r   dtrainbstr5   r   s       r8   runz$run_logistic_degenerate.<locals>.run   sZ    cUSEN3Aq6B+v>

 "#&	|q   r:   rO   rN   )rY   )r   r   s   ` r8   run_logistic_degenerater      s&    !u ! ! HHr:   )"__doc__r   typingr   r   r   numpyr,   scipy.specialr   sklearn.datasetsr   r   r	   corer   r   r   sklearnr   r   trainingr   updaterr   utilsr   r   strri   boolr   r   r    r:   r8   <module>r      s    )  ' '  !  5 4 1  " )k*S k*& k*T k*^Vc VT V6 Vd Vr66 6d 60F t r:   