Ë
    °Ó^j¥  ã                   óž   — d Z ddlmZmZmZ ddlZddlmZ ddl	m
Z
 ddlmZ dd	lmZ 	 	 dd
ededee   deeef   ddf
d„Zd
edededdfd„Zy)z"Tests for interaction constraints.é    )ÚOptionalÚSequenceÚUnionNé   )ÚFeatureNames)ÚDMatrix)Útrainé   )ÚDeviceÚtree_methodÚdeviceÚfeature_namesÚinteraction_constraintsÚreturnc                 óf  ‡‡‡‡— t         j                  j                  ddd¬«      Št         j                  j                  ddd¬«      Št         j                  j                  g d¢dd¬«      }‰‰z   |z   ‰‰z  |z  z   t         j                  j                  ddd¬«      z   dt        j                  ‰«      z  z   }t        j
                  ‰‰|f«      }t        ||‰¬	«      }dd
d|| |dœ}d}	t        |||	|dfg¬«      Šdt        dt         j                  fˆˆˆˆfd„}
dD �cg c]
  } |
|«      ‘Œ }}|d   |d   z
  }t        j                  t        j                  ||d   z
  «      dk  «      sJ ‚|d   |d   z
  }t        j                  t        j                  ||d   z
  «      dk  «      sJ ‚yc c}w )z5Tests interaction constraints on a synthetic dataset.g      ð?éè  )ÚlocÚscaleÚsize)r
   r   é   T)r   Úreplacegü©ñÒMbP?r   )Úlabelr   çš™™™™™¹?r   )Ú	max_depthÚetaÚnthreadr   r   r   é   r	   )ÚevalsÚxr   c           
      ó”   •— t        t        j                  ‰‰t        j                  | d«      f«      ‰¬«      }‰j	                  |«      S )Nr   )r   )r   ÚnpÚcolumn_stackÚrepeatÚpredict)r   ÚtmatÚbstr   Úx1Úx2s     €€€€úr/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/xgboost/testing/interaction_constraints.pyÚfz&run_interaction_constraints.<locals>.f/   s>   ø€ ÜÜ�O‰O˜R ¤R§Y¡Y¨q°$Ó%7Ð8Ó9Èô
ˆð �{‰{˜4Ó Ð ó    r
   r   g-Cëâ6?N)r!   ÚrandomÚnormalÚchoiceÚsinr"   r   r	   ÚintÚndarrayÚallÚabs)r   r   r   r   Úx3ÚyÚXÚdtrainÚparamsÚnum_boost_roundr*   r   ÚpredsÚdiff1Údiff2r&   r'   r(   s     `            @@@r)   Úrun_interaction_constraintsr=      sÆ  û€ ô 
�‰×	Ñ	˜c¨°4Ð	Ó	8€BÜ	�‰×	Ñ	˜c¨°4Ð	Ó	8€BÜ	�‰×	Ñ	š)¨$¸Ð	Ó	=€Bà
Ø
ñ	à
ñ	ð ˆr‰'�B‰,ñ	ô �)‰)×
Ñ
˜u¨C°dÐ
Ó
;ñ		<ð
 Œb�f‰f�R‹j‰.ñ	ð ô 	�‰˜˜R ˜Ó%€AÜ�Q˜a¨}Ô=€Fð ØØØ#:Ø"Øñ€Fð €Oä
�˜ ¸ÀÐ8IÐ7JÔ
K€Cð!ŒSð !”R—Z‘Z÷ !ð !ð %Ö%�a‰Qˆq�TÐ%€EÐ%ð
 �!‰H�u˜Q‘xÑ€EÜ�6‰6”"—&‘&˜  q¡Ñ)Ó*¨TÑ1Ô2Ð2Ð2Ø�!‰H�u˜Q‘xÑ€EÜ�6‰6”"—&‘&˜  q¡Ñ)Ó*¨TÑ1Ô2Ð2Ñ2ùò &s   Ä F.Údpathc                 óf  — ddl m} t        |dz   «      }t        |dz   «      }ddd| |dd	œ}d
}d|d<   t        |||«      }|j	                  |«      dk  }	 ||j                  «       |	«      dk  sJ ‚d|d<   t        |||«      }|j	                  |«      dk  }	 ||j                  «       |	«      dk  sJ ‚y)z#Test accuracy, reused by GPU tests.r   )Úaccuracy_scorez0agaricus.txt.train?indexing_mode=1&format=libsvmz/agaricus.txt.test?indexing_mode=1&format=libsvmr
   é   zbinary:logisticz[[1,2], [2,3,4]])r   r   Ú	objectiver   r   r   é   Ú	lossguideÚgrow_policyg      à?r   Ú	depthwiseN)Úsklearn.metricsr@   r   r	   r$   Ú	get_label)
r   r>   r   r@   r7   Údtestr8   r9   r&   Ú
pred_dtests
             r)   Útraining_accuracyrK   @   sÓ   € å.ä�UÐOÑOÓP€FÜ�EÐMÑMÓN€EàØØ&Ø"ØØ#5ñ€Fð €Oà'€Fˆ=ÑÜ
�˜ Ó
0€CØ—‘˜UÓ# cÑ)€JÙ˜%Ÿ/™/Ó+¨ZÓ8¸3Ò>Ð>Ð>à'€Fˆ=ÑÜ
�˜ Ó
0€CØ—‘˜UÓ# cÑ)€JÙ˜%Ÿ/™/Ó+¨ZÓ8¸3Ò>Ð>Ñ>r+   )Nz[[0, 1]])Ú__doc__Útypingr   r   r   Únumpyr!   Ú_typingr   Úcorer   Útrainingr	   Úutilsr   Ústrr=   rK   © r+   r)   ú<module>rU      sˆ   ðÙ (ç ,Ñ ,ã å "Ý Ý Ý ð -1Ø4>ñ	03Øð03àð03ð ˜LÑ)ð03ð # 3¨ =Ñ1ð	03ð
 
ó03ðf? 3ð ?¨sð ?¸Fð ?Àtô ?r+   