社团结构调整和工作配置策略研究

2023-05-30 06:27李坤白茹鑫田立勤薛小燕栾尚敏
电脑知识与技术 2023年1期
关键词:聚类分析

李坤 白茹鑫 田立勤 薛小燕 栾尚敏

摘要:隨着物联网、云计算的迅猛发展,大数据吸引了越来越多的关注,正在成为信息社会的重要财富。研究社团成员间亲密程度有助于了解社团成员的社交影响力并方便对成员的工作协同提供指导。为保证社团组织结构调整的合理性以及工作配置的均衡性,有必要研究社团成员间的亲密程度以及社团成员的影响力。运用Python3.6进行数据清洗和概化。通过numpy数组对上班时间和非上班时间的通话时长、通话次数构建矩阵,获得不同星期数、不同时间点、不同城市以及不同社团成员的通话次数分布情况。提出了多指标综合排序模型,调用networkx确定社团成员间亲密程度,形成社团成员影响力网络。采用GN算法检测社团结构,对社团成员进行团体划分,多次聚类分析法对社团负责城市进行区域划分。以主叫次数最多为依据设置各区域总部城市所在地。提出了基于方位角的位置排序法,通过球面距离公式计算分区负责人乘飞机遍历所负责城市一遍花费的最小时间。提出以社团成员影响力确定分管城市负责人的新政策。

关键词:社团结构;networkx;GN算法;聚类分析;位置排序法

中图分类号:TP399      文献标识码:A

文章编号:1009-3044(2023)01-0049-04

1 引言

复杂网络的研究在各个领域受到广泛关注,并在计算机、数学、生物学等领域体现出很大的应用价值。复杂网络研究的关键是通过社团结构了解网络性质。很多学者正在对社团结构的提取方法进行研究,例如Kernighan等人[1]研究对图的剖分问题,Newman[2]的研究引起了社团检测的研究热潮。目前已经出现了很多检测方法,这些方法从机器学习角度看都是无监督的方法。

模块度用于定量的衡量社团结构的优劣,其值越大,对应的社团结构越好。因此模块度经常被作为目标函数,经过对其进行优化,尽力使其取得最大值,从而从网络中提取最优的社团结构。Guimera等人[3]将模块度作为目标函数,用模拟退火算法对其进行优化。Newman[4]应用谱分析法对问题进行求解,得到最优的社团结构。Newman[5]基于扩展的模块度矩阵,用同样的方法将2个子网络分别递归地进行分裂,得到最终的社团结构。

2 数据挖掘

主要是运用Python3.6,导入pandas、numpy以及matplotlib三个库,挖掘数据信息。数据概化是一项前期基础工作,即将已有数据转换成适合进行数据挖掘的形式。为了更便于进行数据挖掘工作,对于数据中的“起始时间”列,采用时间序列确定星期数,并将通话时间点精确到小时。以10:08:51为例,经过数据转换精确到时,即10时。

建立during_onwork,times_onwork,during_offwork,times_offwork四个dataframe对象,分别表示上班时间的通话时长、通话次数,下班时间的通话时长、通话次数。通过numpy数组构建矩阵,统计任意两人在上班、非上班时间的通话时长和通话次数,并将数据写入Excel文件。通过数据挖掘,得到了不同星期数、不同时间点、不同城市以及不同社团成员的通话次数分布统计图,分别如图1(a) ~(d) 所示。

由图1(a) 可知,社团成员在周四通话最频繁,周四、周五和周六三天的通话次数接近,周日通话次数最少。由图1(b) 可知,社团成员通话总次数在一日内出现4个活跃时间段,分别为8~10时,11~12时,13~16时,19~21时,其中13~16时为一天中的通话峰值段。图1(c) 展示了通话次数排名前10的城市,影响力由大到小依次为白城、天水、大理、拉萨、徐州、锡林浩特、岳阳、大连、天津以及蚌埠。图1(d) 显示了上班和非上班时间通话次数排名前10的社团成员,其中蔡月通话次数居首位。

3 数学模型建立

提出了多指标综合排序模型。根据挖掘出的任意两人上班、非上班时间通话次数和通话时长信息,分别获得每个个体上班、非上班时间的通话总次数和总时长四项指标。初始化变量,分别对各指标进行排序,如图2所示,得到社团成员各指标排名,求和获得综合名次,综合名次的数值越小,影响力越大。调用networkx,绘制社团成员影响力网络图,如图3所示,图中粉红色表示影响力前10名的社团成员。

社交网络能够描述现实社会中人与人之间的社会关系,其中社团结构是表征社交网络结构特征的因素之一。采用了检测社团结构的经典算法——Girvan-Newman(GN)算法,其基本流程是首先计算网格中所有边介数,即计算经过网络中每一条边的最短路径数目,其次需要找到边介数最大的边,从网络中剔除,最后重新计算网络中剩余边的边介数。重复上述两个步骤,直至网络中任一顶点作为一个退化的社区为止[6]。为把社团成员分为2个或3个小团体,调用GN算法,得到计算结果。部分程序如下:

from networkx.algorithms.community.centrality import girvan_newman

comp = girvan_newman(G)

comunities = tuple(c for c in next(comp))

comunities

print(comunities[0])

print(comunities[1])

comunity_list1 = []

comunity_list2 = []

names = adjacency_bool.index

for i in comunities[0]:

comunity_list1.append(names[i])

for j in comunities[1]:

comunity_list2.append(names[j])

print(comunity_list1)

print(comunity_list2)

计算结果表明,社团成员被分为2个小团体,毕婕靖、孟芳、凌慧雯、柯雅芸、李熹俊、刘松荷、孙锦、林礼琴、高淼、骆娴、刘菁芸、康芸晴、陈斓和钟倩为一个团体,其余人为另一个团体。

针对社团调整组织架构,主要通过采用多次聚类分析将社团负责的139个城市分为3大区域。具体实现路径为:首先分别提取出主叫地点“东经”“北纬”信息和各主叫地点的主叫次数,整合信息到一个工作表,并进行有无缺失值检查,如果有缺失值,需进行数据清洗。确定没有缺失值后进行第一次聚类分析,计算结果如图4(a) 所示。

观察图4(a) 发现,区域分布点极不均匀,但存在明显的分界线。为了保证区域分布的均衡性,对点密集区域进行第二次聚类分析,计算结果如图4(b) 所示。如图4(c) 所示,经过两次聚类分析获得了3大区域,分区1为含个旧的城市。最后,以主叫次数最多为依据设置了3大区域的总部城市所在地,分别为天水、白城和徐州。

根据任务均衡性和成员间的亲密程度把该社团的所有成员配置到 3 个分区中,分别提名各分区的负责人各一名。构建36×139矩阵,获得36名社团成员个体分别在139个城市的通话次数。程序如下:

import pandas as pd

import numpy as np

import networkx as nx

from sklearn.cluster import KMeans

from matplotlib import pyplot as plt

plt.rcParams['font.sans-serif']=['STSong']

df = pd.read_excel("附件.xlsx")

counts_onwork = pd.read_excel("上班时间通话次数.xlsx", index_col=0)

citys = pd.read_excel('附件.xlsx', sheet_name="Sheet2", index_col=0)

locations = np.array(citys)

member_place = np.zeros((36, 139), dtype=int)

member_place = pd.DataFrame(member_place, index=counts_onwork.index, columns=citys.index)

for i in range(df.shape[0]):

row = df.loc[i, "主叫"]

col = df.loc[i, "主叫地點"]

member_place.loc[row, col] += 1

利用Excel分别统计各社团成员在3大分区的通话次数,筛选出各分区通话次数最多的成员作为分区负责人。潘立作为分区1(含个旧)负责人,蔡月和张培芸作为另两个分区负责人。

计算各分区负责人乘飞机遍历所负责城市一遍花费的最小时间,提出了基于方位角的位置排序法,如图5所示。找到分区中经度最小的城市,计算其他城市相对于该城市的北偏东方位角,对分区中所有点依据此方位角进行排序,按顺序对该分区所有城市进行遍历,形成一条闭合回路。

依据球面距离公式计算,得到分区1的路线为 ['喀什', '塔城', '阿勒泰', '阿克苏', '乌鲁木齐', '哈密', '玉门', '敦煌', '张掖', '银川', '青铜峡', '德令哈', '西宁', '兰州', '格尔木', '宝鸡', '天水', '汉中', '绵阳', '成都', '重庆', '宜宾', '遵义', '贵阳', '都匀', '西昌', '六盘水', '攀枝花', '昆明', '凭祥', '大理', '个旧', '和田', '拉萨', '畹町', '日喀则'],用时为26.1小时。

分区2的路线为['呼和浩特', '哈尔滨', '鞍山', '青岛', '二连浩特', '同江', '牡丹江', '济南', '大连', '长春', '鸡西', '天津', '秦皇岛', '保定', '潍坊', '大同', '四平', '烟台', '石家庄', '张家口', '锦州', '图们', '通化', '营口', '锡林浩特', '荣成', '佳木斯', '沈阳', '满洲里', '包头', '唐山', '丹东', '北京', '承德', '白城', '海拉尔'],用时32.7小时。

分区3的路线为['南京', '南宁', '汕头', '武汉', '上海', '十堰', '徐州', '岳阳', '太原', '榆林', '沙市', '宁波', '无锡', '九江', '延安', '合肥', '南阳', '开封', '扬州', '安庆', '椒江', '厦门', '柳州', '杭州', '桂林', '景德镇', '临汾', '宜昌', '广州', '信阳', '南昌', '三明', '北海', '安阳', '怀化', '常德'],用时34.1小时。

针对新政策信息在该社团网络中的传播机制,以建立的社团成员影响力排名的数学模型为基础,确定社团成员的影响力,计算结果为:['蔡月', '张培芸', '潘立', '毕婕靖', '张荆', '曾帅', '陈斓', '孙翼茜', '梁茵', '钟倩', '易贞', '刘松荷', '李熹俊', '吴宇晓', '吴霄', '高淼', '柯雅芸', '彭荃', '潘澜巧', '康芸晴', '谢斑尚', '文芝', '张庭琪', '童豫', '林礼琴', '王蕴姣', '陆盈', '涂蕴知', '孙怡毓', '孙锦', '孟芳', '凌慧雯', '刘菁芸', '廖颜翠', '柳谓', '骆娴']。以除去总部负责人以外的社团成员的影响力顺序通过任务均衡性和成员间的亲密程度的解决思路确定分管城市的负责人。

4 结束语

本文通过建立数学模型研究成员的影响力和亲密程度,为将来社团的工作安排提供依据,通过对信息的挖掘,建立数学模型对社团成员影响力进行排名并将成员划分为小团队。将社团调整组织架构,把负责的城市分为大区域并设置该分区的总部城市所在地。根据任务均衡性和成员间的亲密程度把该社团的所有成员配置到分区中,分别提名各分区的负责人各一名。计算各分区负责人乘飞机遍历所负责城市一遍花费的最小时间。研究新政策信息在该社团网络中的传播机制,在新政策正式公布后,能使得新政策得到全面贯彻和执行。

参考文献

[1] Kernighan B W, Clauset A, Leicht E.Mixture models and exploratory analysis in networks[J].Proc Natl Ac ad Sci,2014,15(23):64-68.

[2] Newman M E J,Girvan M,Leicht E.The structure and function of complex networks[J].SIAM Review,2013,45(2):167-256.

[3] Guimera D A,Newman M E J,Derenyi.Detection community struction in netuorks[J].European Systems,2015,38(2):321-330.

[4] Newman M E J.Structure and tie strengths in mobile communication networks[J].Proceedings of the National Academy of Sciences,2012,104(18):32-73.

[5] Newman M E J.The large-scale organization of metabol-ic net-works[J].Nature,2016,407(6804):651-654.

[6] 馬静.基于社交网络的社团划分算法研究[D].济南:山东师范大学,2011.

【通联编辑:谢媛媛】

猜你喜欢
聚类分析
浅析聚类分析在郫县烟草卷烟营销方面的应用