1515 document . documentElement . dataset . mode = localStorage . getItem ( "mode" ) || "" ;
1616 document . documentElement . dataset . theme = localStorage . getItem ( "theme" ) || "" ;
1717 </ script >
18- <!--
19- this give us a css class that will be invisible only if js is disabled
18+ <!--
19+ this give us a css class that will be invisible only if js is disabled
2020 -->
2121 < noscript >
2222 < style >
2626 </ noscript >
2727
2828 <!-- Loaded before other Sphinx assets -->
29- < link href ="../../_static/styles/theme.css?digest=26a4bc78f4c0ddb94549 " rel ="stylesheet " />
30- < link href ="../../_static/styles/pydata-sphinx-theme.css?digest=26a4bc78f4c0ddb94549 " rel ="stylesheet " />
29+ < link href ="../../_static/styles/theme.css?digest=8878045cc6db502f8baf " rel ="stylesheet " />
30+ < link href ="../../_static/styles/pydata-sphinx-theme.css?digest=8878045cc6db502f8baf " rel ="stylesheet " />
3131
3232 < link rel ="stylesheet " type ="text/css " href ="../../_static/pygments.css?v=a746c00c " />
3333 < link rel ="stylesheet " type ="text/css " href ="../../_static/copybutton.css?v=76b2166b " />
3939 < link rel ="stylesheet " type ="text/css " href ="../../_static/styles/custom.css?v=29a1de8a " />
4040
4141 <!-- So that users can add custom icons -->
42- < script src ="../../_static/scripts/fontawesome.js?digest=26a4bc78f4c0ddb94549 "> </ script >
42+ < script src ="../../_static/scripts/fontawesome.js?digest=8878045cc6db502f8baf "> </ script >
4343 <!-- Pre-loaded scripts that we'll load fully later -->
44- < link rel ="preload " as ="script " href ="../../_static/scripts/bootstrap.js?digest=26a4bc78f4c0ddb94549 " />
45- < link rel ="preload " as ="script " href ="../../_static/scripts/pydata-sphinx-theme.js?digest=26a4bc78f4c0ddb94549 " />
44+ < link rel ="preload " as ="script " href ="../../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf " />
45+ < link rel ="preload " as ="script " href ="../../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf " />
4646
4747 < script src ="../../_static/documentation_options.js?v=f2a433a1 "> </ script >
4848 < script src ="../../_static/doctools.js?v=9bcbadda "> </ script >
368368
369369
370370 < div class ="sidebar-primary-items__end sidebar-primary__section ">
371+ < div class ="sidebar-primary-item ">
372+ < div id ="ethical-ad-placement "
373+ class ="flat "
374+ data-ea-publisher ="readthedocs "
375+ data-ea-type ="readthedocs-sidebar "
376+ data-ea-manual ="true ">
377+ </ div > </ div >
371378 </ div >
372-
373- < div id ="rtd-footer-container "> </ div >
374379
375380
376381 </ div >
@@ -429,7 +434,7 @@ <h1>Source code for radius_clustering.radius_clustering</h1><div class="highligh
429434
430435< span class ="kn "> import</ span > < span class ="nn "> os</ span >
431436< span class ="kn "> import</ span > < span class ="nn "> numpy</ span > < span class ="k "> as</ span > < span class ="nn "> np</ span >
432- < span class ="kn "> import </ span > < span class ="nn "> scipy.spatial </ span > < span class ="k " > as </ span > < span class ="nn " > sp_spatial </ span >
437+ < span class ="kn "> from </ span > < span class ="nn "> sklearn.metrics </ span > < span class ="kn " > import </ span > < span class ="n " > pairwise_distances </ span >
433438< span class ="kn "> from</ span > < span class ="nn "> sklearn.base</ span > < span class ="kn "> import</ span > < span class ="n "> BaseEstimator</ span > < span class ="p "> ,</ span > < span class ="n "> ClusterMixin</ span >
434439< span class ="kn "> from</ span > < span class ="nn "> sklearn.utils.validation</ span > < span class ="kn "> import</ span > < span class ="n "> check_array</ span >
435440
@@ -459,7 +464,7 @@ <h1>Source code for radius_clustering.radius_clustering</h1><div class="highligh
459464< span class ="sd "> -----------</ span >
460465< span class ="sd "> X : array-like, shape (n_samples, n_features)</ span >
461466< span class ="sd "> The input data.</ span >
462- < span class ="sd "> centers : list</ span >
467+ < span class ="sd "> centers\_ : list</ span >
463468< span class ="sd "> The indices of the cluster centers.</ span >
464469< span class ="sd "> labels\_ : array-like, shape (n_samples,)</ span >
465470< span class ="sd "> The cluster labels for each point in the input data.</ span >
@@ -471,6 +476,13 @@ <h1>Source code for radius_clustering.radius_clustering</h1><div class="highligh
471476 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> manner</ span > < span class ="o "> =</ span > < span class ="n "> manner</ span >
472477 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> threshold</ span > < span class ="o "> =</ span > < span class ="n "> threshold</ span >
473478
479+ < span class ="k "> def</ span > < span class ="nf "> _check_symmetric</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> a</ span > < span class ="p "> ,</ span > < span class ="n "> tol</ span > < span class ="o "> =</ span > < span class ="mf "> 1e-8</ span > < span class ="p "> ):</ span >
480+ < span class ="k "> if</ span > < span class ="n "> a</ span > < span class ="o "> .</ span > < span class ="n "> ndim</ span > < span class ="o "> !=</ span > < span class ="mi "> 2</ span > < span class ="p "> :</ span >
481+ < span class ="k "> raise</ span > < span class ="ne "> ValueError</ span > < span class ="p "> (</ span > < span class ="s2 "> "Input must be a 2D array."</ span > < span class ="p "> )</ span >
482+ < span class ="k "> if</ span > < span class ="n "> a</ span > < span class ="o "> .</ span > < span class ="n "> shape</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ]</ span > < span class ="o "> !=</ span > < span class ="n "> a</ span > < span class ="o "> .</ span > < span class ="n "> shape</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ]:</ span >
483+ < span class ="k "> return</ span > < span class ="kc "> False</ span >
484+ < span class ="k "> return</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> allclose</ span > < span class ="p "> (</ span > < span class ="n "> a</ span > < span class ="p "> ,</ span > < span class ="n "> a</ span > < span class ="o "> .</ span > < span class ="n "> T</ span > < span class ="p "> ,</ span > < span class ="n "> atol</ span > < span class ="o "> =</ span > < span class ="n "> tol</ span > < span class ="p "> )</ span >
485+
474486< div class ="viewcode-block " id ="RadiusClustering.fit ">
475487< a class ="viewcode-back " href ="../../api.html#radius_clustering.RadiusClustering.fit "> [docs]</ a >
476488 < span class ="k "> def</ span > < span class ="nf "> fit</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> X</ span > < span class ="p "> ,</ span > < span class ="n "> y</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
@@ -510,10 +522,19 @@ <h1>Source code for radius_clustering.radius_clustering</h1><div class="highligh
510522 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> X</ span > < span class ="o "> =</ span > < span class ="n "> check_array</ span > < span class ="p "> (</ span > < span class ="n "> X</ span > < span class ="p "> )</ span >
511523
512524 < span class ="c1 "> # Create dist and adj matrices</ span >
513- < span class ="n "> dist_mat</ span > < span class ="o "> =</ span > < span class ="n "> sp_spatial</ span > < span class ="o "> .</ span > < span class ="n "> distance_matrix</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> X</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> X</ span > < span class ="p "> )</ span >
525+ < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _check_symmetric</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> X</ span > < span class ="p "> ):</ span >
526+ < span class ="n "> dist_mat</ span > < span class ="o "> =</ span > < span class ="n "> pairwise_distances</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> X</ span > < span class ="p "> ,</ span > < span class ="n "> metric</ span > < span class ="o "> =</ span > < span class ="s2 "> "euclidean"</ span > < span class ="p "> )</ span >
527+ < span class ="k "> else</ span > < span class ="p "> :</ span >
528+ < span class ="n "> dist_mat</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> X</ span >
514529 < span class ="n "> adj_mask</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> triu</ span > < span class ="p "> ((</ span > < span class ="n "> dist_mat</ span > < span class ="o "> <=</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> threshold</ span > < span class ="p "> ),</ span > < span class ="n "> k</ span > < span class ="o "> =</ span > < span class ="mi "> 1</ span > < span class ="p "> )</ span >
515530 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> nb_edges</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> sum</ span > < span class ="p "> (</ span > < span class ="n "> adj_mask</ span > < span class ="p "> )</ span >
516- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> edges</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> argwhere</ span > < span class ="p "> (</ span > < span class ="n "> adj_mask</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> astype</ span > < span class ="p "> (</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> int32</ span > < span class ="p "> )</ span >
531+ < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> nb_edges</ span > < span class ="o "> ==</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span >
532+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> centers_</ span > < span class ="o "> =</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> X</ span > < span class ="o "> .</ span > < span class ="n "> shape</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ]))</ span >
533+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> labels_</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> centers_</ span >
534+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> effective_radius</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span >
535+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _mds_exec_time</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span >
536+ < span class ="k "> return</ span > < span class ="bp "> self</ span >
537+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> edges</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> argwhere</ span > < span class ="p "> (</ span > < span class ="n "> adj_mask</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> astype</ span > < span class ="p "> (</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> uint32</ span > < span class ="p "> )</ span > < span class ="c1 "> #TODO: changer en uint32</ span >
517538 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> dist_mat</ span > < span class ="o "> =</ span > < span class ="n "> dist_mat</ span >
518539
519540 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _clustering</ span > < span class ="p "> ()</ span >
@@ -587,7 +608,7 @@ <h1>Source code for radius_clustering.radius_clustering</h1><div class="highligh
587608< span class ="sd "> This function uses the approximation method to solve the MDS problem.</ span >
588609< span class ="sd "> See [casado]_ for more details.</ span >
589610< span class ="sd "> """</ span >
590- < span class ="n "> result</ span > < span class ="o "> =</ span > < span class ="n "> solve_mds</ span > < span class ="p "> (</ span > < span class ="n "> n</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> edges</ span > < span class ="o "> .</ span > < span class ="n "> flatten</ span > < span class ="p "> (),</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> nb_edges</ span > < span class ="p "> ,</ span > < span class ="s2 "> "test"</ span > < span class ="p "> )</ span >
611+ < span class ="n "> result</ span > < span class ="o "> =</ span > < span class ="n "> solve_mds</ span > < span class ="p "> (</ span > < span class ="n "> n</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> edges</ span > < span class ="o "> .</ span > < span class ="n "> flatten</ span > < span class ="p "> ()</ span > < span class =" o " > . </ span > < span class =" n " > astype </ span > < span class =" p " > ( </ span > < span class =" n " > np </ span > < span class =" o " > . </ span > < span class =" n " > int32 </ span > < span class =" p " > ) ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> nb_edges</ span > < span class ="p "> ,</ span > < span class ="s2 "> "test"</ span > < span class ="p "> )</ span >
591612 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> centers_</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="n "> x</ span > < span class ="k "> for</ span > < span class ="n "> x</ span > < span class ="ow "> in</ span > < span class ="n "> result</ span > < span class ="p "> [</ span > < span class ="s2 "> "solution_set"</ span > < span class ="p "> ]]</ span >
592613 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _mds_exec_time</ span > < span class ="o "> =</ span > < span class ="n "> result</ span > < span class ="p "> [</ span > < span class ="s2 "> "Time"</ span > < span class ="p "> ]</ span >
593614
@@ -643,8 +664,8 @@ <h1>Source code for radius_clustering.radius_clustering</h1><div class="highligh
643664 </ div >
644665
645666 <!-- Scripts loaded after <body> so the DOM is not blocked -->
646- < script defer src ="../../_static/scripts/bootstrap.js?digest=26a4bc78f4c0ddb94549 "> </ script >
647- < script defer src ="../../_static/scripts/pydata-sphinx-theme.js?digest=26a4bc78f4c0ddb94549 "> </ script >
667+ < script defer src ="../../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf "> </ script >
668+ < script defer src ="../../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf "> </ script >
648669
649670 < footer class ="bd-footer ">
650671< div class ="bd-footer__inner bd-page-width ">
0 commit comments