<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Graph on Chang Luo</title>
		<link>https://www.luochang.ink/tags/graph/</link>
		<description>Recent content in Graph on Chang Luo</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Sat, 27 Jul 2024 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://www.luochang.ink/tags/graph/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>SynchroTrap 算法实现</title>
				<link>https://www.luochang.ink/posts/synchrotrap/</link>
				<pubDate>Sat, 27 Jul 2024 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/synchrotrap/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;SynchroTrap 是基于 Jaccard 相似度和最大连通子图的异常检测算法，出自 Facebook 的论文 &lt;a href=&#34;https://users.cs.duke.edu/~xwy/publications/SynchroTrap-ccs14.pdf&#34; target=&#34;_blank&#34;&gt;Uncovering Large Groups of Active Malicious Accounts in Online Social Networks&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;GitHub 项目地址：&lt;a href=&#34;https://github.com/luochang212/SynchroTrap&#34; target=&#34;_blank&#34;&gt;SynchroTrap&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;本文做了什么：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;用 &lt;code&gt;mimesis&lt;/code&gt; 生成源数据，并基于源数据构造正态分布的样本&lt;/li&gt;&#xA;&lt;li&gt;通过构造一个 \( \lambda \) 可调的泊松过程，生成用户到访时间戳&lt;/li&gt;&#xA;&lt;li&gt;提供一个由 7 个变量控制的异常数据生成函数，见 &lt;a href=&#34;https://github.com/luochang212/SynchroTrap/blob/main/utils.py#L236&#34; target=&#34;_blank&#34;&gt;gen_attack_df&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;用 Jaccard 相似度构图，再用 &lt;code&gt;NetworkX&lt;/code&gt; 对图做可视化&lt;/li&gt;&#xA;&lt;li&gt;用 Spark 的 &lt;code&gt;graphframes&lt;/code&gt; 计算最大连通子图&lt;/li&gt;&#xA;&lt;li&gt;复现了论文 2.2 节的可视化效果，见 &lt;a href=&#34;https://www.luochang.ink/posts/synchrotrap/#%E4%B8%89%E8%AF%84%E4%BC%B0%E4%B8%8E%E5%8F%AF%E8%A7%86%E5%8C%96&#34;&gt;评估与可视化&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;介绍如何使用 &lt;code&gt;Docker&lt;/code&gt; 构建 Spark 开发环境&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;✨ 注意：运行以下代码依赖 &lt;a href=&#34;https://github.com/luochang212/SynchroTrap/blob/main/utils.py&#34; target=&#34;_blank&#34;&gt;utils.py&lt;/a&gt; 文件和 &lt;a href=&#34;https://github.com/luochang212/SynchroTrap/tree/main/gen_data&#34; target=&#34;_blank&#34;&gt;gen_data&lt;/a&gt; 库。&lt;/p&gt;&#xA;&lt;h3 id=&#34;一样本生成&#34;&gt;一、样本生成&lt;/h3&gt;&#xA;&lt;p&gt;脱离互联网企业，我们很难拿到可供挖掘的异常数据样本。一种方法是自己生成。自己生成样本的好处是能拿到真正的 ground truth，而且可以精细地控制异常的规模和程度。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;生成源数据&lt;/li&gt;&#xA;&lt;li&gt;生成大盘数据&#xA;&lt;ul&gt;&#xA;&lt;li&gt;生成正态样本分布&lt;/li&gt;&#xA;&lt;li&gt;生成 uid 并计算访问次数&lt;/li&gt;&#xA;&lt;li&gt;时间与时间戳&lt;/li&gt;&#xA;&lt;li&gt;用户日志表&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;生成异常数据&#xA;&lt;ul&gt;&#xA;&lt;li&gt;选择攻击开始时间&lt;/li&gt;&#xA;&lt;li&gt;获取 ip 池&lt;/li&gt;&#xA;&lt;li&gt;发起攻击&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;整合两份数据&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; 与异常捕获的难度有关的变量：&lt;/p&gt;</description>
			</item>
			<item>
				<title>图算法笔记</title>
				<link>https://www.luochang.ink/posts/graph_algorithms/</link>
				<pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/graph_algorithms/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;记笔记能让脑子里的知识结构化说是&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;GitHub 项目地址：&lt;a href=&#34;https://github.com/luochang212/graph-algorithm&#34; target=&#34;_blank&#34;&gt;graph-algorithm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;一图的基础操作&#34;&gt;一、图的基础操作&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1.创建图&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1.1 从空图开始创建&lt;/li&gt;&#xA;&lt;li&gt;1.2 用边文件创建&lt;/li&gt;&#xA;&lt;li&gt;1.3 用已经存在的图、边的列表创建&lt;/li&gt;&#xA;&lt;li&gt;1.4 创建带权边&lt;/li&gt;&#xA;&lt;li&gt;1.5 为图添加属性&lt;/li&gt;&#xA;&lt;li&gt;1.6 创建有向图&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;2.可视化&#xA;&lt;ul&gt;&#xA;&lt;li&gt;random&lt;/li&gt;&#xA;&lt;li&gt;circular&lt;/li&gt;&#xA;&lt;li&gt;spectral&lt;/li&gt;&#xA;&lt;li&gt;shell&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;3.中心性度量&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Degree Centrality&lt;/li&gt;&#xA;&lt;li&gt;Closeness Centrality&lt;/li&gt;&#xA;&lt;li&gt;Betweenness Centrality&lt;/li&gt;&#xA;&lt;li&gt;Eigenvector Centrality&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;4.随机图生成&lt;/li&gt;&#xA;&lt;li&gt;5.读写文件&#xA;&lt;ul&gt;&#xA;&lt;li&gt;写入文件&lt;/li&gt;&#xA;&lt;li&gt;读出数据&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;br&gt;&#xA;&lt;center&gt;&#xA;&lt;button class=&#34;demo-btn&#34; onclick=&#34;window_on(&#39;https://nbviewer.org/github/luochang212/graph-algorithm/blob/main/1.base.ipynb&#39;)&#34;&gt;查看示例&lt;/button&gt;&#xA;&lt;/center&gt;&#xA;&lt;br&gt;&#xA;&lt;h3 id=&#34;二通用图算法&#34;&gt;二、通用图算法&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;连通性 Connectivity&lt;/li&gt;&#xA;&lt;li&gt;最短路 Shortest Paths&lt;/li&gt;&#xA;&lt;li&gt;相似性度量 Similarity Measures&lt;/li&gt;&#xA;&lt;li&gt;距离度量 Distance Measures&lt;/li&gt;&#xA;&lt;li&gt;链接预测 Link Prediction&lt;/li&gt;&#xA;&lt;li&gt;匹配 Matching&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;br&gt;&#xA;&lt;center&gt;&#xA;&lt;button class=&#34;demo-btn&#34; onclick=&#34;window_on(&#39;https://nbviewer.org/github/luochang212/graph-algorithm/blob/main/2.algorithms.ipynb&#39;)&#34;&gt;查看示例&lt;/button&gt;&#xA;&lt;/center&gt;&#xA;&lt;br&gt;&#xA;&lt;h3 id=&#34;三社区检测算法&#34;&gt;三、社区检测算法&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1.常见社区检测算法&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1.1 label Propagation&lt;/li&gt;&#xA;&lt;li&gt;1.2 Girvan-Newman&lt;/li&gt;&#xA;&lt;li&gt;1.3 Greedy Modularity&lt;/li&gt;&#xA;&lt;li&gt;1.4 Louvain&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;2.是否接受边权作为输入&#xA;&lt;ul&gt;&#xA;&lt;li&gt;推荐使用 louvain&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;br&gt;&#xA;&lt;center&gt;&#xA;&lt;button class=&#34;demo-btn&#34; onclick=&#34;window_on(&#39;https://nbviewer.org/github/luochang212/graph-algorithm/blob/main/3.community.ipynb&#39;)&#34;&gt;查看示例&lt;/button&gt;&#xA;&lt;/center&gt;&#xA;&lt;br&gt;&#xA;&lt;h3 id=&#34;四图嵌入&#34;&gt;四、图嵌入&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;施工中&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;五节点分类问题&#34;&gt;五、节点分类问题&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Communicability&lt;/li&gt;&#xA;&lt;li&gt;Cores&lt;/li&gt;&#xA;&lt;li&gt;Clique&lt;/li&gt;&#xA;&lt;li&gt;Clustering&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;六相似子图挖掘&#34;&gt;六、相似子图挖掘&lt;/h3&gt;&#xA;&lt;p&gt;基于图的编辑距离挖掘&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
