
    sii                     2   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dS )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| |          }|                    ||           |                    |d          }| ||          }t          ddd| |          }|                    |||	           |                    ||
          }t          ddd| |          }	|	                    ||           |	                    |          }
t          j                            ||
           dS )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              ^/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/xgboost/testing/with_skl.py run_boost_from_prediction_binaryr0      s%      G KK!qK__Qd_33F&!!  G KK!qfK---OOA6O::M  E 
IIQIMM!$$MJ}m<<<<<    	estimatorc                     | ddd||          }|                     ||           |                                                    |d          }| ||          } | ddd||          }|                     |||	           |                                                    t	          ||
          d          }	 | ddd||          }
|
                     ||           |
                                                    |d          }t          |	d          r|	                                }	t          |d          r|                                }t          j        	                    |	|d           dS )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   s    i  G KK!qK  ""22182LLF&!!i  G KK!qfK---''))11v&&&d 2  M i  G KK!qK''))99!(9SSM}e$$ ,%))++}e$$ ,%))++J}m$GGGGGr1   c                 |   ddl m} ddlm} t	                      \  }}t
          j                            d          } |dd|          }|                    ||          D ]l\  }}	t          d| |	          
                    ||         ||                   }
|
                    ||	                   }||	         } |||          d
k     sJ mt          |          }t          j        t                    5  |                    d           |
                    ||           ddd           dS # 1 swxY w Y   dS )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22222------!##DAq
)


%
%C	4c	:	:	:B#%88Aq>> 6 6Z"V
 
 

#anan
-
- 	 !!!J-00:!!%00255555&)))E	*	+	+  r222		!Q                 s   7-D11D58D5c                    t          | d          \  }}}}}t          dd|           }|                    ||||fg           |                                }|                                }|                                                                rJ t          dd|           }|                    |||||fg           |                                }|                                }|                                dk    sJ |                                                                rJ t          dd|           }|                    ||||fg           |                                }	t          j	        
                    |	d	         d
         |d	         d
         |d	         d
         z              t          j	        
                    |                    |          |                    |                     t          j	        
                    |                    |          |                    |                     dS )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
N
N
NCGGCuaj\G***  ""IooG%%''--/////
$Qv
N
N
NCGGE1C8*G===  ""IooG%%''1,,,,%%''--/////
$Qv
N
N
NCGGCuaj\G***  ""IJ.!&).!&)In,Ef,MM  
 Js{{5113;;s3C3CDDDJsyy//3@@@@@r1   c                    ddl m}m} d t          dddd          D             \  }}}t	          | 	          }|                    |||
           |j        }|j        t          j	        k    sJ |d         dk     sJ t	          d|           }|                    |||
           |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        }t          |t          j                  sJ t          |          dk    sJ |dk                                    sJ t          j                            t#          |          d           t          j        |t          j	                  |z  }
| dk    rddl}|                    |
          }
t          d|
          }	|	                    ||           t!          | |
|	j                    |ddd|          \  }}t          j        |t          j	                  dz  }
| dk    rddl}|                    |
          }
t          |
          }	|	                    ||           t!          | |
|	j                   |	j        dk    sJ dS ) zTests for the intercept.r   )make_classificationmake_multilabel_classificationc                     g | ]
}|d          S )r    ).0vs     r/   
<listcomp>z!run_intercept.<locals>.<listcomp>   s    EEEqtEEEr1         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   r|   r[   r}   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   r   r   wrh   resultr}   clf	interceptcps               r/   run_interceptr      s   TTTTTTTTEE\#q!eDDDEEEGAq!
f
%
%
%CGGAqG"""^F<2:%%%%!9s????
z&
9
9
9CGGAqG"""^Ffbj)))))<2:%%%%!9s????I  DAq 4DV
T
T
TCGGAqMMM^Ffbj)))))v;;!cM     Js6{{C000 y<<<yHIHHY''	
"2y
I
I
ICGGAqMMMFIs~666))SR9  DAq
 y<<<q@IHHY''	
9
-
-
-CGGAqMMMFIs~666=-------r1   )__doc__typingr   r   r   numpyr'   rL   corer   sklearnr   r	   r
   datar   r   ordinalr   utilsr   r   strr   r0   r;   rX   rm   r   rr   r1   r/   <module>r      s   * * + + + + + + + + + +            A A A A A A A A A A 6 6 6 6 6 6 6 6 ! ! ! ! ! ! * * * * * * * *.=.=.= 
z.= 
z	.=
 x .= 
.= .= .= .=b0H0H0H 0H 
z	0H
 
z0H x 0H 
0H 0H 0H 0Hf3  4    ,A AD A A A A>>.& >.T >. >. >. >. >. >.r1   