分类目录归档:学习

Mean Shift聚类

Mean Shift 算法,又称为均值漂移算法

核心思想:

  • 该算法假设真实的样本集合是服从不同概率密度分布的数据簇的并集
  • 任意选择一个样本通过密度增加最快的方向将收敛到样本密度高的区域
  • 样本密度高的区域对应一个分布的聚集区,即样本数据的局部最大值
  • 能够收敛到相同局部最大值的样本被认为是服从同一分布的数据簇

算法流程:

  1. 随机确定样本空间内一个样本 $x$ 作为球心,构建半径为 $h$ 的高维球

$$ S_h\left(x\right)=\left(y\mid\left(y-x\right)\left(y-x\right)^T\leqslant h^2\right) $$ 2. 计算该

Read more

样条函数

样条(spline)通常是指分段定义的多项式参数曲线

样条函数是一种由分段多项式拼接而成的平滑函数,可用于逼近或插值数据

常见的样条函数:

线性样条 二次样条 三次样条 B样条(B-spline)
每个子区间上使用一阶多项式,即直线段<br><br>它们在节点处具有零阶连续性,即函数值连续,但导数不连续 在每个子区间上使用二阶多项式<br><br>在节点处通常要求函数值和一阶导数连续 在每个子区间上使用三阶多项式<br><br>在节点处要求函数值、一阶导数和二阶导数都连续

Read more

进程、线程与协程

进程

进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例

程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配 CPU 时间,然后程序开始真正运行

Linux 系统函数 fork() 可以在父进程中创建一个子进程:

import os

print('当前进程:%s 启动中 ....' % os.getpid())
pid = os.fork()
if pid == 0:
    print('子进程:%s,父进程是:%s' % (os.getpid()

Read more

常见哈希算法

MD5:32 位,单向哈希,不可逆,速度快,破解难度低

SHA256:256 位,单向哈希,不可逆,速度较快,破解难度中等

BCrypt:可变位数,单向哈希,不可逆,速度慢,破解难度高

PBKDF2:可变位数,单向哈希,不可逆,速度可调,破解难度可调

Scrypt:可变位数,单向哈希,不可逆,速度慢,破解难度高

加盐,在输入信息中随机添加字符串(salt)以提高哈希算法的安全性

MD5 算法

MD5 消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以

Read more

影响快乐和幸福的化学物质

摘自 Joy Triggers: How to Find Happiness on Demand

  • Dopamine. 多巴胺。这种神经递质在动机和奖励预期中发挥着重要作用。当你实现一个目标、完成一项任务或达到一个目标时,你会感受到多巴胺的愉悦。基本上是你的大脑告诉你你做得很好。许多类型的愉悦体验,例如性、饮食和玩电子游戏,都会增加多巴胺的释放,因此让你想要重复这些体验。
  • Serotonin. 血清素。虽然血清素具有复杂的生物功能,但它通常被称为幸福分子。多种称为血清素特异性重摄取抑制剂 (SSRI) 的抗抑郁药的作用是在信号传输完成后干扰血清素的正常重吸收,从而增加突触中的血清素水平。它

Read more

数据分库和分表

摘自:谈谈为什么要分库分表? - 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