【sklearn练习】KMeans |
您所在的位置:网站首页 › 机器三个特征包括什么 › 【sklearn练习】KMeans |
文章目录
一、数据集探索二、数据预处理三、构建模型获取结果四、聚类结果可视化五、聚类模型评估① 轮廓系数② 卡林斯基 - 哈拉巴斯指数③ FMI评价法
一、数据集探索
Seeds 数据集存放了不同品种小麦种子的区域、周长、压实度、籽粒长度、籽粒宽度、不对称系数、籽粒腹沟长度以及类别数据。该数据集总共210条记录、7个特征、一个标签,标签分为3类。 X: target: 返回顶部 二、数据预处理 不同特征之间往往具有不同的量纲,由此所造成的数值间的差异可能很大,在涉及空间距离计算或梯度下降法等情况的时候不对其进行处理会影响到数据分析结果的准确性。为了消除特征之间的量纲和取值范围差异可能会造成的影响,需对数据进行标准化处理,也可以称为规范化处理。在这里我们对数据集进行标准差标准化处理。 # 2.对数据集进行离差标准化处理 MMS = MinMaxScaler().fit(x) x_ = MMS.transform(x)处理后的数据集: 返回顶部 三、构建模型获取结果 # 3.构建KMeans聚类模型 cluster = KMeans(n_clusters=3,random_state=123).fit(x_) # 3.1 获取聚类质心 center = cluster.cluster_centers_ # [[0.75733298 0.79374354 0.69419238 0.73003765 0.76950062 0.36757645, 0.75709318], [0.1233337 0.17513685 0.37817899 0.18671025 0.16252742 0.49856915, 0.27928792], [0.38349003 0.4198407 0.67120387 0.36468534 0.46849918 0.26417688, 0.31838389]] # 3.2 获取聚类标签 pre_target = cluster.labels_ # 3.3 获取簇内平方和 inertia = cluster.inertia_ # 22.024363075666038返回顶部 四、聚类结果可视化 这里我们的数据集是多维(包含七个特征),我们需要对其进行降维处理,降到二维平面使用散点图来进行展示。这里的降维采用TSNE。t-SNE(t-distributed stochastic neighbor embedding)是用于降维的一种机器学习算法,是由 Laurens van der Maaten 等在08年提出来。此外,t-SNE 是一种非线性降维算法,非常适用于高维数据降维到2维或者3维,进行可视化。 # 4.聚类结果可视化 from sklearn.manifold import TSNE # 4.1 降维处理数据 tsne = TSNE(n_components=2,init='random',random_state=144).fit(x_) df = pd.DataFrame(tsne.embedding_) df['labels'] = pre_target 降维后的数据集![]() 返回顶部 五、聚类模型评估KMeans聚类模型评估指标参见:【skLearn 聚类算法】KMeans ![]() 返回顶部 ② 卡林斯基 - 哈拉巴斯指数返回顶部 ③ FMI评价法 # 5.3 FMI评价法 --- 需要有真实标签 from sklearn.metrics import fowlkes_mallows_score fms = [] for i in range(2,15): # 构建聚类模型 kmeans = KMeans(n_clusters=i,random_state=112).fit(x_) fmsScore = fowlkes_mallows_score(target,kmeans.labels_) fms.append(fmsScore) plt.figure(figsize=(10, 8)) plt.plot(range(2, 15), fms, linewidth=1.5, linestyle='-') plt.show() 由图可以看出,当n_cluster=3的时候,FMI评分最高,聚类效果较好。![]() 返回顶部 原码及数据集获取:https://download.csdn.net/download/qq_45797116/73374470 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |