首页 文章 精选 留言 我的

精选列表

搜索[analysis],共1314篇文章
优秀的个人博客,低调大师

社交网络分析(Social Network Analysis in Python)①

今天的网络是我们日常生活的一部分。 让我们学习如何使用网络在Python中可视化和理解社交网络 网络无处不在,道路网络,社交媒体上的朋友和关注者网络以及办公室同事网络。 他们在日常生活中发挥着重要作用,从传播有用信息到影响全国选举。 分析这些网络并根据这些网络做出明智决策的能力是一项对任何数据分析师都很重要的技能。 介绍 首先让我们从社交网络的含义开始。 下面你会看到一个宝莱坞演员网络作为节点。 如果他们在至少一部电影中合作,他们就会用实线连接。所以,我们可以看到Amitabh Bachchan和Abhishek Bachchan都与网络中的所有演员合作,而Akshay Kumar只与两个Bachchans合作。 这也是一个社交网络。 任何具有个人之间联系的网络,其中连接捕获它们之间的关系是社交网络。 分析这些网络可以让我们深入了解网络中的人,比如谁是真正的影响者,谁是最相关的,等等。 每个网络包括: 节点:我们正在建立网络的个人。 上例中的演员。 边缘:节点之间的连接。 它表示网络节点之间的关系。 在我们的例子中,关系是演员们一起工作。 使用NetworkX创建网络 有许多类型的网络。 我们将使用NetworkX开发和分析这些不同的网络。 首先,您需要安装networkX:您可以使用以下任一方法: pip install networkx 或者如果在Anaconda工作 conda install -c anaconda networkx 这将安装最新版本的networkx。 本教程中的代码是在Python = 3.5,NetworkX = 2.0版本上完成的。 对称网络 我们在上面创建的第一个演员网络是对称网络,因为“在电影中一起工作”的关系是对称关系。 如果A与B相关,则B也与A相关。让我们创建上面在NetworkX中看到的网络。我们将使用Graph()方法创建新网络,并使用add_edge()在两个节点之间添加边。 # -*- coding: utf-8 -*- """ Created on Wed Oct 3 15:43:18 2018 @author: Zihao Chen """ % reset -f % clear # In[*] import networkx as nx G_symmetric = nx.Graph() G_symmetric.add_edge('Amitabh Bachchan','Abhishek Bachchan') G_symmetric.add_edge('Amitabh Bachchan','Aamir Khan') G_symmetric.add_edge('Amitabh Bachchan','Akshay Kumar') G_symmetric.add_edge('Amitabh Bachchan','Dev Anand') G_symmetric.add_edge('Abhishek Bachchan','Aamir Khan') G_symmetric.add_edge('Abhishek Bachchan','Akshay Kumar') G_symmetric.add_edge('Abhishek Bachchan','Dev Anand') G_symmetric.add_edge('Dev Anand','Aamir Khan') 不对称网络 如果节点之间的关系是'孩子',那么关系就不再是对称的。 如果A是B的子节点,则B不是A的子节点。这种关系不对称的网络(A与B相关,并不一定意味着B与A相关联)被称为非对称网络。 我们可以使用DiGraph方法在NetworkX中构建非对称网络,该方法缺少方向图。 让我们制作一个非对称图。 # In[*] % reset -f % clear import networkx as nx # In[*] G_asymmetric = nx.DiGraph() G_asymmetric.add_edge('A','B') G_asymmetric.add_edge('A','D') G_asymmetric.add_edge('C','A') G_asymmetric.add_edge('D','E') # In[*] nx.spring_layout(G_asymmetric) nx.draw_networkx(G_asymmetric) 加权网络 到目前为止,我们的网络没有权重,但网络可能是用权重制作的,例如,如果在我们的初始网络中我们将一起完成的电影数量视为权重,我们将获得一个加权网络。 让我们再次演绎演员,但这次我们为网络增加了重量,每个边缘都有一个重量,表示他们一起完成的电影数量。 # In[*] % reset -f % clear # In[*] import networkx as nx G_weighted = nx.Graph() G_weighted.add_edge('Amitabh Bachchan','Abhishek Bachchan', weight=25) G_weighted.add_edge('Amitabh Bachchan','Aaamir Khan', weight=8) G_weighted.add_edge('Amitabh Bachchan','Akshay Kumar', weight=11) G_weighted.add_edge('Amitabh Bachchan','Dev Anand', weight=1) G_weighted.add_edge('Abhishek Bachchan','Aaamir Khan', weight=4) G_weighted.add_edge('Abhishek Bachchan','Akshay Kumar',weight=7) G_weighted.add_edge('Abhishek Bachchan','Dev Anand', weight=1) G_weighted.add_edge('Dev Anand','Aaamir Khan',weight=1) nx.spring_layout(G_weighted) nx.draw_networkx(G_weighted) degree 节点的度数定义节点具有的连接数。 NetworkX具有可用于确定网络中节点程度的功能度。 nx.degree(G_symmetric,'Dev Anand`) 这将返回值3,因为Dev Anand仅与网络中的三个角色合作。 聚类系数 据观察,在社交网络中共享联系的人倾向于形成关联。换句话说,社交网络中存在形成集群的趋势。我们可以确定节点的集群,Local Clustering Coefficient,它是节点的朋友(即连接)彼此连接的对的一部分。为了确定局部聚类系数,我们使用nx.clustering(Graph,Node)函数。 # In[*] nx.clustering(G_symmetric, 'Dev Anand') nx.clustering(G_symmetric,'Abhishek Bachchan') nx.average_clustering(G_symmetric) 在对称Actor网络中,您会发现Dev Anand的局部聚类系数为1,而Abhishek Bachchan的局部聚类系数为0.67。 对称Actor网络的平均聚类系数(所有局部聚类系数之和除以节点数)为0.867。 距离 我们还可以分别使用nx.shortest_path(Graph,Node1,Node2)和nx.shortest_path_length(Graph,Node1,Node2)函数确定NetworkX中两个节点之间的最短路径及其长度。 nx.shortest_path(G_symmetric, 'Dev Anand', 'Akshay Kumar') ['Dev Anand','Amitabh Bachchan','Akshay Kumar'] 我们可以使用广度优先搜索算法从该节点开始,找到节点与网络中每个其他节点的距离。 networkX提供了bfs_tree函数来完成它。因此,如果您尝试T = nx.bfs_tree(G_symmetric,'Dev Anand')并现在绘制此树,我们将获得一个网络结构,告诉我们如何从Dev Anand开始到达网络的其他节点 # In[*] T = nx.bfs_tree(G_symmetric, 'Dev Anand') nx.draw_networkx(T) 偏心率 节点A的偏心率被定义为A和所有其他节点之间的最大距离。 可以使用nx.eccentricity()函数找到它。 在对称的Actor网络中,Dev Anand的偏心率为2,而Abhishek Bachchan的偏心率为1(它与所有人相连)。

优秀的个人博客,低调大师

[Spring-Analysis] 更新 SpringIoC 三十章讲义

更新 SpringIoC 讲义三十章 第一章-容器环境搭建及基本使用 第二章-IoC核心类 第三章-IoC资源读取及注册 第四章-自定义标签解析 第五章-别名注册 第六章-bean标签解析 第七章-BeanDefinition注册 第八章-Bean的生命周期 第九章-Bean的获取 第十章-Xml配置下的容器生命周期 第十一章-Spring中的转换服务 第十二章-占位符解析 第十三章-message-source 第十四章-PostProcessorRegistrationDelegate 第十五章-Spring事件 第十六章-LifecycleProcessor 第十七章-Spring注解模式 第十八章-资源解析器 第十九章-注解元数据读取器工厂 第二十章-注解元数据读取器 第二十一章-Scope元数据解析 第二十二章-BeanName生成策略 第二十三章-ConfigurationClassPostProcessor 第二十四章-条件注解 第二十五章-类元数据 第二十六章-注解元数据 第二十七章-DeferredImportSelectorHandler 第二十八章-ConfigurationClassBeanDefinitionReader 第二十九章-Spring配置类解析 第三十章-Spring排序注解

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册