图数据库 之 Neo4j - 应用场景1(6)

Neo4j是一种图数据库,它专注于处理关系数据密集型的问题。由于其图结构的特性,Neo4j能够高效地存储、查询和分析连接数据。

以下是一些常见的Neo4j应用场景:

  • 社交网络分析:通过建模和分析人际关系,可以揭示社交网络中的影响力、社区结构、信息传播等重要信息。
  • 金融领域:可以用于风险评估、欺诈检测、客户关系管理等任务,通过分析关系网络来发现潜在的风险和机会。
  • 生物医学研究:可以用于分析生物学数据、蛋白质相互作用网络、基因关联分析等,帮助科学家理解生物体系的复杂关系。
  • 供应链管理:可以用于供应商关系管理、物流管理、库存管理等任务,通过建模和分析供应链网络来提高效率和可靠性。
  • 关系型数据管理:可以作为关系数据库管理、数据仓库管理、关系数据挖掘等任务的替代方案,通过图结构的优势来加速查询和分析。

总而言之,Neo4j是一种强大的图数据库,适用于各种行业和领域的关系数据密集型问题。它提供了高效的数据存储和查询机制,能够帮助用户发现隐藏在关系中的有价值的信息。

下面我们讲解一下图数据库在欺诈检测中的应用。

背景

欺诈检测是在金融、电子商务和保险等领域中非常重要的应用之一。随着技术的发展和数据的增长,传统的欺诈检测方法面临着越来越复杂的挑战。图数据库作为一种强大的工具,被广泛应用于欺诈检测领域,以帮助发现和预防欺诈行为。

原理

没有一个欺诈预防措施是完美的,使用图技术进行欺诈检测能够更好地处理复杂关系、提供高效的关系查询、实现实时欺诈检测和预测分析,从而提高欺诈检测的准确性和效率。通过图技术,可以更好地理解数据之间的联系,并从中获得有意义的结论,从而改进欺诈检测的效果。

使用图技术进行欺诈检测有以下几个优势:

  1. 处理复杂关系:欺诈行为通常涉及多个实体之间的复杂关系,如用户、交易、设备、IP地址等。传统的关系型数据库往往难以处理这种复杂的关系。而图数据库以图结构存储数据,可以轻松地表示和处理实体之间的关系,从而更好地发现欺诈行为。

  2. 高效的关系查询:图数据库提供了强大的查询语言和算法,可以进行复杂的关系分析和模式识别。通过使用图数据库的查询语言,可以轻松地查询和分析实体之间的关系,发现潜在的欺诈模式和规律。这种高效的关系查询能够提高欺诈检测的准确性和效率。

  3. 实时欺诈检测:图数据库可以与实时数据流结合,进行实时的欺诈检测和预警。通过将图数据库与实时数据流进行集成,可以及时地检测到潜在的欺诈行为,并采取相应的措施。这种实时欺诈检测能够帮助机构及时发现和应对欺诈行为,减少损失。

  4. 模式识别和预测分析:通过对图数据库中的节点和边进行模式识别,可以发现潜在的欺诈模式和规律。图数据库提供了丰富的算法和工具,可以进行复杂的模式识别和预测分析。这种模式识别和预测分析能够帮助机构更好地预测和预防欺诈行为。

图数据库在欺诈检测中的原理是基于图结构数据的分析和查询。通过将用户、交易、设备、IP地址等实体表示为图中的节点,将它们之间的关系表示为边,可以构建一个包含大量实体和关系的图数据库。然后,通过使用图数据库提供的查询语言和算法,可以进行复杂的关系分析和模式识别,以发现潜在的欺诈行为。

操作步骤

图数据库在欺诈检测中的使用可以包括以下几个步骤:

  1. 数据导入:将用户、交易、设备等数据导入图数据库中,构建图结构数据模型。
  2. 关系分析:使用图数据库的查询语言和算法,进行关系分析,找出异常的关系模式和行为。
  3. 模式识别:通过对图数据库中的节点和边进行模式识别,发现潜在的欺诈模式和规律。
  4. 实时检测:将图数据库与实时数据流结合,进行实时的欺诈检测和预警。
  5. 反欺诈措施:根据欺诈检测的结果,采取相应的反欺诈措施,如阻止交易、冻结账户等。
案例分析

假设有一批银行的用户交易数据,包括用户、电话、电子邮件和交易等实体,需要发现具有异常行为模式的用户、异常交易模式以及欺诈团伙等潜在的欺诈行为。

用户、电话、电子邮件和交易实体的属性如下:

  1. User(用户):

    • id:用户唯一标识符
    • name:用户姓名
    • age:用户年龄
    • address:用户地址
  2. Phone(电话):

    • id:电话唯一标识符
    • number:电话号码
    • type:电话类型(如家庭电话、工作电话)
  3. Email(电子邮件):

    • id:电子邮件唯一标识符
    • address:电子邮件地址
    • type:电子邮件类型(如个人邮箱、工作邮箱)
  4. Transaction(交易):

    • id:交易唯一标识符
    • amount:交易金额
    • timestamp:交易时间戳
    • type:交易类型(如转账、提现)

创建用户节点

CREATE (:User {id: 1, name: '张三', age: 30, address: '1 Main St'});
CREATE (:User {id: 2, name: '李四', age: 35, address: '2 Main St'});
CREATE (:User {id: 3, name: '王五', age: 40, address: '3 Main St'});
CREATE (:User {id: 4, name: '赵六', age: 50, address: '4 Main St'});
CREATE (:User {id: 5, name: '孙七', age: 20, address: '5 Main St'});
CREATE (:User {id: 6, name: '周八', age: 80, address: '6 Main St'});
CREATE (:User {id: 7, name: '吴九', age: 70, address: '7 Main St'});
CREATE (:User {id: 8, name: '郑十', age: 35, address: '8 Main St'});
CREATE (:User {id: 9, name: '熊大', age: 50, address: 'Forest St'});
CREATE (:User {id: 10, name: '熊二', age: 40, address: 'Forest St'});

创建电话节点

CREATE (:Phone {id: 1, number: '111', type: 'Home'});
CREATE (:Phone {id: 2, number: '222', type: 'Home'});
CREATE (:Phone {id: 3, number: '333', type: 'Home'});
CREATE (:Phone {id: 4, number: '444', type: 'Home'});
CREATE (:Phone {id: 5, number: '555', type: 'Work'});
CREATE (:Phone {id: 6, number: '444', type: 'Work'});
CREATE (:Phone {id: 7, number: '444', type: 'Work'});
CREATE (:Phone {id: 8, number: '333', type: 'Home'});
CREATE (:Phone {id: 9, number: '666', type: 'Home'});
CREATE (:Phone {id: 10, number: '666', type: 'Home'});
CREATE (:Phone {id: 11, number: '444', type: 'Work'});
CREATE (:Phone {id: 12, number: '333', type: 'Home'});
CREATE (:Phone {id: 13, number: '666', type: 'Home'});
CREATE (:Phone {id: 14, number: '777', type: 'Home'});
CREATE (:Phone {id: 15, number: '888', type: 'Home'});
CREATE (:Phone {id: 16, number: '999', type: 'Home'});
CREATE (:Phone {id: 17, number: '123', type: 'Home'});
CREATE (:Phone {id: 18, number: '234', type: 'Home'});
CREATE (:Phone {id: 19, number: '345', type: 'Home'});
CREATE (:Phone {id: 20, number: '567', type: 'Home'});

创建电子邮件节点

CREATE (:Email {id: 1, address: 'zhangsan@example.com', type: 'Personal'});
CREATE (:Email {id: 2, address: 'lisi@example.com', type: 'Personal'});
CREATE (:Email {id: 3, address: 'wangwu@example.com', type: 'Personal'});
CREATE (:Email {id: 4, address: 'zhaoliu@example.com', type: 'Personal'});
CREATE (:Email {id: 5, address: 'sunqi@example.com', type: 'Personal'});
CREATE (:Email {id: 6, address: 'zhouba@example.com', type: 'Personal'});
CREATE (:Email {id: 7, address: 'wujiu@example.com', type: 'Work'});
CREATE (:Email {id: 8, address: 'zhengshi@example.com', type: 'Work'});
CREATE (:Email {id: 9, address: 'xiongda@example.com', type: 'Personal'});
CREATE (:Email {id: 10, address: 'xionger@example.com', type: 'Personal'});
CREATE (:Email {id: 11, address: 'zhangsan2@example.com', type: 'Personal'});
CREATE (:Email {id: 12, address: 'zhangsan3@example.com', type: 'Work'});
CREATE (:Email {id: 13, address: 'zhangsan4@example.com', type: 'Work'});
CREATE (:Email {id: 14, address: 'wangwu2@example.com', type: 'Personal'});
CREATE (:Email {id: 15, address: 'sunqi2@example.com', type: 'Personal'});

创建交易节点

CREATE (:Transaction {id: 1, amount: 1000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 2, amount: 5000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 3, amount: 3000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 4, amount: 5000, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 5, amount: 6000, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 6, amount: 5000, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 7, amount: 5000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 8, amount: 5000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 9, amount: 5000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 10, amount: 5000, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 11, amount: 5000, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 12, amount: 5000, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 13, amount: 1000, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 14, amount: 5000, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 15, amount: 2000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 16, amount: 2000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 17, amount: 3000, timestamp: timestamp(), type: 'Transfer'});
CREATE (:Transaction {id: 18, amount: 100, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 19, amount: 500, timestamp: timestamp(), type: 'Withdrawal'});
CREATE (:Transaction {id: 20, amount: 200, timestamp: timestamp(), type: 'Transfer'});

创建用户和绑定电话、绑定电子邮箱的关系

MATCH (u:User {id: 1}), (p:Phone {id: 1}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 2}), (p:Phone {id: 2}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 3}), (p:Phone {id: 3}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 4}), (p:Phone {id: 4}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 5}), (p:Phone {id: 5}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 6}), (p:Phone {id: 6}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 7}), (p:Phone {id: 7}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 8}), (p:Phone {id: 8}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 9}), (p:Phone {id: 9}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 10}), (p:Phone {id: 10}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 1}), (p:Phone {id: 11}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 1}), (p:Phone {id: 12}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 2}), (p:Phone {id: 13}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 2}), (p:Phone {id: 14}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 2}), (p:Phone {id: 15}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 2}), (p:Phone {id: 16}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 3}), (p:Phone {id: 17}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 3}), (p:Phone {id: 18}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 5}), (p:Phone {id: 19}) CREATE (u)-[:HAS_PHONE]->(p);
MATCH (u:User {id: 6}), (p:Phone {id: 20}) CREATE (u)-[:HAS_PHONE]->(p);MATCH (u:User {id: 1}), (e:Email {id: 1}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 2}), (e:Email {id: 2}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 3}), (e:Email {id: 3}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 4}), (e:Email {id: 4}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 5}), (e:Email {id: 5}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 6}), (e:Email {id: 6}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 7}), (e:Email {id: 7}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 8}), (e:Email {id: 8}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 9}), (e:Email {id: 9}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 10}), (e:Email {id: 10}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 1}), (e:Email {id: 11}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 1}), (e:Email {id: 12}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 1}), (e:Email {id: 13}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 3}), (e:Email {id: 14}) CREATE (u)-[:HAS_EMAIL]->(e);
MATCH (u:User {id: 5}), (e:Email {id: 15}) CREATE (u)-[:HAS_EMAIL]->(e);

创建用户和交易的关系

MATCH (u:User {id: 1}), (t:Transaction {id: 1}), (r:User {id: 2}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 1}), (t:Transaction {id: 2}), (r:User {id: 2}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 2}), (t:Transaction {id: 3}), (r:User {id: 3}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 3}), (t:Transaction {id: 4}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 5}), (t:Transaction {id: 5}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 6}), (t:Transaction {id: 6}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 4}), (t:Transaction {id: 7}), (r:User {id: 7}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 5}), (t:Transaction {id: 8}), (r:User {id: 7}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 6}), (t:Transaction {id: 9}), (r:User {id: 7}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 3}), (t:Transaction {id: 10}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 5}), (t:Transaction {id: 11}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 6}), (t:Transaction {id: 12}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 5}), (t:Transaction {id: 13}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 6}), (t:Transaction {id: 14}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 7}), (t:Transaction {id: 15}), (r:User {id: 7}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 8}), (t:Transaction {id: 16}), (r:User {id: 7}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 8}), (t:Transaction {id: 17}), (r:User {id: 7}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
MATCH (u:User {id: 7}), (t:Transaction {id: 18}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 7}), (t:Transaction {id: 19}) CREATE (u)-[:Withdrawal]->(t);
MATCH (u:User {id: 9}), (t:Transaction {id: 20}), (r:User {id: 10}) CREATE (u)-[:TRANSFER {recipient: r.id}]->(t);
用户关系分析

通过分析用户之间的关系,可以发现潜在的欺诈行为。例如,可以通过分析用户更换手机号或邮箱的频率来发现异常行为模式。

查询频繁更换手机号(达到3次)的用户

// 查询频繁更换手机号的用户
MATCH (u:User)-[r:HAS_PHONE]->(p:Phone)
WITH u, COUNT(DISTINCT p) AS phoneCount
WHERE phoneCount >= 3
RETURN u,phoneCount
查询频繁更换邮箱(达到3次)的用户
// 查询频繁更换邮箱的用户
MATCH (u:User)-[:HAS_EMAIL]->(e:Email)
WITH u, COUNT(DISTINCT e) AS emailCount
WHERE emailCount >= 3
RETURN u,emailCount
交易模式分析

通过分析短时间内的大额转账或使用不同银行卡进行大额提现来发现异常交易模式。

查询累计转账超过 4000 的用户

MATCH (u:User)-[r:TRANSFER]->(t:Transaction)
WITH u, sum(t.amount) AS totalAmount
WHERE totalAmount > 4000
RETURN u,totalAmount

查询累计提现超过 10000 的用户

MATCH (u:User)-[:Withdrawal]->(t:Transaction)
WITH u, sum(t.amount) AS totalWithdrawalAmount
WHERE totalWithdrawalAmount > 10000
RETURN u,totalWithdrawalAmount

查询转账账号超过3个的用户

MATCH (u:User)-[r:TRANSFER]->(t:Transaction)
WITH u, count(distinct r.recipient) AS uniqueRecipients
where uniqueRecipients >= 3
RETURN u,uniqueRecipients

未完待续 ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【详解】图的概念和存储结构(邻接矩阵,邻接表)

目录 图的基本概念: 图的存储结构 邻接矩阵(GraphByMatrix): 基本参数: 初始化: 获取顶点元素在其数组中的下标 : 添加边和权重: 获取顶点的度: 打印图&#xf…

Unity所有关于旋转的方法详解

前言:欧拉角和四元数的简单描述 我们在Inspector面板上看到的rotation其实是欧拉角, 我们将Inspector面板设置成Debug模式,此时看到的local Rotation才是四元数。 Unity中的欧拉旋转是按照Z-X-Y顺规执行的旋转,一组欧拉旋转过程中…

[力扣 Hot100]Day29 删除链表的倒数第 N 个结点

题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 出处 思路 两个指针间隔n,一趟遍历解决。 代码 class Solution { public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* phead;ListNode* …

【数据库】Mysql索引

1、什么是索引?为什么要用索引? 1.1、索引的含义 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库中表的数据。索引的实现通常使用B树和变种的B树(MySQL常用的索引就是B树&am…

跟着pink老师前端入门教程(JavaScript)-day03

四、常量 概念:使用 const 声明的变量称为“常量”。 使用场景:当某个变量永远不会改变的时候,就可以使用 const 来声明,而不是let。 命名规范:和变量一致 常量使用: 注意:常量不允许重新…

数据库索引面试的相关问题

查看索引的执行计划 索引失效的情况 1、索引列上做了计算,函数,类型转换等操作。索引失效是因为查询过程需要扫描整个索引并回表。代价高于直接全表扫描。 Like匹配使用了前缀匹配符“%abc” 字符串不加引号导致类型转换。 原因: 常见索…

阿里云香港轻量应用服务器网络线路cn2?

阿里云香港轻量应用服务器是什么线路?不是cn2。 阿里云香港轻量服务器是cn2吗?香港轻量服务器不是cn2。阿腾云atengyun.com正好有一台阿里云轻量应用服务器,通过mtr traceroute测试了一下,最后一跳是202.97开头的ip,1…

酒店内部服务App开发常用的代码分享!

随着移动互联网的迅猛发展,智能手机已经成为人们生活中不可或缺的一部分,酒店作为服务行业的重要代表,为了提升客户体验、提高服务效率,纷纷开始开发内部服务App。 这些App不仅可以帮助酒店实现内部管理的便捷化,还能…

二叉树(4)——链式二叉树

1 二叉树的概念 二叉树是: 空树非空:根节点,根节点的左子树、根节点的右子树组成的。 二叉树定义是递归式的,因此后序基本操作中基本都是按照该概念实现的。 2 二叉树的遍历 2.1 前序、中序以及后序遍历 学习二叉树结构&#xf…

【C++笔记】第一阶段:C++基础入门

C基础入门 1 C初识1.1 创建一个C程序1.1.1 创建项目1.1.2 创建文件1.1.3 编写代码1.1.4 运行程序 1.2 注释1.3 变量1.4 常量1.5 关键字1.6 标识符命名规则 2 数据类型2.1 整型2.2 sizeof关键字2.3 实型(浮点型)2.4 字符型2.5 转义字符2.6 字符串型2.7 布…

Github 2024-02-17 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-02-17统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4TypeScript项目3Rust项目2Jupyter Notebook项目1PowerShell项目1JavaScript项目1 Black&#xff…

单片机学习笔记---AD模数转换DA数模转换

目录 AD模数转换 XPT2046.c XPT2046.h main.c DA数模转换 main.c 上一篇博客讲了AD/DA转换的工作原理,也介绍了运算放大器的工作原理,这节开始代码演示! AD模数转换 新创建一个工程:AD模数转换 第一个工程将用到LCD1602和…

相机图像质量研究(34)常见问题总结:图像处理对成像的影响--拖影

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

力扣 第 124 场双周赛 解题报告 | 珂学家 | 非常规区间合并

前言 整体评价 T4的dp解法没想到,走了一条"不归路", 这个区间合并解很特殊,它是带状态的,而且最终的正解也是基于WA的case,慢慢理清的。 真心不容易,太难了。 T1. 相同分数的最大操作数目 I 思路: 模拟 c…

吴恩达机器学习全课程笔记第二篇

目录 前言 P31-P33 logistics (逻辑)回归 决策边界 P34-P36 逻辑回归的代价函数 梯度下降的实现 P37-P41 过拟合问题 正则化代价函数 正则化线性回归 正则化logistics回归 前言 这是吴恩达机器学习笔记的第二篇,第一篇笔记请见&…

day32打卡

day32打卡 122. 买卖股票的最佳时机 II 解法,贪心:局部,收集每天的正利润-》整体,获取最大利润 从第0天到第3天,利润为:price[3] - price[0],也可以是(price[3] - price[2]) (price[2] - pr…

160基于matlab的负熵和峭度信号的盲分离

基于matlab的负熵和峭度信号的盲分离。基于峭度的FastICA算法的收敛速度要快,迭代次数比基于负熵的FastICA算法少四倍以上。SMSE随信噪比增大两种判据下的FastICA算法都逐渐变小,但是基于峭度的算法的SMSE更小,因此基于峭度的FastICA算法性能…

论文精读--对比学习论文综述

InstDisc 提出了个体判别任务,而且利用这个代理任务与NCE Loss去做对比学习从而得到了不错的无监督表征学习的结果;同时提出了别的数据结构——Memory Bank来存储大量负样本;解决如何对特征进行动量式的更新 翻译: 有监督学习的…

C++并发编程 -3.同步并发操作

本文介绍如何使用条件变量控制并发的同步操作、C 并发三剑客,函数式编程 一.条件变量 1.概念 C条件变量(condition variable)是一种多线程编程中常用的同步机制,用于线程间的通信和协调。它允许一个或多个线程等待某个条件的发生…

爬虫之正则表达式

个人主页:Lei宝啊 愿所有美好如期而遇 概念: 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),正则匹配是一个模糊的匹配(不是精确匹配) 如下四个方法经常使用: match()search()f…