分类目录归档:学习

向量数据库

1 向量数据库概述

“向量数据”:向量数据是由多个数值组成的序列,可以表示数据的大小和方向

向量数据库是一种专门用于存储和查询向量数据的数据库系统,

  • 与传统数据库相比,向量数据库使用向量化计算,能够高速地处理大规模的复杂数据
  • 可以处理高维数据,例如图像、音频和视频等,解决传统关系型数据库中的痛点
  • 支持复杂的查询操作,也可以轻松地扩展到多个节点,以处理更大规模的数据

Read more

Python 常用技巧

1 清理 PIP 缓存

# Credits: https://linuxhandbook.com/clear-pip-cache/
pip cache info # 查看缓存信息
pip cache list # 查找各个包的缓存
pip cache dir # 查找缓存所在的目录
pip cache remove [package_name] # 从缓存中删除特定包
pip cache remove *

Read more

Streamlit 官方文档

1 基本介绍

Streamlit 是一个 Python 库,能够用于使用 Python 创建可交互的、数据驱动的网页应用

pip install streamlit # 安装
streamlit hello # 测试安装是否成功

启动命令:streamlit run your_script.py [-- script args]

快速上手:Streamlit 快速上手

官方文档 - 完整API参考 官方文档 - 常见故障排查

常用技巧:

  • 点击页面右上角配置”始终重新运行“,这样代码修改后页面会自动更新
  • 针对计算量大的函数可添

Read more

Streamlit 快速上手

Read more

线性判别分析 LDA

LDA 算法是一种监督学习的降维技术

  • LDA 算法将高维空间中的d维数据通过投影转化成1维数据进行处理
  • 对于训练数据,LDA 算法会让同类数据的投影点尽可能接近,异类数据尽可能远离
  • 对于新数据分类,LDA 算法会先进行数据投影,再根据投影点位置来确定样本的类别

  • 左图思路:让不同类别的平均点距离最远的投影方式
  • 右图思路:让同类别的数据距离最近的投影方式

LDA算法降维流程如下:

​ 输入:数据集 $D = { (x_1,y_1),(x_2,y_2), ... ,(x_m,y_m) }$,其中样本 $x_i$ 是n维向量,$y_i \in {C_1, C_2, ..., C_k}$

Read more

调参与训练

1 传统机器学习

1.1 XGBoost

最常用的10个超参数(原生API,兼容Scikit-learn的API,常见取值范围):

  • num_boost_round:训练期间所需要的基学习器数量,默认100;在应对较大数据集时,一般控制在5000~10000左右(影响训练时间的重要因素);一个常用技巧是先设定一个较高的数值,然后结合early-stopping来获得一个较优的模

Read more

DBSCAN密度聚类

1 DBSCAN算法概况

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基于密度的、对噪声鲁棒的空间聚类方法)是一种基于密度的经典聚类算法

2 DBSCAN算法细节

  1. 遍历所有样本,寻找关键的核心点(邻域内样本数>=MinPoints)
  2. 核心点及其邻域内的样本(包括其他核心点)形成了临时聚类簇
  3. 当核心点A属于核心点B的临时聚类簇时,合并两处临时聚类簇
  4. 重复以上过程,直至找不到新的可合并临时聚类簇

Read more

启发式算法总结

1 启发式算法

启发式算法(Heuristic Algorithms)通常是以问题为导向的(Problem Specific),没有一个通用的框架,每个不同的问题通常设计一个不同的启发式算法,通常被用来解组合优化问题

普通启发式算法一般是一种贪婪算法,需要根据特定问题进行特定设计

贪婪算法,也叫贪心算法

其基本思想是:每一步都采取当前状态下最好的选择,而不考虑全局最优解是否已经达到。在每一步中,贪心算法都会做出一个贪心决策,即选择当前状态下最优的解决方案,并且不考虑这个决策可能会导致的未来后果

以经典的装包问

Read more

蚁群算法

1 基本概念

蚁群算法(Ant Colony Algorithm,ACA)由Marco Dorigo于1992年在他的博士论文中首次提出,该算法模拟了自然界中蚂蚁的觅食行为。

蚂蚁寻径的生物过程:

  • 蚂蚁在寻找食物源时,会在其经过的路径上释放一种信息素,并能够感知其它蚂蚁释放的信息素。信息素浓度的大小表征路径的远近,信息素浓度越高,表示对应的路径距离越短
  • 通常,蚂蚁会以较大的概率优先选择信息素浓度较高的路径,并释放一定量的信息素,以增强该条路径上的信息素浓度,这样,会形成一个正反馈
  • 最终,蚂蚁能够找到一条从巢穴到食物源的最佳路径,

Read more

NP-Hard问题

1 基本概念

P问题:能在多项式时间内解决的问题,比如快速排序/冒泡排序

NP问题:能在多项式时间内验证得出一个正确解的问题(不确保在多项式时间内找到答案)

NP-Complete(NPC)问题:属于NP问题,其他所有属于NP的问题都可以规约成它

规约(Reduction):将问题A转化为问题B,使用问题B的解来解问题A

如果问题A可规约为问题B,说明问题B的时间复杂度要大于或等于问题A的时间复杂度,即问题B的难度一般要比问题A大(毕竟B答案能解A,A不一定能解

Read more