KNN近邻算法聚类练手项目(python)

这个练手项目比较简单,发出来大家共勉

很简单,适合数据挖掘小白来练练手
大家可以用简单的聚类和降维算法进行处理,可以参考这一篇
我原来写的一篇
部分数据集截图:
KNN近邻算法聚类练手项目(python)_第1张图片
分为check和study集。这篇blog我使用KNN的算法,而且效果也确实比简单的层次和kMeans效果更好。
其中有一点点预处理的方法,因为数据集简单我觉得也没必要费很大的劲r。

算法思路

简单说一下我的思路,所有的代码和效果图在gitee上,我用的是jupyter notebook
gitee地址

(1)首先进行数据的观察,画出对每个属性画出散点图,发现1,5,6,7属性和标签相关性较大,在进行方差的相关性分析,
画出柱状图,如code.html中所示,发现1,6,7散度比较大,具有较大的特征相关性。

(2)所以用PCA降维的方法降到3维,我先用层次聚类进行分析,发现可以达到0.808的NMI。

(3)然后我尝试用KNN在进行分析,首先没有进行降维处理,发现只有0.661的NMI评分,说明有一些特征相关性不明显的
特征在影响聚类效果,于是我再次进行PCA降维到3维处理。同时调整KNN参数发现当KNN参数为2时达到最好的0.808。
此时的剩余信息量在82%-83%。

(3)于是我根据剩余信息量判断应该可以进一步进行降维,于是尝试降到2维,并且画出对应的散点图,如code.html中图所示
发现点之间的距离比较大,调整KNN参数将n_clusters=3时有最好的效果达到0.8354,得到我所实验得到的最好评分结果。

这给项目确实不难,适合数据挖掘入门的小伙伴,大佬们不喜勿喷
共勉~~~~~

你可能感兴趣的:(数据挖掘,KNN练习,k近邻聚类算法,数据挖掘,聚类)