分类目录归档:学习

样条函数

样条(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 股息率>3%

价值投资的核心理念,适用于现金流充沛/资本开支少的公司

一个简单的“四进三出”策略:

  • 当股息率在4%以上时可买入;当股息率降到3%以下,或季报恶化时卖出

成功实践经验分享:张尧王文高股息之家

2 长期复合 ROE>15%

考量企业的赚钱能力

R15 排行榜:以十年期为考量,按照 ROE 平均>20%,最低>15%的标准筛选

根据今年上榜的只有32家,全是中国最顶尖的好企业

3 历史底部,PE<15 或 PB<1

核心考量的是“便宜”

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