分类目录归档:学习

概率图基础

概率图模型

概率图模型,在概率模型的基础上,使用基于图的方法来表示概率分布(概率密度/密度函数),是一种通用化的不确定性知识表示和处理方法。

在图模型中,随机变量构成了图中的节点,而随机变量之间的关系(比如相关、独立、不独立、条件独立、因果)则构成了图中节点之间的边

随机变量的常见关系度量指标:

对于随机变量之间的因果关系分析

Read more

维特比算法Viterbi

1 维特比算法概述

维特比算法(Viterbi algorithm)是一种寻找最短路径的动态规划算法。可以用于寻找最有可能产生观测事件序列的维特比路径——隐含状态序列,适应于多步骤每步多选择模型的最优选择问题,比如HMM。

2 维特比算法核心

维特比算法是针对暴力枚举法的优化

假设有一个长度为$l$的序列,其中$l$对应总天数

其中第$i$天的隐含状态可能情况有$n$种,第$i+1$天的隐含状态可能情况有$m$种

第$i$天的最大概率为$P_i=argmax_k({P_{ik}},k=1,...,n)$,其中$P_{

Read more

多模式匹配算法 AC

1 AC 算法概况

AC 算法,即 Aho-Corasick 自动机算法,是两位创始人的名称凑出来的(国际惯例起名法了属于是,但是简称和强化学习里的 Actor-Critic 算法重名,需要注意区分~)

此算法的时间复杂度为O(n),与匹配字符串的数目无关,只跟被匹配字符串长度有关

特性:核心思想和[[1_study/algorithm/字符串类算法/单模式匹配算法 KMP]](建议先看懂这个)是一致的,都通过寻找字符串的内部规律,达到每次失配时的高效跳转,只不过AC算使用前缀

Read more

单模式匹配算法KMP

1 KMP 算法概况

KMP,全称为Knuth-Morria-Pratt,是三位创始人的名称凑出来的

KMP 算法是一种字符串匹配算法,时间复杂度 :O(n+m)

特性:字符串头部和尾部会有重复的部分,利用这部分信息,减少匹配次数

理解字符串的前缀和后缀

  • 把字符串切割成非空的两份,前面那份就是前缀,后面那份就是后缀
  • 所有前缀的可能性组成了前缀集合,所有后缀的可能性组成了后缀集合,比如”Harry”的前缀集合是{”H”, ”Ha”, ”Har”, ”Harr”},而”Potter”的后缀集合是{”otter”,

Read more

Python 优质模块汇总

Read more

模块导入耗时分析

1 分析工具tuna(疑似远程环境不可用)

轻量级Python文件性能查看器

项目地址

安装:pip install tuna

用法1:运行性能分析

python -mcProfile -o program.prof yourfile.py

tuna program.prof

用法2:模块导入性能

python -X importtime yourfile.py 2> import.log

#简写方法

python3 -X importtime -c "import

Read more

AutoML 项目

本文罗列了一些热门的自动机器学习项目

1 AutoGluon

  • AutoGluon 更倾向于使用多模型的 ensemble,利用多层 stacking + k-fold bagging 来实现更好更稳定的模型效果。当然基本的超参优化也是具备的。

  • 自带了一系列的特征工程自动化组件,例如各种缺失值的预处理,日期特征,类别特征,文本特征处理等。但这部分功能相对基础

  • 针对部署时进行优化,比如训练子模型替代多模型;引入模型蒸馏

  • 代码整

Read more

自动化调参

1 网格搜索

网格搜索(Grid Search)会遍历给定参数空间内的所有参数组合,并选择最优的一组,相对于暴力枚举法,有点浪费时间

代码实现参考

2 随机搜索

随机选择(Randomized Search)参数空间内的参数组合,可能有的参数组合不会被选到,效率比网格搜索高

代码实现参考

3 贝叶斯优化

贝叶斯优化(Bayesian Optimization)是一种通用的黑盒优化

Read more

Python 操作数据库工具总结

1 Python连接sqlite3

sqlite3是一种文件数据库,Python内置了sqlite3驱动:

import sqlite3

# 数据库连接
con = sqlite3.connect('mydata.sqlite')
# 执行sql-建表语句
query = "CREATE TABLE test (a VARCHAR(20), b VARCHAR(20), c REAL,        d INTEGER);"
con.execute(query)
con.co

Read more

人体部位组成

1 骨骼

1.1 脊柱

脊柱是一个复杂的结构,由多个椎骨(vertebrae)组成,它连接了头部和身体的下半部分,不仅提供了支撑和稳定性,还保护了脊髓。以下是脊柱的主要构成:

  • 椎骨(Vertebrae):脊柱由多个椎骨组成,它们堆叠在一起形成一个弯曲的柱状结构。椎骨之间通过弹性的软骨盘连接,允许脊柱进行运动并吸收冲击。脊柱是由26块椎骨(颈椎7块,胸椎12块,腰椎5块,1块骶骨和1块尾骨)组成
  • 椎骨分区:脊柱分为不同的部分,包括颈椎(cervical)、胸椎(thoracic)、腰

Read more