您的位置:首页 > 编程语言 > Python开发

python数据挖掘入门与实践---用图挖掘找到感兴趣的人

2018-03-18 23:00 941 查看
问题:找出一个班级中兴趣爱好相近的人
思路:将每个人的兴趣爱好(足球、篮球、美剧。。。)都列出来,看看那两个或几个人的兴趣爱好重合度高
评价标准:杰卡德相似性系数(Jaccard Similarity);
计算公式:A同学与B同学共同的兴趣爱好数量/A同学与B同学所有的兴趣爱好数量。(可见系数不可能大于1)
图:个体间关系的直观表示,根据要表达的内容分为有向图、无向图等,端点表示个体,端点之间的线(边)表示关系。
python相关模块:networks
延伸:
聚类:当为相似性系数设置一个阈值,即小于该系数的两个同学认定他两没关系,在图中二者之间不划线。可以发现整个                    班级会分成几个小团体(个体之间连线较多,团体之间连线较少),这样的小团体又称为连通分支。
        阈值的变化,会导致连通分支也跟着变(设为1,一个连通分支都没有)。聚类的效果没有统一标准,不同的视角出                   发,对聚类的标准要求不一样。
常用的判断聚类标准:轮廓系数(silhouette coefficient)
计算公式:s=(b-a)/max(a,b),a为簇内距离(个体之间的平均距离,可以通过相似性系数取反表示,因为相似性越高表示二                 者距离越近),b为蔟间距离(与最近的蔟内各个体的平均距离)。越大说明团体之间越干净
python相关:s计算函数sklearn.metrics.silhouette_score
                     通过调整阈值求最大s函数,scipy中minimize函数取反(取反使实际是求最小值,但最后结果是求了s的最大值)
         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: