机器学习代码实战——KMeans(聚类)
文章目录1.实验目的2.导入必要模块3.用pandas处理数据4.拟合+预测5.把预测结果合并到DF6.可视化聚类效果7.比较不同的簇数的均方误差8.对数据归一化处理 1.实验目的 1.使用sklearn库中的鸢尾花数据集,并尝试使用花瓣的宽度和长度特征来形成簇。 2. 为简单起见,删除其他两个特征。 3. 找出是否有任何预处理(例如缩放)可以帮助解决问题,绘制肘部曲线,从中得出k的最佳值 2.导入必要模块 from sklearn.cluster import KMeans #从sklearn导入KMeans算法 import pandas as pd from sklearn.pr 【机器学习代码实战——KMeans(聚类)】 在机器学习领域,聚类是一种无监督学习方法,旨在根据数据的内在相似性将数据点分组到不同的簇中。KMeans算法是聚类中最常用的一种,它通过迭代优化过程来确定簇的中心。本文通过实际操作演示了如何使用Python的sklearn库进行KMeans聚类。 1. **实验目的** - 使用sklearn库的鸢尾花数据集,该数据集包含花瓣长度和宽度的特征。 - 简化问题,只考虑花瓣的长度和宽度,忽略萼片的长度和宽度。 - 探索预处理步骤,如数据缩放,对聚类结果的影响,并通过绘制肘部曲线确定最佳簇数(k值)。 2. **导入必要模块** - `from sklearn.cluster import KMeans`: 导入KMeans聚类算法。 - `import pandas as pd`: 用于数据处理和管理。 - `from sklearn.preprocessing import MinMaxScaler`: 数据预处理模块,用于进行数据缩放。 - `from matplotlib import pyplot as plt`: 用于数据可视化。 - `from sklearn.datasets import load_iris`: 加载鸢尾花数据集。 3. **用pandas处理数据** - 加载鸢尾花数据集并将其转换为DataFrame。 - 使用`drop()`函数去除不需要的特征,保留花瓣长度和宽度。 4. **拟合+预测** - 初始化KMeans模型,设置超参数`n_clusters=3`,表示要找到3个簇。 - 使用`fit_predict()`函数同时拟合数据并进行预测,返回每个数据点所属的簇编号。 5. **把预测结果合并到DF** - 将预测的簇编号添加到原始DataFrame中,便于后续分析和可视化。 6. **可视化聚类效果** - 分别提取每个簇的数据,然后使用`scatter()`函数绘制散点图,不同颜色代表不同的簇。 - 同时绘制每个簇中心的坐标,用红色"+"标记。 7. **比较不同的簇数的均方误差** - 循环遍历1到10的k值,计算对应的均方误差(Sum of squared error)。 - 绘制k值与均方误差的关系图,肘部曲线的转折点通常对应最佳的k值。 8. **对数据归一化处理** - 在应用KMeans之前,对数据进行归一化,确保所有特征在同一尺度上,以消除数值范围差异对聚类结果的影响。 - 使用MinMaxScaler进行数据缩放,将每个特征的值映射到0到1之间。 通过以上步骤,我们可以看到KMeans聚类的实际操作过程,包括数据预处理、模型训练、结果评估等环节。这有助于理解KMeans的工作原理,并能应用于其他类似的数据集,实现自动发现数据中的模式和结构。在实际应用中,选择合适的k值以及进行有效的数据预处理对于提升聚类质量至关重要。
- 粉丝: 4
- 资源: 947
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论5