分类目录归档:学习

数据分库和分表

摘自:谈谈为什么要分库分表? - fuxing

分库:将表按照某种规则拆分到多个数据库中,来保证系统的稳定和性能

分表:将表中数据按照某种规则拆分到多张表中,提升查询效率

分库分表的原因

  • 分库原因:数据量过大,而磁盘空间、内存、CPU 有限
  • 分表原因:单表承载能力有限,随着数据规模的增加,表索引效率降低
  • 其他原因:分布式或微服务架构,根据业务需求和功能对数据库进行划分

单表超 500 万行,或容量超 2GB 时推荐分库分表——阿里开发手册

分库分表的常见方法

  1. 垂直分库

将某个库中的表拆分到多个库,一般按照业务维度拆分

优点:降低单数据库服务的压力,增加系统可用性;业务清晰,

Read more

经验投资指标

1 巴菲特指标

用美国股票总市值与 GDP 的比值来衡量股票市场的估值

巴菲特认为,当该指标介于0.9和1之间,则市场被视为估值合理,而当该比率超过1.2则认为估值过高,在该指标接近2时买入美股,相当于“玩火”

20240710:“巴菲特指标”升至 1.96,达到 2021 年底以来的最高水平

2 简易估值法

估值 =(3 年平均增速 x 100+10)x 确定性

确定性定为一个范围在 0-1.3

Read more

PageRank 排序算法

PageRank 是早期 Google 搜索的核心算法,决定了搜索结果中的网页展示顺序

PageRank 核心思想:

  • 根据网站的外部链接和内部链接的数量和质量衡量网站的价值
  • 如果重要性为 $PR(i)$ 的页面 $i$ 有 $l_i$ 个外链(出度),则每个链接的价值为 $PR(i)/l_i$
  • 因此,页面 $j$ 的重要性(表示为 $PR(j)$ )是其链接上的价值总和

$$PR(j) = \sum_{i \rightarrow j} \frac{PR(i)}{l_i}$$

上式最大的问题在于忽略了"不存在外链的特殊页面"

因此 PageRank 算法引入了阻尼系

Read more

Apriori 关联规则算法

背景故事:啤酒与尿布

Aprior 算法的 3 个关键评价指标:

  1. 支持度(Support):商品 X 和商品 Y 同时在数据集中出现的概率

$$ Support(X,Y) = P(XY) = \frac{number(XY)}{num(All Samples)} $$ 2. 置信度(Confidence):商品 Y 出现后,商品 X 出现的概率 $$ Confidence(X \Leftarrow Y) = P(X|Y)=P(XY)/P(Y) $$ 3. 提升度(Lift):商品 X 出现的情况中,商品 Y 也出现的概率 $$ Lift(X \Leftarrow Y) = P(X|Y)

Read more

KNN 最近邻算法

K 近邻算法(k-nearest neighbors, KNN)是一种很基本的机器学习方法

算法步骤:给定样本,寻找最近的 K 个样本进行(分类/回归)预测

KNN的 3 个核心要素:

  • K 值的选择,较小时容易过拟合;较大时泛化性好,但训练误差大
  • 距离度量方式,比如欧氏距离、曼哈顿距离(常见距离测度
  • 决策规则,分类问题常用投票法,回归问题常用平均法

KNN 的主要优点:

  • 理论成熟,思想简单,既可以用来做(非线性)分类也可以用来做回归
  • 训练时间复杂度比支持向量机之类的算法低,仅为 O (n)
  • 和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
  • 对于类域的交叉或重叠较多

Read more

图特征工程_Python实现

前置知识: 特征工程_图

依赖环境:networkx

数据和环境准备:

import networkx as nx

G = nx.karate_club_graph()
# 空手道俱乐部 34 名成员的社交网络

图的平均度

def average_degree(num_edges, num_nodes):
    avg_degree = 2*num_edges/num_nodes
    avg_degree = int(round(avg_degree))
    return avg_degree

num_edges 

Read more

特征工程_图

前置知识:图论基础

代码实践:图特征工程_Python实现

节点中心性度量

度中心性 (Degrree Centrality):

  • 用节点的度来描述节点的重要性,即邻接节点数越多的节点越重要
  • 在不同网络间比较时,需要除以网络总节点数进行标准化

特征向量中心性 ( Eigenvector Centrality): $$ c_v=\frac{1}{\lambda}\sum_{u\in N(v)}c_u $$

  • 节点的重要性取决于邻接节点的重要性之和
  • 其本质对应一个图邻接矩阵的特征向量求解问题

介数中心性

Read more

PyG-图神经网络构建

PyG (PyTorch Geometric),基于 PyTorch 编写和训练图神经网络 (GNN)

  • 集成了各种针对图或其他不规则结构的深度学习方法
  • 包括易用小批量加载器,可在许多小型和单个巨型图上运行
  • 多 GP​​U 支持,torch.compile 支持,DataPipe 支持
  • 内置大量基准数据集、支持神经网络的

Read more

NetworkX-复杂网络分析

NetworkX 是一个 Python 包,常用于创建、操作和挖掘图/复杂网络

  • 支持以标准和非标准数据格式加载和存储网络
  • 生成多种类型的随机和经典网络;网络可视化
  • 分析网络结构、构建网络模型、设计新的网络算法

官方文档

本教程默认使用 NetworkX=3.2.1

1 图的基本操作

1.1 图的创建与类型

G = nx.Gr

Read more

模型融合 ModelMerge

基本概念

模型融合(model merging):

  • 将多个神经网络模型进行合并,得到一个融合模型
  • 优势在于节省计算/时间成本、无需训练数据(隐私保护)
  • 有时能取得类似多任务学习的效果,也可能具备更好的泛化性

思考:如何验证模型融合的合理性? (此处

Read more