
    =y!d!                         d dl mZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  ddlm!Z" ddl#m$Z% ddl&m'Z( ddl)m*Z+ ddl)m,Z- ddl.m/Z0 ddl1m2Z3 d dl4m	Z	 d dl4mZ d dl5m6Z6 d dl7Z7d dl8m9Z9 d dl:m;Z< d dl=m>Z? d dl@mAZB d dlCmDc mEZF d dlGmZH d dlImJZK d dlLmDZM d dlNm1ZO d dlPZP e9d          d             ZQeQfdZReQfdZSdd d eQfd!ZTdeQfd"ZUeQfd#ZVdeQd$fd%ZWd& ZXdS )'    )set_idp_sklearn_verbose   )KNeighborsRegressor)NearestNeighbors)KNeighborsClassifier)_daal_train_test_split)_daal_assert_all_finite)SVC)RandomForestClassifier)RandomForestRegressor)_daal_roc_auc_score)daal_pairwise_distances)KMeans)DBSCAN)Lasso)
ElasticNet)LinearRegression)Ridge)LogisticRegression)logistic_regression_path)PCA)TSNE)model_selection)metrics)
validationN)	lru_cache)maxsizec                     i dt           dt          fd ggdt          dt          fd ggdt          dt          fd ggdt
          dt          fd ggd	t          d
t          fd ggdt          dt          fd ggdt          dt          fd ggdt          dt          fd ggdt          dt          fd ggdt          dt          fd ggdt          dt           fd ggdt"          dt$          fd ggdt"          dt&          fd ggdt"          dt(          fd ggdt*          dt,          fd ggdt*          d t.          fd ggd!t0          d!t2          fd ggt4          d"t6          fd ggt
          d#t8          fd ggt:          d$t<          fd ggd%} | d         | d&<   | d         | d'<   | d         | d(<   | d         | d)<   | d         | d*<   | d         | d+<   | d         | d,<   | S )-Npcar   kmeansr   dbscanr   	distancespairwise_distanceslinearr   ridger   
elasticnetr   lassor   svmr
   logistic_logistic_regression_pathlog_regr   knn_classifierr   nearest_neighborsr   knn_regressorr   random_forest_classifierr   random_forest_regressorr   train_test_split_assert_all_finiteroc_auc_scorer   )	fin_checkr3   tsnesvclogisticregressionkneighborsclassifiernearestneighborskneighborsregressorrandomrorestclassifierrandomforestregressor)decomposition_modulePCA_daal4pycluster_moduleKMeans_daal4pyDBSCAN_daal4pyr   r   linear_model_moduleLinearRegression_daal4pyRidge_daal4pyElasticNet_daal4pyLasso_daal4py
svm_moduleSVC_daal4pylogistic_moduledaal_optimized_logistic_pathLogisticRegression_daal4pyneighbors_moduleKNeighborsClassifier_daal4pyNearestNeighbors_daal4pyKNeighborsRegressor_daal4pyensemble_moduleRandomForestClassifier_daal4pyRandomForestRegressor_daal4pyr   r   r   r	   r   manifold_moduleTSNE_daal4py)mappings    Flib/python3.11/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py_get_map_of_algorithmsrW   9   s    &{;TBC ^X~>EF  	^X~>EF  	!57NOQUVW	 
 	(*<-/046 7  	'-@$GH  	,l<NOQUVW  	'-@$GH  	*e[1489  	(C356:< =  	)+?.0157 8  	-/E9;<@B C " 	 02D 8 :;?A B# & 	,.C79:>@ A' * 	#8P'E'GHL&N %O+ . 	"o7N&C&EFJ%L $M/ 2 	0B578<> ?3 6 #$8/1268 9#_.0157 8"FL94@A?     GB U^GEN$+I$6G !&-.>&?G"#")*=">G%,_%=G!"(/0J(KG$%'./H'IG#$N    c                    |                                  }| |            v rN |            |         D ];}|d         \  }}}|d         t          ||d           |d<   t          |||           <d S t          d| z             )Nr      Has no patch for: )lowergetattrsetattr
ValueError)nameget_maplname
descriptorwhichwhatreplacers          rV   do_patchrg   f   s    JJLLE		!'))E* 	+ 	+J$.qM!E4!}$ 'tT : :
1E4****		+ 	+ -4555rX   c                     |                                  }| |            v r@ |            |         D ]-}|d         #|d         \  }}}t          |||d                    .d S t          d| z             )NrZ   r   r[   )r\   r^   r_   )r`   ra   rb   rc   rd   re   _s          rV   
do_unpatchrj   r   s    JJLLE		!'))E* 	4 	4J!}(!+AtQtZ]333	4 	4
 -4555rX   Tc                 (   | t          | |           n |            D ]}t          ||           |r*t                       t          j        dt          dd           |r/|r/t
          j        %t
          j                            d           d S d S d S d S )Na~  
Scikit-learn patching with daal4py is deprecated and will be removed in the future.
Use Intel(R) Extension for Scikit-learn* module instead (pip install scikit-learn-intelex).
To enable patching, please use one of the following options:
1) From the command line:
    python -m sklearnex <your_script>
2) From your script:
    from sklearnex import patch_sklearn
    patch_sklearn()zdispatcher.py   zwIntel(R) oneAPI Data Analytics Library solvers for sklearn enabled: https://intelpython.github.io/daal4py/sklearn.html
)rg   r   warningswarn_explicitFutureWarningsysstderrwrite)r`   verbosedeprecationra   keys        rV   enablerv   }   s    w799 	# 	#CS'"""" D!!!  5  -os	D 	D 	D  D; D3:#9
C	D 	D 	D 	D 	DD D D D#9#9rX   c                     | t          | |           d S  |            D ]}t          ||           |                                 d S N)rj   cache_clear)r`   ra   ru   s      rV   disablerz      s^    4!!!!!799 	% 	%CsG$$$$rX   c                     |                                  }| |            v r9d} |            |         D ]$}|d         \  }}}|ot          ||          |k    }%|S t          d| z             )NTr   r[   )r\   r]   r_   )r`   ra   rb   enabledrc   rd   re   rf   s           rV   _is_enabledr}      s    JJLLE		!'))E* 	C 	CJ$.qM!E4B'%"6"6("BGG-4555rX   Fc                     | t          | |          S |r#i } |            D ]}t          ||          ||<   n!d} |            D ]}|ot          ||          }|S )NT)r}   )r`   ra   
return_mapr|   ru   s        rV   patch_is_enabledr      s    4))) 	@Gwyy 9 9*3889 Gwyy @ @!?k#w&?&?rX   c                  \    t          t                                                                S rx   )listrW   keys rX   rV   _patch_namesr      s#    &((--//000rX   )Ydaal4py.sklearn._utilsr   	neighborsr   rO   r   rN   r   rM   r   r   utils.validationr	   svm.svmr
   rH   ensemble._forestr   rQ   r   rR   r   r   r   cluster.k_meansr   r@   cluster.dbscanr   rA   linear_model.coordinate_descentr   rF   r   rE   linear_model.linearr   rC   linear_model.ridger   rD   linear_model.logistic_pathr   rK   r   rJ   decomposition._pcar   r>   manifoldr   rT   sklearnsklearn.utilsr   rp   	functoolsr   sklearn.clusterclusterr?   sklearn.ensembleensemblerP   sklearn.svmr(   rG   sklearn.linear_model._logisticlinear_model	_logisticrI   sklearn.neighborsrL   sklearn.decompositiondecompositionr=   sklearn.linear_modelrB   sklearn.manifoldrS   rm   rW   rg   rj   rv   rz   r}   r   r   r   rX   rV   <module>r      sl  " ; : : : : : J J J J J J D D D D D D L L L L L L 4 4 4 4 4 4 6 6 6 6 6 6 ( ( ( ( ( ( W W W W W W U U U U U U ) ) ) ) ) ) - - - - - - 6 6 6 6 6 6 5 5 5 5 5 5 D D D D D D N N N N N N N N N N N N 7 7 7 7 7 7 Y Y Y Y Y Y! ! ! ! ! ! 3 3 3 3 3 3 + + + + + + # # # # # #       $ $ $ $ $ $ 



       ( ( ( ( ( ( * * * * * *             8 8 8 8 8 8 8 8 8 , , , , , , 4 4 4 4 4 4 2 2 2 2 2 2 * * * * * *  4) ) )X 2 	6 	6 	6 	6 4 6 6 6 6 d>T D D D D6 5     5 	6 	6 	6 	6 (>5    1 1 1 1 1rX   