聚类诊断分析计算classification
<p>[TOC]</p>
<h1>K-Means聚类分析</h1>
<p>stda 沿着 axes 进行聚类,并返回聚类结果,代码示例如下:</p>
<pre><code class="language-python">kmeans(stda, axes, n_components,
n_clusters=8, init=&#039;k-means++&#039;, n_init=&#039;warn&#039;, max_iter=300,
tol=1e-4, verbose=0, random_state=None, copy_x=True, algorithm=&#039;lloyd&#039;)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">任意stda数据</td>
</tr>
<tr>
<td style="text-align: left;">axes</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;"></td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">n_components</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;"></td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">n_clusters</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">Defaults to 8</td>
</tr>
<tr>
<td style="text-align: left;">init</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">Defaults to 'k-means++'</td>
</tr>
<tr>
<td style="text-align: left;">n_init</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">Defaults to 'warm'</td>
</tr>
<tr>
<td style="text-align: left;">max_iter</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">Defaults to 300</td>
</tr>
<tr>
<td style="text-align: left;">tol</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">Defaults to 1e-4</td>
</tr>
<tr>
<td style="text-align: left;">verbose</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">Defaults to 0</td>
</tr>
<tr>
<td style="text-align: left;">random_state</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">Defaults to None</td>
</tr>
<tr>
<td style="text-align: left;">copy_x</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool, optional</td>
<td style="text-align: left;">Defaults to True</td>
</tr>
<tr>
<td style="text-align: left;">algorithm</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">Defaults to 'lloyd'</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">KMeans</td>
<td style="text-align: left;">聚类类别、聚类中心</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">init_time = datetime(2024,6,26,8)
hgt = cmadaas.get_model_3D_grids(data_name=&#039;ecmwf_ens&#039;,var_name=&#039;hgt&#039;,
init_time=init_time,fhours=[24], extent = [70,140,10,60], levels=[500])
ret = metdig.cal.classification.kmeans(hgt, axes=&#039;member&#039;,n_components=3, n_clusters=8)
labels_ = ret.labels_ # 聚类类别
centers = ret.cluster_centers_ # 聚类中心
print(labels_)
print(centers)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python">[4 4 5 3 2 6 6 0 3 4 0 4 1 2 1 4 0 0 2 3 3 0 0 4 6 2 2 7 2 3 4 3 0 0 6 4 2
7 4 2 4 3 4 4 0 3 2 1 4 4 4]
[[ -2.37471 -11.022175 -8.549488 ]
[ 3.3362422 25.17715 0.78612393]
[ 4.060701 2.6779995 -7.323058 ]
[ 2.0018566 -7.600679 9.549271 ]
[-13.711018 2.7178829 1.9687889 ]
[ 33.358044 -15.394549 -0.18335818]
[ 24.175724 9.417707 -3.258411 ]
[ 17.20344 -1.3364804 23.892761 ]]</code></pre>