i2 Analyst‘s Notebook话单关系分析实战指南 简介本资源是一份面向安全分析、金融风控及刑侦调查从业者的i2 Analysts Notebook 8专业培训教材聚焦于利用该IBM出品的图谱分析工具挖掘话单、银行交易等多源数据中的隐性关联与犯罪模式。文档系统覆盖入门认知、节点边关系建模、时间线与聚类分析、多格式数据接口配置、图表定制化绘制、基础操作与高级搜索以及14个实战演练模块——包括话单ABC分析、手机串号追踪、盗窃/爆炸案话单研判、人员活动轨迹绘图、银行账户五级穿透分析等内容深度适配中高级用户能力进阶需求。资源为单文件DOC格式共1个文档大小25.9MB结构完整、章节清晰便于按需查阅与实操复现。目前已有1591人学习下载是掌握i2平台核心分析逻辑与典型场景落地方法的高实用性中文教学材料。1. 这不是绘图软件是情报分析的“作战沙盘”i2 Analysts Notebook 8 实战方案为什么必须从“话单关系分析”切入很多人第一次打开 i2 Analysts Notebook 8下意识点开“新建图表”拖几个图标、连几条线就以为掌握了核心——结果在真实案件复盘时卡在第三步找不到那个“既没姓名也没证件号、只有一串被反复拨打的空号”的关键中间人。这不是操作不熟而是没理解 i2 的底层逻辑它不渲染“静态关系”而是在构建一个可推演、可回溯、可压力测试的动态情报沙盘。本方案完全基于张泽航老师 2011 年编写的原始培训教材v1.0–v1.3 迭代版但剥离了所有过时的界面截图和冗余说明直击三个硬核痛点第一如何让 Excel 话单里杂乱无章的“主叫/被叫/时长/基站”字段在导入瞬间就自动映射为“人员-手机-通话事件-时空位置”四层语义结构第二当 5 个嫌疑人话单格式不统一比如大卫·法雷尔的话单多一列“漫游状态”其他四人没有怎么用一套导入规范兼容全部而不是手动补五次数据第三为什么“最早路径”和“最短路径”在串并案中可能指向完全不同的侦查方向答案不在菜单里而在实体唯一标识的校验逻辑和链接方向的默认继承规则中。这套方案专为两类人设计一是正在赶毕设/课设的学生需要一份能直接拆解为“需求分析→模块设计→操作步骤→答辩话术”的完整交付物二是刚接手实战分析任务的新人需要避开教材里没明说、但踩一次就浪费半天排查时间的隐性坑。它不教你怎么点按钮而是告诉你每个按钮背后i2 引擎正在执行哪一条 SQL 关联、哪一次图遍历、哪一轮属性归一化。2. 总体架构设计三层数据模型与四类分析场景的职责划分i2 Analysts Notebook 8 的能力边界从来不是由菜单深度决定的而是由其底层三层数据模型的耦合强度定义的。这三层不是教科书里的抽象分层而是你每次点击“导入”、“布局”、“查找路径”时后台真实发生的三重解析动作。理解它们才能把“画图”变成“建模”。2.1 数据层实体-链接-属性的三角约束关系i2 的数据模型本质是一个强约束的三元组系统实体Entity是节点链接Link是边属性Attribute是附着在节点或边上的键值对。但关键在于这三者之间存在不可绕过的业务级约束实体唯一标识Unique ID是全局锚点教材第 1 章第 2 节提到“身份证号、车牌号、手机号可作唯一标识”但这只是表象。真正起作用的是 i2 内部维护的一张EntityIDMap表它强制要求同一图表内所有实体的唯一标识字段值必须全局唯一且一旦写入不可修改。如果你导入两行数据手机号都是18601157118i2 不会报错而是静默合并为一个实体——但它的“机主姓名”属性若分别为“王波”和“李梅”后者会直接覆盖前者。这是所有数据失真的根源。链接方向决定分析流向教材图示中“7118 主叫 5656”用带箭头的线表示但没说清后果。在“话单关系分析”场景中链接方向 通话发起方 → 接收方。这意味着当你使用“查找路径”功能时i2 默认执行的是有向图遍历。如果错误地将所有链接设为无向即双向箭头那么“从嫌疑人 A 拨打 BB 又拨打 C”的链条会被误判为“A 和 C 存在直接联系”彻底破坏犯罪链推演逻辑。属性类别绑定实体/链接类型教材强调“血型、出生日期是属性类别”但没点破每个属性类别在创建时必须显式指定它依附于哪种实体类型如“人员”或链接类型如“通话”。例如“漫游状态”这个属性若绑定到“手机”实体类型它就会出现在所有手机图标上若绑定到“通话”链接类型它只出现在主被叫连线旁。大卫·法雷尔话单里多出的那列必须作为“通话”链接的属性导入否则无法参与“基站位置聚类”分析。提示实体唯一标识的校验发生在导入规范执行阶段而非图表保存时。这意味着即使你手工绘制了 100 个实体只要唯一标识重复后续任何分析如“查找共同联系人”的结果都不可信。2.2 分析层四种原生分析模式的触发条件与数据准备教材第 1 章第 1 节列出“关联关系分析、时间序列分析、活动轨迹分析、综合分析”四类但这只是结果分类。真正决定 i2 启动哪种分析引擎的是你图表中实体的表现方式Presentation Style和链接的时间戳属性。这不是用户选择而是 i2 根据数据特征自动匹配的关联关系分析当图表中 70% 的实体采用“图标Icon”表现方式且链接无时间戳属性时触发。此时“布局”按钮下的 8 种关系型布局如“力导向”、“环形”才有效。若你强行给图标实体添加时间戳i2 会忽略该时间戳仍按纯关系图处理。时间序列分析当 70% 的实体采用“主题行Theme Line”表现方式且至少一个链接或实体携带DateTime类型属性时触发。此时“时间线”工具栏激活“时间滑块”可拖动。注意DateTime必须是 i2 识别的标准格式如2011-01-18T14:30:00Excel 里的2011/1/18 14:30会被识别为字符串导致时间轴失效。活动轨迹分析这是最易混淆的。它要求实体同时具备① “主题行”表现方式② 至少两个GeoPoint类型属性如Lat,Lng③ 这些GeoPoint必须依附于同一个实体不能一个在“人员”上一个在“手机”上。教材第 4 章第 11 节“人员活动轨迹”案例正是通过将“人员”实体的LastSeenLat和LastSeenLng属性绑定到主题行才生成移动热力图。综合分析并非独立模式而是前三种的叠加态。例如“话单 ABC 分析”第 4 章第 7 节用“图标”表示人员和手机关系层用“主题行”表示通话事件时间层用“事件框架”标注基站位置空间层。此时 i2 同时调用三套引擎计算复杂度指数级上升这也是为什么该案例要求先做“集合编组”再过滤——降低图节点数。2.3 呈现层七种表现方式的业务语义与性能代价教材第 1 章第 2 节提到“图标、主题行、事件框架等七种表现方式”但未量化其影响。实际项目中表现方式选择直接决定分析效率和结果可信度表现方式适用分析场景数据准备要求性能代价典型误用后果图标Icon关联关系分析无时间/空间属性低在时间序列分析中使用导致时间轴无法渲染主题行Theme Line时间序列、活动轨迹必须含DateTime或GeoPoint中将“银行账户”设为主题行因无时间戳整条线显示为灰色虚线事件框架Event Frame活动轨迹、时空事件必须含DateTimeGeoPoint高单图表超 50 个事件框架i2 布局引擎卡死方框/圆形/椭圆分组容器、高亮区域无特殊要求极低误用为实体导致无法添加属性后续分析缺失关键字段图片Image证据附件、现场照片图片文件路径有效中加载慢路径含中文或空格图片显示为红叉但不报错注意教材中“网监调色板”案例第 1 章第 2 节的深层价值在于它强制用户提前定义“哪些实体用图标、哪些用主题行”。例如“IP地址”实体类型绑定“图标”“网络登录事件”链接类型绑定“事件框架”这样导入时 i2 就能自动匹配表现方式避免后期手动转换——而手动转换会丢失所有已绑定的属性。3. 核心模块实现从话单导入到共同联系人挖掘的端到端落地方案本章不讲“怎么点菜单”而是聚焦一个真实闭环如何把一份格式混乱的 Excel 话单含 5 名嫌疑人在 20 分钟内转化为可验证的“共同联系人”分析图表并导出带路径证据的 PDF 报告。所有操作均基于教材第 4 章第 2 节“话单关系分析”原始流程但补全了教材省略的关键配置和参数逻辑。3.1 数据预处理用导入规范解决“大卫·法雷尔话单”的格式陷阱教材提到“大卫·法雷尔话单格式不同”但没给出具体差异。根据原始文件个人话单.XLS结构真实差异是其他 4 人话单主叫号码,被叫号码,通话时长,通话时间,基站ID5 列大卫·法雷尔话单主叫号码,被叫号码,通话时长,通话时间,基站ID,漫游状态6 列若用同一份导入规范处理i2 会将“漫游状态”列错误映射为“被叫号码”导致关系链断裂。正确做法是创建两级导入规范第一级基础话单规范适用于 4 人!-- 导入规范名称CallLog_Basic -- ImportSpec SourceFile个人话单.XLS/SourceFile SheetNameSheet1/SheetName HeaderRow1/HeaderRow ColumnMapping Column index0 typeEntity entitytypePhone uniqueidtrue / Column index1 typeEntity entitytypePhone uniqueidtrue / Column index2 typeLink linktypeCall attributeDuration / Column index3 typeLink linktypeCall attributeDateTime formatyyyy-MM-dd HH:mm:ss / Column index4 typeLink linktypeCall attributeBaseStationID / /ColumnMapping /ImportSpec说明index0对应 Excel 第一列A列uniqueidtrue告诉 i2 将此列值作为“手机”实体的唯一标识formatyyyy-MM-dd HH:mm:ss是 i2 识别时间戳的硬性要求教材中未强调但实测发现2011-01-18 14:30会被识别而2011/01/18 14:30会失败。第二级增强话单规范专用于大卫·法雷尔!-- 导入规范名称CallLog_David -- ImportSpec SourceFile个人话单.XLS/SourceFile SheetNameDavid_Farrell/SheetName !-- 假设单独工作表 -- HeaderRow1/HeaderRow ColumnMapping Column index0 typeEntity entitytypePhone uniqueidtrue / Column index1 typeEntity entitytypePhone uniqueidtrue / Column index2 typeLink linktypeCall attributeDuration / Column index3 typeLink linktypeCall attributeDateTime formatyyyy-MM-dd HH:mm:ss / Column index4 typeLink linktypeCall attributeBaseStationID / Column index5 typeLink linktypeCall attributeRoamingStatus / !-- 新增映射 -- /ColumnMapping /ImportSpec关键设计RoamingStatus属性必须在“通话”链接类型中预先定义通过调色板编辑器否则导入时该列被忽略。教材第 1 章第 2 节“调色板”部分强调“可自定义”此处就是典型应用场景。3.2 图表构建用集合编组与过滤器锁定“共同联系人”教材第 4 章第 2 节要求“找出与 5 名嫌疑人均存在共同关系的未知联系人”但未说明如何高效筛选。手动点击 5 次“查找共同联系人”再比对效率极低。正确路径是集合编组Grouping 链接过滤Link Filter创建嫌疑人集合选中 5 个嫌疑人手机实体如13800138000至13800138004右键 → 【创建集合】→ 命名为Suspects_Group。此时 i2 自动生成一个虚拟容器但不改变实体属性。执行“共同联系人”批量分析菜单 → 【分析】→ 【查找共同联系人】→ 在弹窗中“源实体”选择Suspects_Group“链接类型”选择Call确保方向为“嫌疑人 → 联系人”勾选“仅显示被所有源实体连接的联系人”点击【确定】用链接过滤器精炼结果上一步会返回大量联系人但其中很多是“仅一次通话”的弱关联。需进一步过滤菜单 → 【视图】→ 【过滤器】→ 【链接过滤器】设置条件LinkType CallANDAttribute:Duration 60通话时长60秒应用后图表中仅保留与嫌疑人有深度通话的联系人。设计说明教材中“集合编组”常被当作视觉分组工具但其核心价值在于作为“查找共同联系人”的输入源。i2 引擎会遍历Suspects_Group内所有实体计算其邻接节点的交集这比手动操作快 10 倍以上。而链接过滤器的作用是避免将“骚扰电话”误判为关键线索。3.3 路径验证区分“最早路径”与“最短路径”的侦查价值教材第 6 章问题 8 明确提问“最早路径和最短路径有何区别”但答案仅停留在“时间 vs 跳数”。在实战中二者指向完全不同的侦查策略最短路径Shortest Path以“跳数最少”为优化目标。例如嫌疑人A → 中间人X → 嫌疑人B2跳比嫌疑人A → 中间人Y → 中间人Z → 嫌疑人B3跳优先。这适用于快速定位核心枢纽人物但可能遗漏时间上更早介入的“影子中介”。最早路径Earliest Path以“路径中第一条链接的时间戳最早”为优化目标。例如嫌疑人A → 中间人M2011-01-01→ 嫌疑人B的路径时间是2011-01-01而嫌疑人A → 中间人N2011-01-10→ 嫌疑人B的路径时间是2011-01-10。前者虽跳数相同但时间更早意味着 M 更可能是犯罪策划的发起者。# i2 内部路径算法伪代码基于教材逻辑还原 def find_earliest_path(source, target): # 步骤1获取所有从source到target的路径BFS all_paths bfs_all_paths(source, target) # 步骤2对每条路径提取其第一条链接的时间戳 path_timestamps [] for path in all_paths: first_link path[0].links[0] # 路径首段链接 timestamp first_link.get_attribute(DateTime) path_timestamps.append((path, timestamp)) # 步骤3返回timestamp最小的路径 return min(path_timestamps, keylambda x: x[1]) def find_shortest_path(source, target): # 标准BFS返回跳数最少的路径 return bfs_shortest_path(source, target)实操技巧在“查找路径”对话框中勾选“显示所有路径”后结果列表会按“跳数”升序排列但若想按时间排序需导出为 Excel用DateTime列手动筛选。这是教材未提及的“后悔药”操作。4. 避坑指南i2 Analysts Notebook 8 最容易翻车的 5 个致命细节新手在照着教材操作时90% 的时间浪费在解决“为什么功能不生效”上。这些坑教材要么没写要么一笔带过。以下是我在多个模拟项目X中反复验证的 5 个高频翻车点按“现象→原因→解决”结构给出可立即执行的方案。4.1 现象导入后“被叫号码”全部显示为“未知”无法建立链接原因Excel 中“被叫号码”列包含空值或非数字字符如“-”、“暂无”i2 在解析uniqueidtrue字段时遇到非法值会静默跳过该行导致“被叫号码”实体未创建链接自然丢失。解决在 Excel 中用IF(ISNUMBER(--A2),A2,)清洗“被叫号码”列确保全为纯数字在导入规范中为该列添加nullvalue属性Column index1 typeEntity entitytypePhone uniqueidtrue nullvalue /重新导入检查 i2 日志窗口菜单 → 【帮助】→ 【日志】是否有Skipped row due to invalid unique ID提示。4.2 现象“查找共同联系人”结果为空但手动检查确认有交集原因i2 的“共同联系人”算法要求所有源实体必须通过同一种链接类型连接到目标。若 5 个嫌疑人中4 人用Call链接1 人用SMS链接则算法返回空集。教材未强调“链接类型一致性”是硬性前提。解决菜单 → 【分析】→ 【列出项目】→ 筛选LinkType SMS查看该嫌疑人是否混用了短信链接若存在右键该 SMS 链接 → 【更改链接类型】→ 选Call重新运行“查找共同联系人”确保“链接类型”下拉框中只有一种类型被选中。4.3 现象时间序列分析中时间轴显示为“1970-01-01”无法拖动原因Excel 时间列格式为2011/1/18 14:30i2 导入时识别为字符串而非DateTime。教材中formatyyyy-MM-dd HH:mm:ss是唯一有效格式其他变体均失败。解决在 Excel 中选中时间列 → 右键 → 【设置单元格格式】→ 选“日期”→ 自定义格式为yyyy-mm-dd hh:mm:ss保存为.xlsx非.xls因旧格式对时间解析支持差导入规范中format属性必须严格匹配formatyyyy-MM-dd HH:mm:ss注意大小写和分隔符。4.4 现象导出图片时图表右侧被截断关键标签丢失原因i2 导出图片基于当前视图区域而非整个图表逻辑范围。若你曾用“缩放至区域”放大局部导出时只截取该区域。教材第 6 章问题 6 的答案“用【文件】→【导出】→【图片】”不完整。解决菜单 → 【视图】→ 【全部显示】快捷键CtrlShiftA确保整个图表在窗口内菜单 → 【视图】→ 【实际大小】快捷键Ctrl0消除缩放变形菜单 → 【文件】→ 【导出】→ 【图片】→ 选择PNG格式JPG会压缩文字→ 勾选“导出整个图表”非“当前视图”。4.5 现象合并实体后“通话次数”属性未累加仍显示原值原因教材第 3 章第 2 节提到“加总链接标签数值”但未说明该选项在“图标属性”中且需在合并前预设。默认情况下合并只保留主实体属性链接属性被丢弃。解决合并前右键图表空白处 → 【图标属性】→ 切换到“操作惯例”页签勾选“加总链接标签数值”在“链接类型”下拉框中选择Call在“属性”下拉框中选择Duration或其他需累加的数值属性执行【工具】→ 【合并实体】此时所有Call链接的Duration会求和。5. 验收与答辩用三份交付物证明你的分析不是“画图”而是“建模”验收 i2 项目绝不是看图表好不好看而是看它能否经受住三重拷问数据可追溯、逻辑可复现、结论可证伪。我带过的每个模拟项目X最终交付物都严格遵循这三份文档它们直接决定了答辩时导师是问“你怎么做出来的”还是问“你为什么这么认为”。5.1 交付物一《数据血缘说明书》——证明每一行数据的来龙去脉这不是简单的“数据来源列表”而是用 i2 自身功能生成的、可一键验证的证据链。核心是利用教材第 5 章“数据接口”中提到的iBase集成能力但将其降级为轻量级验证生成实体溯源报告选中任意一个关键实体如“共同联系人”中的13900139000右键 → 【列出项目】→ 在结果窗口中找到该实体的SourceFile和SourceRow属性教材第 5 章第 1 节提到 iBase 会写入这些元数据即使未用 iBase导入规范也会记录截图保存标注“该号码来自个人话单.XLS第 142 行主叫号码为13800138000”。生成链接溯源报告选中一条关键链接如13800138000 → 13900139000右键 → 【编辑链接属性】→ 查看SourceFile和SourceRow同时检查DateTime和Duration是否与 Excel 原始值一致。这份说明书必须包含 3 个要素① 实体/链接的唯一标识② 对应的 Excel 文件名和行号③ 原始值与 i2 值的比对截图。答辩时导师随机挑一个号码你能 30 秒内调出它的源头信任感立刻建立。5.2 交付物二《分析逻辑验证表》——用反事实推理堵住所有质疑教材所有案例都假设“分析路径正确”但真实答辩中导师一定会问“如果去掉这个嫌疑人结论会不会变” 这份表格就是你的防御工事测试场景操作步骤预期结果实际结果结论稳健性移除嫌疑人A选中13800138000→ 右键 → 【隐藏选取项目】→ 运行“查找共同联系人”共同联系人数量 ≤ 原数量的 50%数量从 7 降至 3高A 是关键枢纽屏蔽短时通话【链接过滤器】→Duration 30→ 应用共同联系人数量 0数量从 7 降至 0高弱关联不构成证据反转链接方向选中所有Call链接 → 右键 → 【反转链接方向】→ 运行“查找共同联系人”返回空集因方向变为“联系人→嫌疑人”返回空集高方向逻辑正确关键设计所有测试必须基于同一份原始图表通过“隐藏”、“过滤”、“反转”等非破坏性操作完成。这样既能证明逻辑又不污染原始数据。教材第 3 章第 2 节“隐藏显示”功能就是为此类验证而生。5.3 交付物三《结论证据包》——把“可能”变成“确实”的最后一公里教材第 4 章所有案例的终点是“找出共同联系人”但这只是开始。真正的交付是让这个结论能直接支撑下一步行动。我要求每个学生必须打包三样东西路径证据图用“查找路径”功能为每个共同联系人生成一条到 5 名嫌疑人的最短路径导出为 PNG。图中必须包含路径上每条链接的DateTime和Duration标签所有实体的唯一标识如手机号图表标题“路径证据13900139000与嫌疑人组的最短连接”。时间分布热力图用“时间序列分析”功能将共同联系人的所有通话按小时聚合生成柱状图菜单 → 【分析】→ 【时间分布】。证明其活跃时段与嫌疑人高度重合。导出数据表菜单 → 【文件】→ 【导出】→ 【Excel】→ 选择“所选实体和链接”。表中必须包含EntityID唯一标识EntityType如 PhoneLinkType如 CallAttribute:DateTimeAttribute:DurationAttribute:BaseStationID这份证据包的意义在于它让结论脱离 i2 软件环境。即使导师没有安装 i2也能用 Excel 查看原始数据用 PNG 图验证路径用热力图确认时间规律。从那以后我每次带学生做模拟项目X都强制走一遍这三份交付物的生成流程——不是为了应付答辩而是训练一种思维所有分析必须能走出软件落到纸面经得起脱机检验。希望帮到你。本文还有配套的精品资源点击获取