
    i                     X   d Z ddlmZmZmZ ddlZddlZddlm	Z	 ddl
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mZ dededej2                  dej2                  dee   ddfdZdedededej2                  dej2                  dee   ddfdZ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 compatiblity with sklearn.    )CallableOptionalTypeN)softmax   )DMatrix)XGBClassifierXGBRegressorXGBRFRegressor   )get_california_housingmake_batches)make_recoded)Deviceassert_allclosetree_methoddeviceXyas_framereturnc                    t        ddd| |      }|j                  ||       |j                  |d      }| ||      }t        ddd| |      }|j                  |||	       |j                  ||
      }t        ddd| |      }	|	j                  ||       |	j                  |      }
t        j                  j                  ||
       y)z
    Parameters
    ----------

    as_frame: A callable function to convert margin into DataFrame, useful for different
    df implementations.
    333333?r      learning_raterandom_staten_estimatorsr   r   r   r   Toutput_marginNr   r   base_marginr#      )r	   fitpredictnptestingr   )r   r   r   r   r   model_0marginmodel_1predictions_1cls_2predictions_2s              ^/home/ubuntu/crypto_trading_bot/.venv/lib/python3.12/site-packages/xgboost/testing/with_skl.py run_boost_from_prediction_binaryr1      s     G KK!qK__Qd_3F&!G KK!qfK-OOA6O:ME 
IIQIMM!$MJJ}m<    	estimatorc                 j    | ddd||      }|j                  ||       |j                         j                  |d      }| ||      } | ddd||      }|j                  |||	       |j                         j                  t	        ||
      d      }	 | ddd||      }
|
j                  ||       |
j                         j                  |d      }t        |	d      r|	j                         }	t        |d      r|j                         }t        j                  j                  |	|d       y)z.Boosting from prediction with multi-class clf.r   r   r   r   r   r+   )predict_typeNr"   r$   Tr    r%   getư>atol)
r&   get_boosterinplace_predictr'   r   hasattrr6   r(   r)   r   )r3   r   r   r   r   r   r*   r+   r,   r-   model_2r/   s               r0   &run_boost_from_prediction_multi_clasasr>   B   sH    G KK!qK  "22182LF&!G KK!qfK-'')11v&d 2 M G KK!qK'')99!(9SM}e$%))+}e$%))+JJ}m$Gr2   c                    ddl m} ddlm} t	               \  }}t
        j                  j                  d      } |dd|      }|j                  ||      D ]P  \  }}	t        d| |	      j                  ||   ||         }
|
j                  ||	         }||	   } |||      d
k  rPJ  t        |      }t        j                  t              5  |j                  d       |j                  ||       ddd       y# 1 sw Y   yxY w)z"Testwith the cali housing dataset.r   )mean_squared_error)KFold  r   T)n_splitsshuffler   *   )r   r   r   #   r   
   )early_stopping_roundsN)sklearn.metricsr@   sklearn.model_selectionrA   r   r(   randomRandomStatesplitr   r&   r'   pytestraisesNotImplementedError
set_params)r   r   r@   rA   r   r   rngkftrain_index
test_index	xgb_modelpredslabelsrfregs                 r0   run_housing_rf_regressionr[   u   s    2-!#DAq
))


%C	4c	:B#%88Aq> 6Z"V

#anan
- 	 !!!J-0:!%025556 &)E	*	+ r2		!Q  s   %C<<Dc                    t        | d      \  }}}}}t        dd|       }|j                  ||||fg       |j                         }|j	                         }|j                         j                         rJ t        dd|       }|j                  |||||fg       |j                         }|j	                         }|j                         dk(  sJ |j                         j                         rJ t        dd|       }|j                  ||||fg       |j                         }	t        j                  j                  |	d	   d
   |d	   d
   |d	   d
   z          t        j                  j                  |j                  |      |j                  |             t        j                  j                  |j                  |      |j                  |             y)z)Test re-coding for training continuation.   )
n_featuresTr   )enable_categoricalr   r   )eval_set)rW   r`   r   validation_0rmseN)r   r
   r&   evals_resultr:   get_categoriesemptynum_boosted_roundsr(   r)   r   r'   apply)
r   encreencr   _reg	results_0booster	results_1	results_2s
             r0   run_recodingrp      s   &v"=C1a
$Qv
NCGGCuaj\G*  "IooG%%'--///
$Qv
NCGGE1C8*G=  "IooG%%'1,,,%%'--///
$Qv
NCGGCuaj\G*  "IJJ.!&).!&)In,Ef,MM
 JJs{{513;;s3CDJJsyy/3@r2   c                    ddl m}m} t        dddd      D cg c]  }|d   	 c}\  }}}t	        |       }|j                  |||	       |j                  }|j                  t        j                  k(  sJ |d   d
k  sJ t	        d|       }|j                  |||	       |j                  }t        |t        j                        sJ |j                  t        j                  k(  sJ |d   d
k  sJ d}	 |ddd|	dd      \  }}t        dd|       }
|
j                  ||       |
j                  }t        |t        j                        sJ t        |      dk(  sJ t        |      dk\  j                         sJ t        j                   j#                  t%        |      dd       t        j                   j#                  t%        t        |            d       t        j&                  |	t        j                        |	z  }| dk(  rddl}|j+                  |      }t        d|      }
|
j                  ||       t#        | ||
j                          |ddd|	      \  }}t        j&                  |	t        j                        dz  }| dk(  rddl}|j+                  |      }t        |      }
|
j                  ||       t#        | ||
j                         |
j,                  d k(  sJ yc c}w )!zTests for the intercept.r   )make_classificationmake_multilabel_classification      r   F)use_cupyrG   )sample_weightg      ?gblinear)rm   r   r   rB      r]   )r   	n_samplesr^   	n_classesn_informativen_redundantgbtreezmulti:softprob)rm   	objectiver   g        r7   r8   g      ?)shapedtypecudaN)r   
base_score)r   rz   r^   r{   r   )r   zbinary:logistic)sklearn.datasetsrr   rs   r   r
   r&   
intercept_r   r(   float32
isinstancendarrayr	   lenr   allr)   r   sumonescupyarrayr   )r   rr   rs   vr   r   wrk   resultr{   clf	interceptcps                r0   run_interceptr      s   T)#q!eDEqtEGAq!
f
%CGGAqG"^^F<<2::%%%!9s??
z&
9CGGAqG"^^Ffbjj)))<<2::%%%!9s??IDAq 4DV
TCGGAqM^^Ffbjj)))v;!FOs"'')))JJs6{Cd;JJs76?3S9 y<yHIHHY'	
"2y
ICGGAqMFIs~~6)SR9DAq
 y<q@IHHY'	
9
-CGGAqMFIs~~6==----y Fs   K*)__doc__typingr   r   r   numpyr(   rO   scipy.specialr   corer   sklearnr	   r
   r   datar   r   ordinalr   utilsr   r   strr   r1   r>   r[   rp   r    r2   r0   <module>r      s   * + +   !  A A 6 ! *.=.=.= 
zz.= 
zz	.=
 x .= 
.=b0H0H0H 0H 
zz	0H
 
zz0H x 0H 
0Hf3  4 ,A AD A>@.& @.T @.r2   