用R语言和python进行社交网络中的社区检测

简介: 用R语言和python进行社交网络中的社区检测https://ucc.alicdn.com/pic/developer-ecology/4as3qn2go3ure_f4b58eedb2f849418cedab74ed3c856a.png

在这篇文章中,我用R语言和python检测社交网络中的社区


 

 

 

建立自我网络

Kaggle数据 在110个.egonet文件中(对应于110个匿名Facebook用户),每个文件都包含他的朋友的网络。

让我们关注文件0.egonet,其中包含有关用户0的网络的所有信息。文件的每一行都是该行中直接属于自我网络一部分的第一个用户的朋友的列表。


1

2

3

4

1: 146 189 229 201 204 ...

2: 146 191 229 201 204 ...

3: 185 80 61 188 22 222 ...

4: 72 61 187 163 177 138 ...

01个朋友,而146-189-229 …也有朋友。

02个朋友,而146-191-229 …也有朋友。

03个朋友,而185-80-61 …也有朋友。

04个朋友,而72-61-187 …也有朋友。

在下面,我附加了访问每个egonet文件的Python代码,并构建了要馈送到Networkx构造函数的节点和边的列表。构建图后,将计算其邻接矩阵并将其保存在csv文件中。

import networkx as nx

from os import listdir

from os.path import isfile, join

import itertools

import matplotlib.pyplot as plt

import os

import re

import scipy

from scipy.sparse import *

from operator import itemgetter

from sklearn.cluster import KMeans

import numpy as np

import sys

import pandas as pd

 

 

def load_egonet_files(path):

    """

    given the path to the .egonet files returns a list with all the files.

    """

    onlyfiles = [fyle for fyle in listdir(path) if fyle.endswith('.egonet')]

    return onlyfiles

 

#########################################################################################################

提供的代码的结果是110个CSV文件,其中包含每个自我网络图的邻接矩阵。


检测社区

首先,让我们绘制一个图,看看它在聚类检测之前的样子。在R代码下方,从CSV文件加载数据,构建网络(我们使用0.egonet)并进行绘制。

# read graph from csv file

dat = read.csv('graph-0.csv', header=TRUE, row.names=1, check.names=FALSE)

m = as.matrix(dat)

# build graph from adjacency matrix

g = graph.adjacency(m,mode="undirected",weighted=NULL)

 

# plots the graph

 

R 提供了几种强大的社区检测算法。

模块化本质上是属于给定组的边缘的分数减去如果边缘随机分布的预期分数。所以越高越好。

在这里,您可以在用户0网络上找到结果。

> modularity(wc)

[1] 0.4629543

 

> modularity(wc)

[1] 0.4463902

 


> modularity(wc)

[1] 0.4330911

 


> modularity(wc)

[1] 0.4649535

 


> modularity(wc)

[1] 0.4511259

 

> modularity(wc)

[1] 0.4314803

spinglass.community算法(基于统计物理方法)是最好的算法,其模块化为0.4649。事实证明,对于小型自我社会网络中的社区发现这一特殊问题 。

在下面,您也可以在R中找到检测到的群集的良好可视化效果。

相关文章
|
25天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
86 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
14天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
52 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
6天前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
14天前
|
监控 算法 安全
公司电脑网络监控场景下 Python 广度优先搜索算法的深度剖析
在数字化办公时代,公司电脑网络监控至关重要。广度优先搜索(BFS)算法在构建网络拓扑、检测安全威胁和优化资源分配方面发挥重要作用。通过Python代码示例展示其应用流程,助力企业提升网络安全与效率。未来,更多创新算法将融入该领域,保障企业数字化发展。
37 10
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
108 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
17天前
|
机器学习/深度学习 API Python
Python 高级编程与实战:深入理解网络编程与异步IO
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发和 API 设计。本文将深入探讨 Python 在网络编程和异步IO中的应用,并通过实战项目帮助你掌握这些技术。
|
6天前
|
机器学习/深度学习 数据采集 算法
基于yolov2和googlenet网络的疲劳驾驶检测算法matlab仿真
本内容展示了基于深度学习的疲劳驾驶检测算法,包括算法运行效果预览(无水印)、Matlab 2022a 软件版本说明、部分核心程序(完整版含中文注释与操作视频)。理论部分详细阐述了疲劳检测原理,通过对比疲劳与正常状态下的特征差异,结合深度学习模型提取驾驶员面部特征变化。具体流程包括数据收集、预处理、模型训练与评估,使用数学公式描述损失函数和推理过程。课题基于 YOLOv2 和 GoogleNet,先用 YOLOv2 定位驾驶员面部区域,再由 GoogleNet 分析特征判断疲劳状态,提供高准确率与鲁棒性的检测方法。
|
1月前
|
监控 Java 计算机视觉
Python图像处理中的内存泄漏问题:原因、检测与解决方案
在Python图像处理中,内存泄漏是常见问题,尤其在处理大图像时。本文探讨了内存泄漏的原因(如大图像数据、循环引用、外部库使用等),并介绍了检测工具(如memory_profiler、objgraph、tracemalloc)和解决方法(如显式释放资源、避免循环引用、选择良好内存管理的库)。通过具体代码示例,帮助开发者有效应对内存泄漏挑战。
47 1
|
2月前
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
62 20
|
2月前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
84 14

热门文章

最新文章