
    ^i                     L   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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j.                  dej.                  dee   ddfdZdedededej.                  dej.                  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   )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              Y/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/xgboost/testing/with_skl.py run_boost_from_prediction_binaryr0      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$   getgư>)atol)
r%   get_boosterinplace_predictr&   r   hasattrr5   r'   r(   r   )r2   r   r   r   r   r   r)   r*   r+   r,   model_2r.   s               r/   &run_boost_from_prediction_multi_clasasr;   A   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$Gr1   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_selectionr>   r   r'   randomRandomStatesplitr
   r%   r&   pytestraisesNotImplementedError
set_params)r   r   r=   r>   r   r   rngkftrain_index
test_index	xgb_modelpredslabelsrfregs                 r/   run_housing_rf_regressionrX   t   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)rT   r]   r   validation_0rmseN)r   r	   r%   evals_resultr7   get_categoriesemptynum_boosted_roundsr'   r(   r   r&   apply)
r   encreencr   _reg	results_0booster	results_1	results_2s
             r/   run_recodingrm      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@r1   c                 d   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 |dk\  j                         sJ t        j                  j!                  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_cupyrD   )sample_weightg      ?gblinear)rj   r   r   r?      rZ   )r   	n_samplesr[   	n_classesn_informativen_redundantgbtreezmulti:softprob)rj   	objectiver   g        g      ?)shapedtypecudaN)r|   
base_score)r   rw   r[   rx   r   )r   zbinary:logistic)sklearn.datasetsro   rp   r   r	   r%   
intercept_r~   r'   float32
isinstancendarrayr   lenallr(   r   sumonescupyarrayr|   )r   ro   rp   vr   r   wrh   resultrx   clf	interceptcps                r/   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;!cM   JJs6{C0 y<yHIHHY'	
"2y
ICGGAqMFIs~~6)SR9DAq
 y<q@IHHY'	
9
-CGGAqMFIs~~6==----u Fs   J-)__doc__typingr   r   r   numpyr'   rL   corer   sklearnr   r	   r
   datar   r   ordinalr   utilsr   r   strr   r0   r;   rX   rm   r    r1   r/   <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 >.r1   