Prompt工程如何驱动内容聚类系统的实验数据分析

聚类算法数据分析

提到聚类算法,K-Means算是略懂数据分析的人都知道的一种。但K-Means也有其局限性,基本只能处理数值型聚类。而且按距离进行聚类而非密度,无法处理环形图样。实际在使用聚类算法时,还有很多技巧性问题。 聚类算法需要各变量间相关性较低,可以采用DataFrame的corr()函数进行相关性计算。另外,聚类的变量要区分离散值和非离散值。对于非离散变量,需要进行标准化或归一化;对于离散变量,可以转换为虚拟变量,并采用{0, 1}编码。建议采用min-max标准化,这样和虚拟变量保持相同的相同范围。 对于包含非离散变量和虚拟变量的数据集(通常情况),建议采用K-Prototype而非K-Means算法进行聚类。在使用时可以标记相关虚拟变量,确保区别处理(实际虚拟变量采用K-Modes,非离散变量采用K-Means,再基于权重a进行结果合并)。 KPrototypes(n_clusters=np).fit(df.values, categorical=[1, 2]) 其中的1, 2代表df数据集中的第1, 2列(从0计数)。评估聚类算法可以基于轮廓系数,对比不同的K值,在业务允许范围内得到最佳K值。建议的轮廓系数函数是silhouette_score,其最大值为1,越接近1越好,可以在不同算法情况下进行相对比较。 除轮廓系数外,还可以降维绘制散点图(通过TSNE降维),按聚类算法分类对散点进行着色,进而直观的进行聚类算法分类结果的判断。 TSNE(n_components=2) 总结来说,整个聚类算法数据分析的操作步骤如下: 1. 构建低相关性变量数据集(通过给高相关性变量设置固定值); 2. 对非离散变量进行min-max归一化操作; 3. 对包含虚拟变量的数据集采用K-Prototype聚类算法,对只包含非离散变量的数据集采用K-Means算法; 4. 通过轮廓系数silhouette_score对K值进行循环测试,得到最佳K值; 5. 通过TSNE将数据集降维为两维显著特征值,并通过散点图,配合聚类算法分类结果配色对聚类算法分类结果进行合理判断; 6. 对聚类算法分类结果,结合业务逻辑进行解释,确保分类结果支撑业务分析。


nginx