<!DOCTYPE html> <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> <head> <meta charset="utf-8"> <meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" /> <meta property="og:title" content="sklearn.cluster.AffinityPropagation" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://scikit-learn/stable/modules/generated/sklearn.cluster.AffinityPropagation.html" /> <meta property="og:site_name" content="scikit-learn" /> <meta property="og:description" content="Examples using sklearn.cluster.AffinityPropagation: Comparing different clustering algorithms on toy datasets Demo of affinity propagation clustering algorithm" /> <meta property="og:image" content="https://scikit-learn/stable/_images/sphx_glr_plot_cluster_comparison_thumb.png" /> <meta property="og:image:alt" content="" /> <meta name="description" content="Examples using sklearn.cluster.AffinityPropagation: Comparing different clustering algorithms on toy datasets Demo of affinity propagation clustering algorithm" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>sklearn.cluster.AffinityPropagation — scikit-learn 1.4.dev0 documentation</title> <link rel="canonical" href="http://scikit-learn.org/stable/modules/generated/sklearn.cluster.AffinityPropagation.html" /> <link rel="shortcut icon" href="../../_static/favicon.ico"/> <link rel="stylesheet" href="../../_static/css/vendor/bootstrap.min.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../../_static/copybutton.css" type="text/css" /> <link rel="stylesheet" href="../../_static/plot_directive.css" type="text/css" /> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Vibur" type="text/css" /> <link rel="stylesheet" href="../../_static/jupyterlite_sphinx.css" type="text/css" /> <link rel="stylesheet" href="../../_static/sg_gallery.css" type="text/css" /> <link rel="stylesheet" href="../../_static/sg_gallery-binder.css" type="text/css" /> <link rel="stylesheet" href="../../_static/sg_gallery-dataframe.css" type="text/css" /> <link rel="stylesheet" href="../../_static/sg_gallery-rendered-html.css" type="text/css" /> <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> <script src="../../_static/js/vendor/jquery-3.6.3.slim.min.js"></script> </head> <body> <nav id="navbar" class="sk-docs-navbar navbar navbar-expand-md navbar-light bg-light py-0"> <div class="container-fluid sk-docs-container px-0"> <a class="navbar-brand py-0" href="../../index.html"> <img class="sk-brand-img" src="../../_static/scikit-learn-logo-small.png" alt="logo"/> </a> <button id="sk-navbar-toggler" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" > <span class="navbar-toggler-icon"></span> </button> <div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <li class="nav-item"> <a class="sk-nav-link nav-link" href="../../install.html">Install</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link" href="../../user_guide.html">User Guide</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link" href="../classes.html">API</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link" href="../../auto_examples/index.html">Examples</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link" target="_blank" rel="noopener noreferrer" href="https://blog.scikit-learn.org/">Community</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../getting_started.html" >Getting Started</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../tutorial/index.html" >Tutorial</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../whats_new/v1.4.html" >What's new</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../glossary.html" >Glossary</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../developers/index.html" >Development</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../faq.html" >FAQ</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../support.html" >Support</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../related_projects.html" >Related packages</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../roadmap.html" >Roadmap</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../governance.html" >Governance</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../../about.html" >About us</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://github.com/scikit-learn/scikit-learn" >GitHub</a> </li> <li class="nav-item"> <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://scikit-learn.org/dev/versions.html" >Other Versions and Download</a> </li> <li class="nav-item dropdown nav-more-item-dropdown"> <a class="sk-nav-link nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="sk-nav-dropdown-item dropdown-item" href="../../getting_started.html" >Getting Started</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../tutorial/index.html" >Tutorial</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../whats_new/v1.4.html" >What's new</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../glossary.html" >Glossary</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../developers/index.html" >Development</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../faq.html" >FAQ</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../support.html" >Support</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../related_projects.html" >Related packages</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../roadmap.html" >Roadmap</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../governance.html" >Governance</a> <a class="sk-nav-dropdown-item dropdown-item" href="../../about.html" >About us</a> <a class="sk-nav-dropdown-item dropdown-item" href="https://github.com/scikit-learn/scikit-learn" >GitHub</a> <a class="sk-nav-dropdown-item dropdown-item" href="https://scikit-learn.org/dev/versions.html" >Other Versions and Download</a> </div> </li> </ul> <div id="searchbox" role="search"> <div class="searchformwrapper"> <form class="search" action="../../search.html" method="get"> <input class="sk-search-text-input" type="text" name="q" aria-labelledby="searchlabel" /> <input class="sk-search-text-btn" type="submit" value="Go" /> </form> </div> </div> </div> </div> </nav> <div class="d-flex" id="sk-doc-wrapper"> <input type="checkbox" name="sk-toggle-checkbox" id="sk-toggle-checkbox"> <label id="sk-sidemenu-toggle" class="sk-btn-toggle-toc btn sk-btn-primary" for="sk-toggle-checkbox">Toggle Menu</label> <div id="sk-sidebar-wrapper" class="border-right"> <div class="sk-sidebar-toc-wrapper"> <div class="btn-group w-100 mb-2" role="group" aria-label="rellinks"> <a href="sklearn.calibration.calibration_curve.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="sklearn.calibration.calibration_curve">Prev</a><a href="../classes.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="API Reference">Up</a> <a href="sklearn.cluster.AgglomerativeClustering.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="sklearn.cluster.AgglomerativeClustering">Next</a> </div> <div class="alert alert-danger p-1 mb-2" role="alert"> <p class="text-center mb-0"> <strong>scikit-learn 1.4.dev0</strong><br/> <a href="http://scikit-learn.org/dev/versions.html">Other versions</a> </p> </div> <div class="alert alert-warning p-1 mb-2" role="alert"> <p class="text-center mb-0"> Please <a class="font-weight-bold" href="../../about.html#citing-scikit-learn"><string>cite us</string></a> if you use the software. </p> </div> <div class="sk-sidebar-toc"> <ul> <li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.cluster</span></code>.AffinityPropagation</a><ul> <li><a class="reference internal" href="#sklearn.cluster.AffinityPropagation"><code class="docutils literal notranslate"><span class="pre">AffinityPropagation</span></code></a><ul> <li><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.fit"><code class="docutils literal notranslate"><span class="pre">AffinityPropagation.fit</span></code></a></li> <li><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.fit_predict"><code class="docutils literal notranslate"><span class="pre">AffinityPropagation.fit_predict</span></code></a></li> <li><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.get_metadata_routing"><code class="docutils literal notranslate"><span class="pre">AffinityPropagation.get_metadata_routing</span></code></a></li> <li><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.get_params"><code class="docutils literal notranslate"><span class="pre">AffinityPropagation.get_params</span></code></a></li> <li><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.predict"><code class="docutils literal notranslate"><span class="pre">AffinityPropagation.predict</span></code></a></li> <li><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.set_params"><code class="docutils literal notranslate"><span class="pre">AffinityPropagation.set_params</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#examples-using-sklearn-cluster-affinitypropagation">Examples using <code class="docutils literal notranslate"><span class="pre">sklearn.cluster.AffinityPropagation</span></code></a></li> </ul> </li> </ul> </div> </div> </div> <div id="sk-page-content-wrapper"> <div class="sk-page-content container-fluid body px-md-3" role="main"> <section id="sklearn-cluster-affinitypropagation"> <h1><a class="reference internal" href="../classes.html#module-sklearn.cluster" title="sklearn.cluster"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sklearn.cluster</span></code></a>.AffinityPropagation<a class="headerlink" href="#sklearn-cluster-affinitypropagation" title="Permalink to this heading">¶</a></h1> <dl class="py class"> <dt class="sig sig-object py" id="sklearn.cluster.AffinityPropagation"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">sklearn.cluster.</span></span><span class="sig-name descname"><span class="pre">AffinityPropagation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">damping</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_iter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">200</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">convergence_iter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">15</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">copy</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">preference</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">affinity</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'euclidean'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">random_state</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/scikit-learn/scikit-learn/blob/702316c27/sklearn/cluster/_affinity_propagation.py#L298"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sklearn.cluster.AffinityPropagation" title="Permalink to this definition">¶</a></dt> <dd><p>Perform Affinity Propagation Clustering of data.</p> <p>Read more in the <a class="reference internal" href="../clustering.html#affinity-propagation"><span class="std std-ref">User Guide</span></a>.</p> <dl class="field-list"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><dl> <dt><strong>damping</strong><span class="classifier">float, default=0.5</span></dt><dd><p>Damping factor in the range <code class="docutils literal notranslate"><span class="pre">[0.5,</span> <span class="pre">1.0)</span></code> is the extent to which the current value is maintained relative to incoming values (weighted 1 - damping). This in order to avoid numerical oscillations when updating these values (messages).</p> </dd> <dt><strong>max_iter</strong><span class="classifier">int, default=200</span></dt><dd><p>Maximum number of iterations.</p> </dd> <dt><strong>convergence_iter</strong><span class="classifier">int, default=15</span></dt><dd><p>Number of iterations with no change in the number of estimated clusters that stops the convergence.</p> </dd> <dt><strong>copy</strong><span class="classifier">bool, default=True</span></dt><dd><p>Make a copy of input data.</p> </dd> <dt><strong>preference</strong><span class="classifier">array-like of shape (n_samples,) or float, default=None</span></dt><dd><p>Preferences for each point - points with larger values of preferences are more likely to be chosen as exemplars. The number of exemplars, ie of clusters, is influenced by the input preferences value. If the preferences are not passed as arguments, they will be set to the median of the input similarities.</p> </dd> <dt><strong>affinity</strong><span class="classifier">{‘euclidean’, ‘precomputed’}, default=’euclidean’</span></dt><dd><p>Which affinity to use. At the moment ‘precomputed’ and <code class="docutils literal notranslate"><span class="pre">euclidean</span></code> are supported. ‘euclidean’ uses the negative squared euclidean distance between points.</p> </dd> <dt><strong>verbose</strong><span class="classifier">bool, default=False</span></dt><dd><p>Whether to be verbose.</p> </dd> <dt><strong>random_state</strong><span class="classifier">int, RandomState instance or None, default=None</span></dt><dd><p>Pseudo-random number generator to control the starting state. Use an int for reproducible results across function calls. See the <a class="reference internal" href="../../glossary.html#term-random_state"><span class="xref std std-term">Glossary</span></a>.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 0.23: </span>this parameter was previously hardcoded as 0.</p> </div> </dd> </dl> </dd> <dt class="field-even">Attributes<span class="colon">:</span></dt> <dd class="field-even"><dl> <dt><strong>cluster_centers_indices_</strong><span class="classifier">ndarray of shape (n_clusters,)</span></dt><dd><p>Indices of cluster centers.</p> </dd> <dt><strong>cluster_centers_</strong><span class="classifier">ndarray of shape (n_clusters, n_features)</span></dt><dd><p>Cluster centers (if affinity != <code class="docutils literal notranslate"><span class="pre">precomputed</span></code>).</p> </dd> <dt><strong>labels_</strong><span class="classifier">ndarray of shape (n_samples,)</span></dt><dd><p>Labels of each point.</p> </dd> <dt><strong>affinity_matrix_</strong><span class="classifier">ndarray of shape (n_samples, n_samples)</span></dt><dd><p>Stores the affinity matrix used in <code class="docutils literal notranslate"><span class="pre">fit</span></code>.</p> </dd> <dt><strong>n_iter_</strong><span class="classifier">int</span></dt><dd><p>Number of iterations taken to converge.</p> </dd> <dt><strong>n_features_in_</strong><span class="classifier">int</span></dt><dd><p>Number of features seen during <a class="reference internal" href="../../glossary.html#term-fit"><span class="xref std std-term">fit</span></a>.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 0.24.</span></p> </div> </dd> <dt><strong>feature_names_in_</strong><span class="classifier">ndarray of shape (<code class="docutils literal notranslate"><span class="pre">n_features_in_</span></code>,)</span></dt><dd><p>Names of features seen during <a class="reference internal" href="../../glossary.html#term-fit"><span class="xref std std-term">fit</span></a>. Defined only when <code class="docutils literal notranslate"><span class="pre">X</span></code> has feature names that are all strings.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.0.</span></p> </div> </dd> </dl> </dd> </dl> <div class="admonition seealso"> <p class="admonition-title">See also</p> <dl class="simple"> <dt><a class="reference internal" href="sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering" title="sklearn.cluster.AgglomerativeClustering"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AgglomerativeClustering</span></code></a></dt><dd><p>Recursively merges the pair of clusters that minimally increases a given linkage distance.</p> </dd> <dt><a class="reference internal" href="sklearn.cluster.FeatureAgglomeration.html#sklearn.cluster.FeatureAgglomeration" title="sklearn.cluster.FeatureAgglomeration"><code class="xref py py-obj docutils literal notranslate"><span class="pre">FeatureAgglomeration</span></code></a></dt><dd><p>Similar to AgglomerativeClustering, but recursively merges features instead of samples.</p> </dd> <dt><a class="reference internal" href="sklearn.cluster.KMeans.html#sklearn.cluster.KMeans" title="sklearn.cluster.KMeans"><code class="xref py py-obj docutils literal notranslate"><span class="pre">KMeans</span></code></a></dt><dd><p>K-Means clustering.</p> </dd> <dt><a class="reference internal" href="sklearn.cluster.MiniBatchKMeans.html#sklearn.cluster.MiniBatchKMeans" title="sklearn.cluster.MiniBatchKMeans"><code class="xref py py-obj docutils literal notranslate"><span class="pre">MiniBatchKMeans</span></code></a></dt><dd><p>Mini-Batch K-Means clustering.</p> </dd> <dt><a class="reference internal" href="sklearn.cluster.MeanShift.html#sklearn.cluster.MeanShift" title="sklearn.cluster.MeanShift"><code class="xref py py-obj docutils literal notranslate"><span class="pre">MeanShift</span></code></a></dt><dd><p>Mean shift clustering using a flat kernel.</p> </dd> <dt><a class="reference internal" href="sklearn.cluster.SpectralClustering.html#sklearn.cluster.SpectralClustering" title="sklearn.cluster.SpectralClustering"><code class="xref py py-obj docutils literal notranslate"><span class="pre">SpectralClustering</span></code></a></dt><dd><p>Apply clustering to a projection of the normalized Laplacian.</p> </dd> </dl> </div> <p class="rubric">Notes</p> <p>For an example, see <a class="reference internal" href="../../auto_examples/cluster/plot_affinity_propagation.html#sphx-glr-auto-examples-cluster-plot-affinity-propagation-py"><span class="std std-ref">examples/cluster/plot_affinity_propagation.py</span></a>.</p> <p>The algorithmic complexity of affinity propagation is quadratic in the number of points.</p> <p>When the algorithm does not converge, it will still return a arrays of <code class="docutils literal notranslate"><span class="pre">cluster_center_indices</span></code> and labels if there are any exemplars/clusters, however they may be degenerate and should be used with caution.</p> <p>When <code class="docutils literal notranslate"><span class="pre">fit</span></code> does not converge, <code class="docutils literal notranslate"><span class="pre">cluster_centers_</span></code> is still populated however it may be degenerate. In such a case, proceed with caution. If <code class="docutils literal notranslate"><span class="pre">fit</span></code> does not converge and fails to produce any <code class="docutils literal notranslate"><span class="pre">cluster_centers_</span></code> then <code class="docutils literal notranslate"><span class="pre">predict</span></code> will label every sample as <code class="docutils literal notranslate"><span class="pre">-1</span></code>.</p> <p>When all training samples have equal similarities and equal preferences, the assignment of cluster centers and labels depends on the preference. If the preference is smaller than the similarities, <code class="docutils literal notranslate"><span class="pre">fit</span></code> will result in a single cluster center and label <code class="docutils literal notranslate"><span class="pre">0</span></code> for every sample. Otherwise, every training sample becomes its own cluster center and is assigned a unique label.</p> <p class="rubric">References</p> <p>Brendan J. Frey and Delbert Dueck, “Clustering by Passing Messages Between Data Points”, Science Feb. 2007</p> <p class="rubric">Examples</p> <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">sklearn.cluster</span> <span class="kn">import</span> <span class="n">AffinityPropagation</span> <span class="gp">>>> </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="gp">>>> </span><span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="gp">... </span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">0</span><span class="p">]])</span> <span class="gp">>>> </span><span class="n">clustering</span> <span class="o">=</span> <span class="n">AffinityPropagation</span><span class="p">(</span><span class="n">random_state</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">clustering</span> <span class="go">AffinityPropagation(random_state=5)</span> <span class="gp">>>> </span><span class="n">clustering</span><span class="o">.</span><span class="n">labels_</span> <span class="go">array([0, 0, 0, 1, 1, 1])</span> <span class="gp">>>> </span><span class="n">clustering</span><span class="o">.</span><span class="n">predict</span><span class="p">([[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">]])</span> <span class="go">array([0, 1])</span> <span class="gp">>>> </span><span class="n">clustering</span><span class="o">.</span><span class="n">cluster_centers_</span> <span class="go">array([[1, 2],</span> <span class="go"> [4, 2]])</span> </pre></div> </div> <p class="rubric">Methods</p> <table class="autosummary longtable docutils align-default"> <tbody> <tr class="row-odd"><td><p><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.fit" title="sklearn.cluster.AffinityPropagation.fit"><code class="xref py py-obj docutils literal notranslate"><span class="pre">fit</span></code></a>(X[, y])</p></td> <td><p>Fit the clustering from features, or affinity matrix.</p></td> </tr> <tr class="row-even"><td><p><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.fit_predict" title="sklearn.cluster.AffinityPropagation.fit_predict"><code class="xref py py-obj docutils literal notranslate"><span class="pre">fit_predict</span></code></a>(X[, y])</p></td> <td><p>Fit clustering from features/affinity matrix; return cluster labels.</p></td> </tr> <tr class="row-odd"><td><p><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.get_metadata_routing" title="sklearn.cluster.AffinityPropagation.get_metadata_routing"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_metadata_routing</span></code></a>()</p></td> <td><p>Get metadata routing of this object.</p></td> </tr> <tr class="row-even"><td><p><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.get_params" title="sklearn.cluster.AffinityPropagation.get_params"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_params</span></code></a>([deep])</p></td> <td><p>Get parameters for this estimator.</p></td> </tr> <tr class="row-odd"><td><p><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.predict" title="sklearn.cluster.AffinityPropagation.predict"><code class="xref py py-obj docutils literal notranslate"><span class="pre">predict</span></code></a>(X)</p></td> <td><p>Predict the closest cluster each sample in X belongs to.</p></td> </tr> <tr class="row-even"><td><p><a class="reference internal" href="#sklearn.cluster.AffinityPropagation.set_params" title="sklearn.cluster.AffinityPropagation.set_params"><code class="xref py py-obj docutils literal notranslate"><span class="pre">set_params</span></code></a>(**params)</p></td> <td><p>Set the parameters of this estimator.</p></td> </tr> </tbody> </table> <dl class="py method"> <dt class="sig sig-object py" id="sklearn.cluster.AffinityPropagation.fit"> <span class="sig-name descname"><span class="pre">fit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">X</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/scikit-learn/scikit-learn/blob/702316c27/sklearn/cluster/_affinity_propagation.py#L472"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sklearn.cluster.AffinityPropagation.fit" title="Permalink to this definition">¶</a></dt> <dd><p>Fit the clustering from features, or affinity matrix.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><dl class="simple"> <dt><strong>X</strong><span class="classifier">{array-like, sparse matrix} of shape (n_samples, n_features), or array-like of shape (n_samples, n_samples)</span></dt><dd><p>Training instances to cluster, or similarities / affinities between instances if <code class="docutils literal notranslate"><span class="pre">affinity='precomputed'</span></code>. If a sparse feature matrix is provided, it will be converted into a sparse <code class="docutils literal notranslate"><span class="pre">csr_matrix</span></code>.</p> </dd> <dt><strong>y</strong><span class="classifier">Ignored</span></dt><dd><p>Not used, present here for API consistency by convention.</p> </dd> </dl> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><dl class="simple"> <dt>self</dt><dd><p>Returns the instance itself.</p> </dd> </dl> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="sklearn.cluster.AffinityPropagation.fit_predict"> <span class="sig-name descname"><span class="pre">fit_predict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">X</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/scikit-learn/scikit-learn/blob/702316c27/sklearn/cluster/_affinity_propagation.py#L571"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sklearn.cluster.AffinityPropagation.fit_predict" title="Permalink to this definition">¶</a></dt> <dd><p>Fit clustering from features/affinity matrix; return cluster labels.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><dl class="simple"> <dt><strong>X</strong><span class="classifier">{array-like, sparse matrix} of shape (n_samples, n_features), or array-like of shape (n_samples, n_samples)</span></dt><dd><p>Training instances to cluster, or similarities / affinities between instances if <code class="docutils literal notranslate"><span class="pre">affinity='precomputed'</span></code>. If a sparse feature matrix is provided, it will be converted into a sparse <code class="docutils literal notranslate"><span class="pre">csr_matrix</span></code>.</p> </dd> <dt><strong>y</strong><span class="classifier">Ignored</span></dt><dd><p>Not used, present here for API consistency by convention.</p> </dd> </dl> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><dl class="simple"> <dt><strong>labels</strong><span class="classifier">ndarray of shape (n_samples,)</span></dt><dd><p>Cluster labels.</p> </dd> </dl> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="sklearn.cluster.AffinityPropagation.get_metadata_routing"> <span class="sig-name descname"><span class="pre">get_metadata_routing</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/scikit-learn/scikit-learn/blob/702316c27/sklearn/utils/_metadata_requests.py#L1287"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sklearn.cluster.AffinityPropagation.get_metadata_routing" title="Permalink to this definition">¶</a></dt> <dd><p>Get metadata routing of this object.</p> <p>Please check <a class="reference internal" href="../../metadata_routing.html#metadata-routing"><span class="std std-ref">User Guide</span></a> on how the routing mechanism works.</p> <dl class="field-list simple"> <dt class="field-odd">Returns<span class="colon">:</span></dt> <dd class="field-odd"><dl class="simple"> <dt><strong>routing</strong><span class="classifier">MetadataRequest</span></dt><dd><p>A <a class="reference internal" href="sklearn.utils.metadata_routing.MetadataRequest.html#sklearn.utils.metadata_routing.MetadataRequest" title="sklearn.utils.metadata_routing.MetadataRequest"><code class="xref py py-class docutils literal notranslate"><span class="pre">MetadataRequest</span></code></a> encapsulating routing information.</p> </dd> </dl> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="sklearn.cluster.AffinityPropagation.get_params"> <span class="sig-name descname"><span class="pre">get_params</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">deep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/scikit-learn/scikit-learn/blob/702316c27/sklearn/base.py#L178"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sklearn.cluster.AffinityPropagation.get_params" title="Permalink to this definition">¶</a></dt> <dd><p>Get parameters for this estimator.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><dl class="simple"> <dt><strong>deep</strong><span class="classifier">bool, default=True</span></dt><dd><p>If True, will return the parameters for this estimator and contained subobjects that are estimators.</p> </dd> </dl> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><dl class="simple"> <dt><strong>params</strong><span class="classifier">dict</span></dt><dd><p>Parameter names mapped to their values.</p> </dd> </dl> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="sklearn.cluster.AffinityPropagation.predict"> <span class="sig-name descname"><span class="pre">predict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">X</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/scikit-learn/scikit-learn/blob/702316c27/sklearn/cluster/_affinity_propagation.py#L536"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sklearn.cluster.AffinityPropagation.predict" title="Permalink to this definition">¶</a></dt> <dd><p>Predict the closest cluster each sample in X belongs to.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><dl class="simple"> <dt><strong>X</strong><span class="classifier">{array-like, sparse matrix} of shape (n_samples, n_features)</span></dt><dd><p>New data to predict. If a sparse matrix is provided, it will be converted into a sparse <code class="docutils literal notranslate"><span class="pre">csr_matrix</span></code>.</p> </dd> </dl> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><dl class="simple"> <dt><strong>labels</strong><span class="classifier">ndarray of shape (n_samples,)</span></dt><dd><p>Cluster labels.</p> </dd> </dl> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="sklearn.cluster.AffinityPropagation.set_params"> <span class="sig-name descname"><span class="pre">set_params</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/scikit-learn/scikit-learn/blob/702316c27/sklearn/base.py#L202"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sklearn.cluster.AffinityPropagation.set_params" title="Permalink to this definition">¶</a></dt> <dd><p>Set the parameters of this estimator.</p> <p>The method works on simple estimators as well as on nested objects (such as <a class="reference internal" href="sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">Pipeline</span></code></a>). The latter have parameters of the form <code class="docutils literal notranslate"><span class="pre"><component>__<parameter></span></code> so that it’s possible to update each component of a nested object.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><dl class="simple"> <dt><strong>**params</strong><span class="classifier">dict</span></dt><dd><p>Estimator parameters.</p> </dd> </dl> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><dl class="simple"> <dt><strong>self</strong><span class="classifier">estimator instance</span></dt><dd><p>Estimator instance.</p> </dd> </dl> </dd> </dl> </dd></dl> </dd></dl> <section id="examples-using-sklearn-cluster-affinitypropagation"> <h2>Examples using <code class="docutils literal notranslate"><span class="pre">sklearn.cluster.AffinityPropagation</span></code><a class="headerlink" href="#examples-using-sklearn-cluster-affinitypropagation" title="Permalink to this heading">¶</a></h2> <div class="sphx-glr-thumbnails"><div class="sphx-glr-thumbcontainer" tooltip="This example shows characteristics of different clustering algorithms on datasets that are "int..."><img alt="" src="../../_images/sphx_glr_plot_cluster_comparison_thumb.png" /> <p><a class="reference internal" href="../../auto_examples/cluster/plot_cluster_comparison.html#sphx-glr-auto-examples-cluster-plot-cluster-comparison-py"><span class="std std-ref">Comparing different clustering algorithms on toy datasets</span></a></p> <div class="sphx-glr-thumbnail-title">Comparing different clustering algorithms on toy datasets</div> </div><div class="sphx-glr-thumbcontainer" tooltip="Reference: Brendan J. Frey and Delbert Dueck, "Clustering by Passing Messages Between Data Poin..."><img alt="" src="../../_images/sphx_glr_plot_affinity_propagation_thumb.png" /> <p><a class="reference internal" href="../../auto_examples/cluster/plot_affinity_propagation.html#sphx-glr-auto-examples-cluster-plot-affinity-propagation-py"><span class="std std-ref">Demo of affinity propagation clustering algorithm</span></a></p> <div class="sphx-glr-thumbnail-title">Demo of affinity propagation clustering algorithm</div> </div></div><div class="clearer"></div></section> </section> </div> <div class="container"> <footer class="sk-content-footer"> © 2007 - 2023, scikit-learn developers (BSD License). <a href="../../_sources/modules/generated/sklearn.cluster.AffinityPropagation.rst.txt" rel="nofollow">Show this page source</a> </footer> </div> </div> </div> <script src="../../_static/js/vendor/bootstrap.min.js"></script> <script> window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga('create', 'UA-22606712-2', 'auto'); ga('set', 'anonymizeIp', true); ga('send', 'pageview'); </script> <script async src='https://www.google-analytics.com/analytics.js'></script> <script defer data-domain="scikit-learn.org" src="https://views.scientific-python.org/js/script.js"> </script> <script src="../../_static/clipboard.min.js"></script> <script src="../../_static/copybutton.js"></script> <script> $(document).ready(function() { /* Add a [>>>] button on the top-right corner of code samples to hide * the >>> and ... prompts and the output and thus make the code * copyable. */ var div = $('.highlight-python .highlight,' + '.highlight-python3 .highlight,' + '.highlight-pycon .highlight,' + '.highlight-default .highlight') var pre = div.find('pre'); // get the styles from the current theme pre.parent().parent().css('position', 'relative'); // create and add the button to all the code blocks that contain >>> div.each(function(index) { var jthis = $(this); // tracebacks (.gt) contain bare text elements that need to be // wrapped in a span to work with .nextUntil() (see later) jthis.find('pre:has(.gt)').contents().filter(function() { return ((this.nodeType == 3) && (this.data.trim().length > 0)); }).wrap('<span>'); }); /*** Add permalink buttons next to glossary terms ***/ $('dl.glossary > dt[id]').append(function() { return ('<a class="headerlink" href="#' + this.getAttribute('id') + '" title="Permalink to this term">¶</a>'); }); }); </script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script> <script src="https://scikit-learn.org/versionwarning.js"></script> </body> </html>