机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
在聚类问题中,Silhouette
分析用来研究聚类结果的类间距离。Silhouette数值度量在相同类中的点,与不同类中的点相比的紧密程度。Silhouette图可视化这一测度,这样就提供了一种评价类个数的方法。
Silhouette值在[-1, 1]内,接近1表示样本远离邻近类,取0表示样本几乎在两个近邻类的决策边界上,取负值表示样本被分在错误的类里。在本例中,我们使用Silhouette分析选择一个类个数参数n_clusters
的最优值。
实例详解
首先,加载必需的库。
from __future__ import print_function
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_samples, silhouette_score
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
使用函数make_blobs()
产生样本数据,该函数专门用来生成用于聚类的团状正态样本。在这里,我们产生500个样本,分别属于4个类。其中的3个类比较接近,而另一个离这3个类比较远。
# Generating the sample dat