散点图呈完美直线而非散点的原因排查(已做数据缩放)
K-Means聚类散点图显示为直线的原因排查
问题情况
跟着教程实现K-Means聚类并绘制散点图时,使用自有数据集得到的是完美直线,而非预期的散点分布。已尝试过缩放/取消缩放数据、调整散点大小参数s,均未解决问题。数据集为多列数值型表格,生成的异常图像呈直线形态。
可能的原因及排查方向
- 特征选重或强线性关联:检查绘图时使用的两个特征是否为同一列,或者两列数据存在严格线性关系(比如一列是另一列的固定倍数、加固定偏移值)。若不小心将同一列数据同时作为x轴和y轴输入,必然会画出直线。
- 预处理操作失误:虽然做了数据缩放,但可能处理逻辑出错,比如仅对单一特征缩放,或缩放后两列数据被处理成线性映射关系。可以打印缩放后的前10行数据,对比两列数值的变化规律。
- 代码参数传递错误:核对
plt.scatter()的参数,是否误将同一列数据同时传给x和y,或因索引错误取到线性关联的两列数据。比如类似以下错误写法:plt.scatter(data[:,0], data[:,0], s=50) - 数据集本身特性:如果选来绘图的两个特征天生存在极强的线性相关性(相关系数接近±1),散点图自然会呈现直线形态。可以计算这两列数据的相关系数进行确认。
内容的提问来源于stack exchange,提问作者Rocky Armany
相关产品推荐
相关产品推荐

