LLM 架构--RAG 应用
向量知识库-检索问答链-知识库助手
LLM 架构--Eval
LLM 应用评估方法 验证评估的一般思路 以调用大模型为核心的大模型开发相较传统的 AI 开发更注重验证迭代。 由于可以快速构建出基于 LLM 的应用程序,在几分钟内定义一个 Prompt, 并在几小时内得到反馈结果,那么停下来收集一千个测试样本就会显得极为繁琐。 因为现在可以在没有任何训练样本的情况下得到结果。 验证 …
LLM 架构--Agent
Agent 简介 在科技发展的历史中,人类一直期望追求智能化的实现,由此的幻想早已先行, 有《机器人总动员》中的瓦力,有《终结者》中的 T-800,也有《最后的问题》中的模, 人们试图打造 一种可以自主完成预设目标的代理或实体,即智能体(AI Agents 或 Agents), 以协助人类完成各种各样繁琐的任务。多年 …
LLM 架构--RAG
RAG 介绍 LLM 会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高, 缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。 正是在这样的背景下,检索增强生成技术(Retrieval-Augmented Generation,RAG)应时而生, 成为 AI 时代的一大趋势。 RAG 通过在语言模型 …
LLM 框架--Gradio
Gradio 简介 Gradio 使用 Gradio API 参考 Gradio 官网
LLM 框架--Vector Database
向量数据库简介 向量数据库是用于高效计算和管理大量 向量数据 的解决方案。 向量数据库是一种专门用于 存储和检索向量数据(embedding) 的数据库系统。 它与传统的基于关系模型的数据库不同,它主要关注的是 向量数据的特性和相似性。 在向量数据库中,数据被表示为向量形式,每个向量代表一个数据项。 这些向量可以是数 …
LLM 框架--Streamlit
Streamlit 介绍 Streamlit 简介 Streamlit 是一个用于快速创建数据应用程序的开源 Python 库。 它的设计目标是让数据科学家能够轻松地将数据分析和机器学习模型转化为具有交互性的 Web 应用程序, 而无需深入了解 Web 开发。和常规 Web 框架,如 Flask/Django 的不同之 …
LLM 框架--Huggingface
Huggging Face NLP ecosystem Transformers Datasets Tokenizers Accelerate Hugging Face Hub NLP 介绍 NLP 任务: Classifying whole sentences: Getting the sentiment of a …
LLM 框架--LangChain
LangChain 简介 框架简介 ChatGPT 的巨大成功激发了越来越多的开发者兴趣,他们希望利用 OpenAI 提供的 API 或者私有化模型, 来开发基于大型语言模型的应用程序。尽管大型语言模型的调用相对简单,但要创建完整的应用程序, 仍然需要大量的定制开发工作,包括 API 集成、互动逻辑、数据存储等等。 为 …
LLM 应用--聚类任务
LLM 应用--聚类任务
LLM 应用--文本生成
LLM 应用--文本生成
LLM 应用--推荐任务
LLM 应用--推荐任务
LLM 应用--句子分类
LLM 应用--句子分类
LLM 应用--Token 分类
LLM 应用--Token 分类
LLM 应用--相似匹配
相似匹配-万物皆可 Embedding Embedding 可以用来表示一个词或一句话。Embedding 和大语言模型有什么关系? 为什么需要 Embedding?在哪里需要 Embedding?上述三个问题可以简单用一句话来概括回答: 因为需要获取“相关”上下文。具体来说, NLP 领域的不少任务以及大语言模型的应 …
LLM 架构--Prompt
预训练模型和 Prompt Pretrain 首先,需要了解什么是预训练模型,以及其带来的 Prerain + Fine-tuning 的范式。 在很长的一段时间内,NLP 的任务采用的都是 Pretrain + Fine-tuning(Model Tuning)的解决方案, 但是这种方案, …
LLM 模型--Gemma
Gemma 模型介绍 Gemma: Google 最新推出开源大语言模型(Google’s new open LLM) 2024 年 2 月 22 日,Google 发布了一系列最新的开放式大型语言模型 – Gemma! Gemma 是基于 Gemini 技术推出的新型大型语言模 …
BPE 算法
Byte Pair Encoder
LLM 应用-Llama 3.1 8B
环境 本地环境 Ubuntu 22.04 Python 3.12 CUDA 12.1 PyTorch 2.3.0 Python Libs # 升级 pip $ pip install --upgrade pip # 更换 pypi 源加速库的安装 $ pip config set global.index-url …
LLM 模型--Llama
Llama 模型简介 Llama 系列大语言模型 是 Meta 开发的,最新的模型是 Llama-3, 作为继 Llama-1、Llama-2 和 Code-Llama 之后的第三代模型, Llama-3 在多个基准测试中实现了全面领先,性能优于业界同类最先进的模型。 纵观 Llama 系列模型,从版本 1 到 3, …
LLM 应用--ChatGPT
ChatGPT 基础 最强表示架构 Transformer 设计与演变 生成语言模型 GPT 进化与逆袭 利器强化学习 RLHF 流程与思想 ChatGPT 应用开发 ChatGPT Embedding 接口 获取给定文本的向量表示 设置 OPENAI_API_KEY 首先要做一些准备工作, …
T5
Transfer Text-to-Text Transformer
GPT
Generative Pre-Training Transformer
Attention
Attention Mechanism
Transformer
Attention Is All You Need
Seq2Seq
Encoder-Decoder
BERT
Bidirectional Encoder Representations from Transformers
语言模型训练
目标函数 下面研究下面三类语言模型的目标函数: Encoder-only 模型:计算双向上下文嵌入(contextual embeddings) 例如,BERT Decoder-only 模型:计算单向上下文嵌入(contextual embeddings),一次生成一个 token 例如,GPT-3 …
语言模型架构
模型概述 从形象化的概念理解上来说当前大语言模型(“大” 体现在模型的规模上)的能力, 其可以根据输入需求的语言描述(Prompt)生成符合需求的结果(Completion),形式可以表达为: $$\text{Prompt} \stackrel{\text{model}}{\leadsto} …
语言模型数据
任何机器学习方法的起点都是训练数据。通常在机器学习中, 训练数据和测试(评估)数据是相似的,或者至少是同一类型的。 但对于大型语言模型来说,训练数据就是 “原始文本”。 大语言模型背后的数据 大型语言模型是在 “原始文本” 上进行训练的。为了实现高度的能力(如语言能力和世界知识), 这些文本应涵盖广泛的领域、类型、语言 …
语言模型概览
语言模型简介 语言模型问题 从统计或统计学习的角度来讲,期望语言模型实现的是 基于给定的文本信息输入, 给出对应的新的文本/符号输出(可以是文本翻译、文本分类、文本扩写)。 要实现这样一个任务要解决两个问题: 输入序列问题:由于输入的是文本信号,而计算机能进入神经网络处理和计算的是数值, 所以需要 将字符通过一定方式转 …
模型预训练
Model Pretrain
GloVe
GloVe 简介 全局词向量表示,Global Vectors for Word Representation, GloVe 除了 Word2Vec 之外,常用的通过训练神经网络的方法得到词向量的方法还包括 GloVe 词向量、fasttext 词向量等等 GloVe 词向量简介 GloVe 词向量直译为全局的词向量表 …
Word2Vec
Word2Vec 简介 嵌入(embedding)是机器学习中最迷人的想法之一。 如果你曾经使用 Siri、Google Assistant、Alexa、Google 翻译, 甚至智能手机键盘进行下一词预测,那么你很有可能从这个已经成为自然语言处理模型核心的想法中受益 在过去的几十年中,嵌入技术用于神经网络模型已有相当 …
Word Embedding
Sequence Representation
模型蒸馏
Model Distilling
FastText
fasttext 算法简介 fasttext 的模型与 CBOW 类似,实际上,fasttext 的确是由 CBOW 演变而来的。 CBOW 预测上下文的中间词,fasttext 预测文本标签。与 Word2Vec 算法的衍生物相同, 稠密词向量也是训练神经网路的过程中得到的 fasttext 的输入是一段词的序列,即 …
NLP-问答系统
NLP 问答系统简介 基于关键词匹配的 NLP 问答系统 基于 FEMA 表抽取实体、关系 基于 Neo4j 图数据库存储 基于 java SpringBoot 框架做后端接口 基于 HanLP 进行实体识别 根据用户输入的问题, 进行设备实体、失效模式实体识别, 名词为设备实体, …
NLP-词性标注
词性标注介绍 词性 是词汇基本的语法属性, 通常称为 词类 词性标注(part-of-speech tagging) 是在给定句子中判断每个词的语法范畴, 确定其词性并加以标注的过程. 例如: 表示人、地点、事物以及其他抽象概念的名称即为 名词 表示动作或状态变化的词为 动词 描述或修饰名词属性、状态的词为 形容词 词 …
NLP-纠错
NLP-纠错
NLP-特征提取
feature_extraction.text.CountVectorizer feature_extraction.text.HasingVectorizer feature_extraction.text.TfidfTransformer …
NLP-文本聚类
无监督学习 无监督学习希望能够发现数据本身的规律和模式, 与监督学习相比, 无监督学习不需要对数据进行标记。这样可以解决大量人力、物力, 也可以让数据的获取变得非常容易。 某种程度上说, 机器学习的终极目标就是无监督学习。从功能上看, 无监督学习可以帮助我们发现数据的“簇”, 同时也可以帮助我们找寻“离群 …
NLP-文本分类
TODO 文本分类算法综述 一文总结文本分类必备经典模型 文本分类任务简介 一般, 文本分类大致分为以下几个步骤: 定义阶段 定义数据以及分类体系, 具体分为哪些类别, 需要哪些数据 数据预处理 对文档做分词、去停用词等准备工作 数据提取特征 对文档矩阵进行降维, 提取训练集中最有用的特征 模型训练阶段 选择具体分类模 …
NLP-指代消解
NLP-指代消解
NLP-情感分析
情感分析简介 情感分析介绍 随着互联网的飞速发展, 越来越多的互联网用户从单纯的信息受众, 变为互联网信息制造的参与者。互联网中的博客、微博、论坛、 评论等这些主观性文本可以是用户对某个产品或服务的评价, 或者是公众对某个新闻事件或者政策的观点。 潜在的消费者在购买某个产品或者服务时获取相关的评论可以作为决策参考, 政 …
NLP-命名实体识别
命名实体识别介绍 命名实体识别简介 命名实体识别(NER, Named Entity Recognition)是自然语言处理的一个基础任务, 是信息抽取、信息检索、机器翻译、问答系统等多种自然语言处理技术必不可少的组成部分。 命名实体识别的目的是识别语料中的人名、地名、组织机构名等命名实体。 由于这些命名实体数量不断增 …
NLP-句法分析
TODO NLP基础任务 - 句法分析简介 句法分析介绍 在自然语言处理中, 机器翻译是一个重要的的课题, 也是 NLP 应用的主要领域, 而句法分析是机器翻译的核心数据结构。句法分析是自然语言处理的核心技术, 是对语言进行深层次理解的基石 句法分析的主要任务是识别出句子所包含的 句法成分 以及这些 成分之间的关系, …
NLP-分词
中文分词 在语言理解中, 词是最小的能够独立活动的有意义的语言成分. 将词确定下来是理解自然语言的第一步, 只有跨越了这一步, 中文才能像英文那样过渡到短语划分、概念抽取以及主题分析, 以致自然语言理解, 最终达到智能计算的最高境界. 词 的概念一直是汉语言语言学界纠缠不清而又绕不开的问题. 主要难点在于汉语结构与印欧 …
NLP-关键词提取
关键词提取介绍 关键词是代表文章重要内容的一组词。对文本聚类、分类、自动摘要等起重要作用。 此外, 它还能使人们便捷地浏览和获取信息。类似于其他的机器学习方法, 关键词提取算法一般也可以分为有监督和无监督两类: 有监督的关键词提取方法主要是通过分类的方式进行, 通过构建一个较为丰富和完善的词表, 然后通过判断每个文档与 …
NLP-Solr 搜索引擎
Solr 简介 基于关键字查询的搜索引擎 缺点: 难以构造出准确表达用户需求的查询请求, 返回的结果冗余甚至无用的信息多 基于 NLP 处理的搜索引擎 优点: 能够更好地理解用户的查询意图, 更准确地推荐相关查询请求, 并且高效地返回更相关的查询结果 Lucene Lucene 是一个基于 Java 的全文信息检索工具 …
序列预测算法
序列预测 当可以预测某个特定事件可能会在另一个事件之后发生时,就需要进行序列预测,而且我们需要预测整个事件。 序列预测是一类广泛应用于各个行业的重要问题,例如: 网页预取-给定用户访问的网页序列,浏览器可以预测用户访问的最有可能的页面并预加载它。这会节省时间和改善用户体验。 产品推荐-根据用户将产品添加到其购物列表中的 …
根因分析
通过监控系统运行状态(状态监控),运维人员需要分析其中的故障点(故障检测), 并通过回溯排查问题的源头(根因分析,RCA),进而对系统进行管理(控制策略及控制信号生成), 以使系统运行恢复正常或保持平稳 异常检测能够自动发现问题,而根因定位能够在发现问题的基础上进一步深入定位问题发生的具体维度。 结合数据指标体系、异常 …
埋点
Data Buried Point 流量统计的基础-埋点 所谓埋点就是在应用中特定的流程收集一些信息,用来跟踪应用使用的状况, 后续用来进一步优化产品或是提供运营的数据支撑,包括 访问(Visits) 访客(Visitor) 停留时间(Time On Site) 页面查看(Page Views,又称为页面浏览) 跳出 …
用户画像
TODO https://github.com/PanJianning/DCIC-2019-Credit-2th-Place https://github.com/C-rawler/DCIC-2019-Credit-intelligence-score-2th-Place …
A/B test
什么是 AB test? A/B test 是为同一个目标制定两个方案,在同一时间维度,分别让组成成分相同(相似)的用户群组随机的使用一个方案, 收集各群组的用户体验数据和业务数据,最后根据显著性检验分析评估出最好版本正式采用 A/B test 核心在于:对一个要素有两个版本(A/B),并且有度量哪个更成功的指标的情况 …
因果推断
导论 什么是因果推断 “因果推断是由理论和对制度细节的深入了解共同撬动的一个杠杆,通过这一手段, 我们得以评估事件和选择(events and choices)对我们感兴趣的结果所带来的影响。” – Scott Cunningham 相关性与因果推断 最优化使一切变得内生 示例 统计与图 概率与回归知识 有 …
贝叶斯网路
贝叶斯网路
概率论
随机事件 随机现象 概率论与数理统计研究的的对象是随机现象。概率论是研究随机现象的模型(即概率分布), 数理统计是研究随机现象的数据收集和处理。 在一定条件下,并不总是出现相同结果的现象称为 随机现象,只有一个结果的现象称为 确定性想象。 随机现象有两个特点: 结果不止一个; 哪一个结果出现,人们事先并不知道; 对在相 …
相关性
相关性 相关系数衡量的是两个变量同时变化的程度和方向,比如身高和体重,体重一般随着身高增加而增加, 在很多情况下,我们处理的对象都是连续变量与连续变量之间的关系,但是还有离散变量与离散变量, 连续变量与离散变量。 相关系数 皮尔逊相关系数 斯皮尔曼等级相关系数 Kendall 等级相关系数 相关性检验 参考 相关系数: …
Sobol 灵敏度分析
Sobol 灵敏度分析
DoWhy:因果推断框架
因果推断(causal inference)是基于观察数据进行反事实估计,分析 干预 与 结果 之间的因果关系的一门科学。 虽然在因果推断领域已经有许多的框架与方法,但大部分方法缺乏稳定的实现。 DoWhy 是微软发布的一个用于进行端到端因果推断的 Python 库,其特点在于: 提供了一种原则性的方法将给定的问题转化 …
统计方差分析
方差分析简介 对于多个总体均值的比较问题, 处理这类问题通常采用所谓的方差分析方法 方差分析理论 单因子方差分析 问题描述: 通常, 在单因子试验中, 记因子为 $A$ , 设其有 $r$ 个水平, 记为 $A_{1}, A_{2}, \cdots, A_{r}$ , 在每一个水平下考察的指标可以看成一个总体, …
统计因子分析
参考 因子分析的原理 利用Python简洁快速实现因子分析
统计因果分析
因果分析(Causal Analysis)是分析变量彼此之间的因果关系。 因果推断(Casual Inference)是基于原因推结果,是因果分析的一部分。 因果分析是数据分析、数据科学中重要的方法,广泛应用于 A/B Test、异常分析、用户增长等领域。 因果分析基础 因果分析的概念 因果 原因和结果 因果关系 原因 …
读统计之都《因果推断简介》系列文章
统计之都的《因果推断简介》系列文章是 2019 年的一些旧文章,作者是伯克利统计系的老师,研究方向是因果推断,不经意间看到了这个系列,也被统计之都最近一段时间推的关于因果推断的文章标题洗脑,恰巧工作中遇到了一些数据分析的问题,感觉可以用因果推断尝试去解决一下。 Yule-Simpson’s Paradox …
统计假设检验
假设检验 假设检验(Hypothesis Test)是由 K.Pearson 于 20 世纪初提出的, 之后由费希尔进行了细化,并最终由 Neyman 和 E.Pearson 提出了较完整的假设检验理论。 假设检验作为统计学的一项重要模块,是用来判断样本与总体的差异是由抽样误差引起还是本质差别造成的统计推断方法。 假设 …
统计学知识
概述 整理一下统计学中常用的概念、方法论. 作为一个统计学出身的人, 遇到这些问题时希望不要被难倒 内容大致包含: 大数定律、中心极限定理 贝叶斯公式、贝叶斯定理 参数估计 点估计、区间估计 最大似然估计与EM算法 假设检验 A/B test 方差分析 回归分析 主成分分析 因子分析 聚类分析 统计显著性 大数定律与中 …
贪心算法
贪心算法 分数背包问题 最大容量问题 最大切分乘积问题
数据结构
数据结构分类 常见的数据结构包括:数组、链表、栈、队列、哈希表、树、堆、图, 它们可以从“逻辑结构”和“物理结构”两个维度进行分类。 逻辑结构: 线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系: 在数组和链表中,数据按照一定顺序排列,体现了数据之间的线性关系; 在树中,数据从顶部向下按层次排列,表现出“祖先”与“后 …
分治算法
分治算法 分治搜索策略 构建树问题 汉诺塔问题
算法复杂度分析
Algorithm complexity analysis 算法效率评估 算法设计中追求的两个目标: 找到问题的解法 寻求最优解法 在能够解决问题的前提下,衡量算法优劣的评价指标是算法效率,它包括两个维度: 时间效率:算法运行速度的快慢 空间效率:算法占用内存空间的大小 我们的目标是设计“既快又省”的数据结构与算法。而 …
搜索算法
二分查找 二分查找(binary search)是一种基于分治策略的高效搜索算法。 它利用数据的有序性,每轮缩小一般搜索范围,直至找到目标元素或搜索区间为空为止。 二分查找算法的输入是一个有序的元素列表,如果要查找的元素包含在列表中, 二分查找返回其位置;否则返回 null。 一般而言, 对于包含 n 个元素的列表, …
排序算法
排序算法概述 排序算法(sorting algorithm)用于对一组数据按照特定顺序进行排列。 排序算法有着广泛的应用,因为有序数据通常能够被更高效地查找、分析和处理。 如下图所示,排序算法中的数据类型可以是整数、浮点数、字符或字符串等。 排序的判断规则可根据需求设定,如数字大小、字符 ASCII 码顺序或自定义规 …
回溯算法
回溯算法 全排列问题 子集和问题 N 皇后问题
数据结构与算法概览
日常生活中的算法 查字典:二分查找 整理扑克:插入排序 货币找零:贪心算法 … 算法 算法(algorithm)是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性: 问题是明确的,包含清晰的输入和输出定义。 具有可行性,能够在有限步骤、时间和内存空间下完成。 各步骤都有确定的含义,在相同的输入 …
时间序列数据信息
趋势 Trend 趋势是时间序列的基本组成部分之一。它表示数据均值的长期变化,如图 1 所示。 此图显示了一个示例时间序列,表示一家航空公司随时间变化的每月乘客数量。 时间序列的平均水平随时间增加,代表明显的上升趋势。 一些学习算法难以处理时间序列的趋势分量。因此,通常建议将其删除以获得时间序列的最佳建模。 您可以使用 …
时间序列可视化
时间序列图形 时间序列的时间结构 Line Plots Lag Plots or Scatter Plots Autocorrelation Plots 时间序列的分布 Histograms and Density Plots 时间序列间隔上分布 Box and Whisker Plots Heat Maps 时间序列 …
时间序列预处理
时间序列示例数据 澳大利亚墨尔本市10年(1981-1990年)内的最低每日温度 import pandas as pd import matplotlib.pyplot as plt series = pd.read_csv( …
tsmoothie
时间序列平滑和异常检测
GluonTS
深度学习、概率预测
TODS 异常检测
TODS 异常检测简介 TODS 是一个全栈的自动化机器学习系统,主要针对多变量时间序列数据的异常检测。 该系统可以处理三种常见的时间序列异常检测场景:点的异常检测(异常是时间点)、模式的异常检测(异常是子序列)、 系统的异常检测(异常是时间序列的集合)。TODS 提供了一系列相应的算法 TODS 特点 TODS 具有 …
Pandas-Timeseries
Pandas 提供了多种功能来支持时间序列数据。以下主要功能对于使用 Pandas 进行时间序列预测非常重要: 解析来自各种来源和格式的时间序列信息 生成固定频率日期和时间跨度的序列 利用时区信息处理和转换日期时间 将时间序列重采样或转换为特定频率 以绝对或相对时间增量执行日期和时间运算 Pandas 支持的四个与时间 …
pmdarima
Auto ARIMA
pyts
时间序列分类
tslearn
预测
tsfresh
机器学习特征工程
Statsmodels
statistical models, hypothesis tests, and data exploration 安装 依赖 Python >= 3.7 NumPy >= 1.17 SciPy >= 1.3 Pandas >= 1.0 Patsy >= 0.5.2 Cython …
cesium
特征工程
AutoTS
AutoTS 简介 AutoTS is a time series package for Python designed for rapidly deploying high-accuracy forecasts at scale. 朴素模型 统计模型 机器学习模型 深度学习模型 所有模型都支持预测多变量(多个时间序 …
时间序列分析观点
问题:LSTM 模型时间序列预测结果可能比线性回归的结果差 如果序列中随机变化的趋势频繁出现,且训练数据中找不到很好的规律,自回归的模型会选择用近期值作为预测值输出(因为学习难度最易的情况下误差能有效控制在一定范围),于是出现预测滞后(非平稳序列预测的场景情况)。 对此,会差分、log 等平稳操作,对输入序列做转换,数 …
风力涡轮机有功功率预测比赛观摩
风力发电机功率预测问题 任务定义 2022 年 kdd cup 提供了龙源电力集团有限公司独特的空间动态风力预测数据集:SDWPF, 其中包括:风力涡轮机的空间分布,以及时间、天气和涡轮机内部状态等动态背景因素。 预测目标是 134 个风机各自在未来 288 个时刻(共 2 天)下的输出功率 需要在 48 小时之前解决 …
基本规则法
时间序列基本面规则法介绍 要预测一个时间序列,我们首先需要发现其变化的规律。最基本的方法,就是通过人工经验, 挖掘时序数据的演化特征,找到时序变化的周期,从而预估时间序列的未来走势。 具体的观察一个时间序列,当序列存在周期性时,提取时间序列的周期性特征进行预测 时间序列基本规则法(周期因子法)思想: 提取时间序列的周期 …
深度学习方法
深度学习方法 关于基于深度学习的算法,可以自己写一篇很长的文章来解释有关每种架构的所有细节。 但是本文只提供一些常用的时间序列分类基准模型和技术 虽然基于深度学习的算法在计算机视觉和 NLP 等领域非常流行并得到广泛研究,但它们在时间序列分类领域却并不常见。 Fawaz 等人。在他们关于时间序列分类的深度学习的论文中对 …
动态时间规整
DTW 介绍 DTW,Dynamic time warping,动态时间归整(扭曲) warping 指对序列进行压缩或扩展 动态时间归整,简称 DTW,该算法在 1970 年左右被提出来,最早用于处理语音识别分类的问题, 是一种计算两个数据序列之间的最佳匹配的技术。 DTW 的核心思路是,利用动态规划方法,对两个序列 …
时间序列分类
时间序列分类介绍 时间序列分类数据不同于常规分类问题,因为属性具有有序的序列 常用时间序列分类应用 ECG/EEG 信号分类 心电图(ECG,Electrocardiogram)记录着心脏的电活动,被广泛地用于诊断各种心脏问题。 这些心电信号是用外部电极捕捉的。例如,考虑下面的信号样本,它表示一个心跳的电活动。 左边的 …
LSTM 时间序列预测
目标 CSV 文件中包含了谷歌从 2001-01-25 到 2021-09-29 的股票数据,数据是按照天数频率的 预测 Open 列的未来值 Python 依赖 import numpy as np import pandas as pd from matplotlib.pyplot as plt from …
时间序列聚类
时间序列聚类算法简介 时间序列的聚类在工业生产生活中非常常见,大到工业运维中面对海量 KPI 曲线的隐含关联关系的挖掘, 小到股票收益曲线中的增长模式归类,都要用到时序聚类的方法帮助发现数据样本中一些隐含的、深层的信息 根据对时间序列的距离度量方法,可以采用机器学习中很多聚类算法 时间序列聚类算法 K-Means …
时间序列异常值检测
Anomaly Detection
随机漫步
随机漫步简介 百度百科 Python 示例 import random """ 随机漫步生成是无规则的,是系统自行选择的结果. 根据设定的规则自定生成,上下左右的方位,每次所经过的方向路径. """ class Randomwalk(): """ …
卡尔曼滤波
卡尔曼滤波简介 卡尔曼滤波(Kalman Filter, KF) 是一种优化估算算法(Optimal Estimation Algorithm), 常用于制导与导航控制系统、计算机视觉系统和信号处理领域。 实际作用主要是:从受误差影响的传感器测量中估算出最佳的系统状态。 什么是卡尔曼滤波? 可以在任何含有不确定信息的动 …
滤波算法
限幅滤波 限幅滤波也叫程序判断滤波法 方法: 根据经验判断, 确定两次采样允许的最大偏差值, 假设为 $\delta$, 每次检测到新的值时判断: 如果本次值与上次值之差小于等于 $\delta$, 则本次值有效 如果本次值与上次值之差大于 $\delta$, 则本次值无效, 放弃本次值, 用上一次值代替本次值 优点: …
时间序列特征
简单的统计描述 依据时间序列数据计算得到的特征数都可用于描述该时间序列,如平均值、最小值或最大值。 ACF 特征 一个序列的所有自相关都可以视为该序列的特征。还可以总结自相关以产生新特征。 例如,总和前 10 个自相关系数的平方是一个有用的总结,说明一个序列中有多少自相关,而不管滞后。 还可以计算周期之间序列变化的自相 …
时间序列分解、移动平均
时间序列数据通常有很多种潜在模式,因此一种有效的处理时间序列的方式是将其分解为多个成分, 其中每个成分都对应一种基础模式。 一般有三种基础的时间序列模式:趋势性、季节性和周期性。当我们想要把时间序列分解为多个成分时, 我们通常将趋势和周期组合为趋势-周期项(有时也简单称其为趋势项),因此,我们认为时间序列包括三个成分: …
时间序列回归模型
线性回归模型的核心思路是:我们预测时间序列 $y$ 时假设它与其它时间序列 $x$ 之间存在线性关系。 例如,我们可以通过广告总花费 $x$ 来预测月度销量 $y$;同样的, 我们可以通过气温数据 $x_{1}$ 和星期数据 $x_{2}$ 来预测日耗电量 $y$。 被预测变量 $y$ 有时还称作回归变量、因变量或被解 …
指数平滑
指数平滑是在 20 世纪 50 年代后期提出的(Brown, 1959; Holt, 1957; Winters, 1960), 其激发了一些十分成功的预测方法。 使用指数平滑方法生成的预测是过去观测值的加权平均值, 并且随着过去观测值离预测值距离的增大,权重呈指数型衰减。换句话说,观察值越近,相应的权重越高。 该框架 …
AIRMA 模型
ARIMA 模型提供了另一种时间序列预测的方法。 指数平滑模型(exponential smoothing)和 ARIMA 模型是应用最为广泛的两种时间序列预测方法, 基于对这两种预测方法的拓展,很多其他的预测方法得以诞生。 与指数平滑模型针对于数据中的趋势(trend)和季节性(seasonality)不同, …
时间序列图形
目录 时间序列数据探索性分析 R 语言知识 tsibble 对象 索引变量 关键变量 tsibble 对象的处理 读取 CSV 文件并将其转化为 tsibble 对象 季节性周期 时间序列模式 趋势 季节性 周期性 季节性与周期性的区别 时间序列模型示例 时间序列图形 时间图 季节图 季节图 多重季节性周期 子序列季节 …
预测:方法与实践
预测 什么是可以被预测的? 可预测性需要满足的条件 事件(或数量)的可预测性取决于一下几个因素: 我们对它的影响因素的了解程度; 有多少历史数据是可用的; 未来与过去的相似程度; 预测是否会影响我们试图预测的事物。 例如,对居民用电需求可以非常准确地预测,因为通常这四个条件都可以满足的: 我们很好地了解它的影响因素:电 …
Deep Time Series Models 总结
一、研究背景与意义 时间序列数据特性:时间序列是按离散时间顺序组织的数据点序列,广泛存在于金融风险评估、能源可持续性、天气预报等现实场景。 与图像、文本数据不同,其语义信息主要源于时间变化,存在非线性模式与时间变异趋势交织的独特挑战,需复杂方法提取有意义的时间表征。 研究发展历程:时间序列分析已有数百年研究历史,早期依 …
【Paper】TimeXer:融合外生变量的时间序列预测 Transformer 模型
一、研究背景与问题 时间序列预测的现实需求:时间序列预测在气象、电力、交通等领域应用广泛, 但现实场景中数据常存在部分观测特性,仅依赖目标变量(内生变量)难以保证预测准确性。 外生变量的重要性:外生变量(如经济指标、人口变化、社会事件等)能为内生变量预测提供关键外部信息。 例如,电价预测需结合市场供需等外生变量,仅靠历 …
【Paper】Time-series Dense Encoder(TiDE):长期时间序列预测模型研究总结
一、研究背景与动机 长期时间序列预测的重要性:长期时间序列预测(基于长历史窗口预测未来多步)是时间序列分析的核心问题,在能源、金融、交通等领域应用广泛。 现有模型的局限: 深度学习模型(如 Transformer 类模型,包括 Informer、Autoformer 等)虽曾被认为是长期预测的先进方案,但近年研 …
【Paper】PatchTST:A Time Series is Worth 64 Words:Long-Term Forecasting with Transformers
一、论文基本信息 发表会议:ICLR 2023 作者团队:Yuqi Nie(普林斯顿大学)、Nam H. Nguyen、Phanwadee Sinthong、Jayant Kalagnanam(IBM 研究院) 核心主题:提出基于 Transformer 的高效模型 PatchTST,用于多变量时间序列预测和自监督表示 …
【Paper】iTransformer
参考 iTransformer: 倒置Transformer,刷新时序预测新纪录
【Paper】WaveNet
论文简介 论文名称: 论文地址: 模型代码: 历史研究和瓶颈 论文贡献 问题定义 模型定义 实验结果 总结 参考
机器学习预测方式
为什么时间序列预测很难 机器学习和深度学习已越来越多应用在时序预测中。ARIMA 或指数平滑等经典预测方法正在被 XGBoost、 高斯过程或深度学习等机器学习回归算法所取代。 尽管时序模型越来越复杂,但人们对时序模型的性能表示怀疑。 有研究表明,复杂的时序模型并不一定会比时序分解模型有效。 时间序列是按时间排序的值, …
时间序列预测模型
预测方法 时间序列分析的一个目标是借助历史数据反映出的客观规律,对序列的未来观测值进行预测。下面简单介绍常用的预测方法, 用 $\hat{y}_{T+h|T}$ 表示基于 $T$ 时刻的信息构造的对 $h$ 时刻后(即 $T+h$ 时刻)的 $y$ 的预测值。 均值预测法 均值(average 或 mean)预测是指采 …
机器学习预测模型应用 DEMO
# -*- coding: utf-8 -*- # *************************************************** # * File : ml_forecasting.py # * Author : Zhefeng Wang # * Email : …
【Paper】N-BEATS
论文简介 题目:N-BEATS: Neural Basis Expansion Analysis for Interpretable Time Series Forecasting. 代码:https://github.com/ElementAI/N-BEATS 历史研究和瓶颈 在 M4 竞赛中,前排基本都用机器学习的 …
【Paper】 FEDformer
论文简介 论文名称:FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting. 论文地址:https://proceedings.mlr.press/v162/zhou22g/zhou22g.pdf 模型代 …
Deep Time Series Models 综述
论文信息 论文名称:Deep Time Series Models: A Comprehensive Survey and Benchmark 论文地址:https://arxiv.org/abs/2407.13278 论文代码:https://github.com/thuml/Time-Series-Library …
【paper】TimesNet
论文信息 论文名称:TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis 论文地址:https://openreview.net/pdf?id=ju_Uqw384Oq 论文代 …
【Paper】 Autoformer
论文信息 论文名称:Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting. 论文地址:https://arxiv.org/abs/2106.13008 论文代码: …
【Paper】TFT:Temporal Fusion Transformers
论文简介 论文:Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting 作者:牛津大学和谷歌云AI 代 …
【Paper】LTSF-Linear
论文简介 论文名称:Are Transformers Effective for Time Series Forecasting? 论文地址:https://arxiv.org/abs/2205.13504 模型代码:https://github.com/cure-lab/LTSF-Linear …
VAR
向量自回归模型
Theta
Theta 介绍 Theta 模型基本上依赖于分解。我们知道时间序列可以分解为三个部分:趋势部分、季节性部分和残差。 因此,将序列分解为各个组成部分,对未来预测每个组成部分,并将每个部分的预测组合成最终预测,是一个合理的做法。 不幸的是,在实践中这并不奏效,尤其是因为很难分离残差并对其进行预测。 因此,Theta 模型 …
【Paper】TBATS
论文简介 历史研究和瓶颈 论文贡献 问题定义 模型定义 实验结果 总结 资料
【Paper】Informer
论文简介 论文名称:Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting. 论文地址:https://arxiv.org/abs/2012.07436 论文代码: …
【Paper】LSTNet
论文简介 历史研究和瓶颈 论文贡献 问题定义 模型定义 实验结果 总结 资料 参考 LSTNet详解 paper code
【Paper】DeepAR
论文简介 题目:DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks 作者:亚马逊 代码:https://github.com/husnejahan/DeepAR-pytorch 简介:一种使用自回归 RNN …
【Paper】AR-Net
论文简介 论文名称:AR-Net: A simple Auto-Regressive Neural Network for time-series. 论文地址:https://arxiv.org/pdf/1911.12436.pdf 论文代码:https://github.com/ourownstory/AR-Net …
时间序列非平稳时序模型
非平稳时间序列分析介绍 在自然界中绝大部分序列都是非平稳的,因而对非平稳序列的分析更普遍、更重要。 对于非平稳时间序列分析,根据残差序列的方差是否相同,时序分析可以分为两种: 残差序列具有同方差性 差分自回归移动平均模型(Autoregressive Integrated Moving Average, ARIMA) …
时间序列统计性时域分析
统计性时域分析 统计性时域分析主要是横向挖掘时序的内生相关关系,其中,描述时序内生相关关系的两个重要统计指标是: 自协方差函数:就是协方差,只不过 $X_{1}$ 和 $X_{2}$ 对应的是时间序列 $X_{t_{1}}$ 和 $X_{t_{2}}$。 之所以前面有个“自”,是因为时间序列 $X_{t_{1}}$ …
时间序列模型评估
时间序列交叉验证 评估性能对预测模型的开发至关重要。交叉验证是一种流行的技术,但是在处理时间序列时, 应该确保交叉验证处理了数据的时间依赖性质,要防止数据泄漏和获得可靠的性能估计。 在时序问题上,需要特别注意不能做随机分割,而需要在时间维度上做前后的分割, 以保证与实际预测应用时的情况一致 对于方法的采用建议如下: 首 …
时间序列平稳性和纯随机性
时间序列平稳性 时间序列分析中的许多方法,如 ARMA、ARIMA、Granger 因果检验等时序预测和分析方法, 都需要时间序列具备平稳性。那么: 什么是时间序列的平稳性呢? 什么序列是平稳时间序列? 什么序列又是非平稳时间序列? 平稳性 时间序列平稳性是指在一组时间序列数据看起来平坦,各阶统计特性(所有统计特征), …
时间序列平滑及预测
时间序列平滑简介 数据平滑通常是为了消除一些极端值或测试误差. 即使有些极端值本身是真实的, 但是并没有反映出潜在的数据模式, 仍需处理 数据平滑方法 差分运算 移动平均 简单移动平均 加权移动平均 指数加权移动平均/ …
时间序列特征工程
时间特征 滑动窗口统计特征 扩展窗口统计特征 时间序列特征 时间序列特征构造基本准则: 构造时序特征时一定要算好时间窗口,特别是在工作的时候,需要自己去设计训练集和测试集, 千万不要出现数据泄露的情况(比如说预测明天的数据时,是拿不到今天的特征的) 针对上面的情况,可以尝试将今天的数据进行补齐 有些特征加上去效果会变 …
Prophet
论文简介 论文:Forecast at Scale 代码:https://github.com/facebook/prophet 文档:https://facebook.github.io/prophet/ 历史研究和瓶颈 ARMA 模型在时间序列的趋势和季节上没有很好的处理, ETA(指数平滑,Exponential …
时间序列预测方式
按输入变量 单变量预测 Univariate Time Series Forecasting, 单变量预测 自回归预测 在单变量时间序列预测中,单个时间序列被建模为其滞后的线性或非线性组合, 其中该序列的过去值用于预测其未来。 多变量预测 Multivariate Time Series Forecasting, 多变 …
时间序列平稳时序模型
平稳时间序列分析介绍 一个时间序列经过预处理被识别为 平稳非白噪声时间序列,就说明该序列是一个蕴含相关信息的平稳序列。 在统计上,通常是建立一个线性模型来拟合该序列的发展,借此提取该序列中的有用信息。 假设一个时间序列经过预处理被识别为 平稳非白噪声时间序列,就可以利用 ARMA 模型对该序列建模。 ARMA(Auto …
时间序列趋势性和周期性
时间序列趋势性检测 移动平均法 在原时间序列内依次求连续若干期的平均数作为其某一期的趋势值, 如此逐项递移求得一系列的移动平均数,形成一个平均数时间序列 时间回归法 使用回归分析中的最小二乘法,以时间 $t$ 或 $t$ 的函数为自变量拟合趋势方程。常用的趋势方程如下 一阶线性方程 二次、多次方程曲线 指数曲线 趋势其 …
小波分析
小波变换的维基百科介绍 小波分析介绍 小波分析(wavelet analysis)或小波变换(英语:wavelet transform)是指用有限长或快速衰减的“母小波”(mother wavelet)的振荡波形来表示信号。该波形被缩放和平移以匹配输入的信号。 “小波”(英语:wavelet)一词由吉恩·莫莱特和阿列克 …
傅里叶变换
傅里叶分析 傅立叶分析(Fourier Analysis) 是研究如何将数学函数分解为一系列更简单的三角函数的领域。 傅立叶变换(Fourier Transfrom) 是该领域的一种工具,用于将函数分解为其分量频率。 傅里叶变换基本概念 傅立叶变换是一种工具,可让您获取信号并查看其中每个频率的功率。基本概念包括: 信 …
探索性数据分析概述
探索性数据分析 探索性数据分析简介 探索性数据分析是上世纪六十年代提出,其方法由美国统计学家 John Tukey 提出的。 探索性数据分析(Exploratory Data Analysis,简称 EDA), 是指对已有的数据(特别是调查或观察得来的原始数据)在尽量少的先验假定下进行探索, 通过作图、制表、方程拟合、 …
单变量数据探索分析
针对单变量观测分析,可以将数据按照类型拆分成数值型、类别型、 时间类型、字符串(object 型)、图像。 数值变量 关于数值变量分析,一般会有下面几点: 是否存在异常值 数据的整体分布情况 基于数值观察 可以直接通过 Pandas 的 describe() 函数去观测数值数据的分位数, 基于分位数判断这些数据是否符合 …
交叉变量探索分析
在数据竞赛或者建模的时候,将变量的交叉分析划分为下面的三大块: 特征和标签的关系分析:重点探讨特征与标签的关系,特征与标签是否强相关等等 特征和特征的关系分析:重点观察特征之间的冗余关系,是否是衍生关系等等 可视化的技巧:特征之间的分析是做不完的,很多情况下一般也就只会看到三阶左右的特征关系, 但是当数据特征字段上百的 …
全局数据探索分析
数据整体观测 先对数据进行简单的观测,对数据有一个简单的了解 import pandas as pd df = pd.read_csv("sample.csv", header = None) df[1] = df[1].astype(str) df[10] = df[10].astype(float) …
基于图论的聚类
基于图论的距离 Affinity Propagation Affinity Propagation,亲和力传播 Affinity Propagation 是一种基于图论的聚类算法,旨在识别数据中的 “exemplars”(代表点)和 “clusters”(簇)。 …
PageRank
PageRank
高斯混合模型
高斯分布 1733年,法国数学家棣莫弗在一个赌博问题的探索中首次发现了正态分布的密度公式,而后由德国数学家高斯将正态分布发扬光大。 高斯在拓展最小二乘法的工作中,引入正态分布作为误差分布,解决了对误差影响进行统计度量的问题, 为后世的参数估计、假设检验等一系列统计分析奠定了基础。高斯关于正态分布的工作对数理统计的发展做 …
核密度估计
核密度估计
层次聚类
层次聚类 层次聚类(Hierarchical)是一个通用的聚类算法家族,它通过连续合并或拆分嵌套聚类来构建嵌套聚类。 这种集群层次结构表示为树(或树状图)。树的根是收集所有样本的唯一簇,叶子是只有一个样本的簇 层次聚类算法的关键是如何计算两个样本点之间以及两个聚类簇之间的距离 计算两个样本点之间的距离 距离矩 …
学习向量量化聚类
算法介绍 LVQ(Learning vector Quantization) 假设数据样本带有类别标记, 学习过程利用样本的这些监督信息来辅助聚类. 给定样本集 $D=\{(x_{1}, y_{1}), (x_{2}, y_{2}), \ldots, (x_{n}, y_{n})\}$, $x_{i} \in …
基于质心的聚类
K-Means 算法原理 初始化数据, 选择 $k$ 个对象作为中心点, 对于 $k$ 的选择, 需要经过交叉验证等方法进行选取; 遍历整个数据集, 计算每个点与每个中心点的距离, 将它们分配给距离中心最近的组; 重新计算每个组的平均值, 作为新的聚类中心; 重复上面的 2-3 步, 直到函数收敛, 不再有新的分组情况 …
基于密度的聚类
DBSCAN 算法原理介绍 基本原理 DBSCAN (Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法, 其可以有效地发现任意形状的簇,并能够处理噪声数据。DBSCAN算法的核心思想是:对于一个给定的数据点, 如果它的密度达 …
基于分布的聚类
高斯混合聚类 算法介绍 高斯混合聚类(Mixture-of-Gaussian)采用概率模型来表达聚类原型. (多元)高斯分布 对 $n$ 维样本空间 $\mathcal{X}$ 中的随机向量 $x$, 若 $x$ 服从(多元)高斯分布, 其概率密度函数为: $$p(x| \mu, …
奇异值分解
SVD
聚类算法概览
聚类算法 聚类是从数据集中挖掘相似观测值集合的方法。聚类试图将数据集中的样本划分为若干个通常是不相交的子集, 每个子集称为一个"簇"(cluster)。通过这样的划分,每个簇可能对应于一些潜在的概念(类别)。 聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者自己来把握。 聚类既能作为一个单独 …
模型选择和调参
Model Selection
二分类评价指标
混淆矩阵 混淆矩阵: 混淆矩阵及其相关指标: 错误率 Error Rate:错误率 错误率是分类错误的样本数占样本总数的比例 定义: $$E(f; D)=\frac{1}{N}\sum_{i=1}^{N}I(f(x_{i}) \neq y_{i})$$ $$ErrorRate(\hat{y}_{i}, …
特征采样-回归任务
参考 Delving into Deep Imbalanced Regression
特征降维
降维和特征选择 在机器学习中,特征降维和特征选择是两个常见的概念。特征降维和特征选择的目的都是使数据的特征维数降低, 但实际上两者的区别是很大,它们的本质是完全不同的 特征选择从数据集中选择最重要特征的子集,特征选择不会改变原始特征的含义和数值,只是对原始特征进行筛选。 而降维将数据转换为低维空间,会改变原始特征中特征 …
特征工程概览
文章 全网写特征工程最通透的 使用sklearn做单机特征工程 数据建模就是从数据中学习到洞见(insights)的过程,这个过程其实是很曲折的,要经过数据的表达、模型的学习两部。其中:数据的表达就是原始数据经过 clean 和 transformer 得到 feaaures 的过程,即为特征工程 特征工程 在机器学习 …
数据集偏移
Data Shift
聚类评价指标
评价指标简介 聚类性能度量亦称聚类"有效性指标"(validity index) 设置聚类性能度量的目的: 对聚类结果,通过某种性能度量来评估其好坏。若明确了最终将要使用的性能度量, 则可直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果 什么样的聚类结果比较好: 簇内相似 …
模型评价指标
在机器学习或者深度学习领域,我们在为待解决的问题生成预测模型后, 需要对这个模型对未知数据的泛化性能进行评估, 性能度量方法就是评估模型泛化能力的评价标准 评价指标常见问题 在机器学习的背景下解释精度和召回率之间的区别 在机器学习模型中,精度和召回率是两个常用的评估指标。 精度是衡量模型在所有正预测中做出的真正正预测的 …
多分类评价指标
Categorization Accuracy Categorization Accuracy,分类准确率 定义: $$logloss = -\frac{1}{N}\sum_{i=1}^{N}I(y_{i} = p_{i})$$ 其中: $N$ 为测试样本的个数 $y_{i}$ 为第 $i$ …
回归和时序评价指标
普通回归 时间序列预测 最常见的时间序列预测损失函数是 MSE、MAE 等点误差函数,这类函数关注每个点的拟合是否准确。 然而,这种损失函数完全忽略了不同点的关系,在时间序列中忽略了各个点的时序关系, 导致了预测结果的形状和真实序列不匹配的问题 针对 MSE 等损失函数的问题,业内提出一种针对时间序列预测问题的 DTW …
模型验证
Model Validation
相似性和距离
相似性度量 欧氏距离(Euclidean Distance) 定义 欧式距离可解释为连接两个点的线段的长度。欧式距离公式非常简单,使用勾股定理从这些点的笛卡尔坐标计算距离 $$D(x, y) = \sqrt{\sum_{i=1}^{n}(x_{i} - y_{i})^{2}}$$ 缺点 尽管这是一种常用的距离度量,但欧 …
模型保存和加载
Model Save & Load
缺失值处理
缺失值处理理论 当缺失数据比例很小时,可直接对缺失记录进行舍弃或进行手工处理 实际数据中,缺失数据往往占有相当的比重,这时如果手工处理,非常低效; 如果舍弃缺失记录,则会丢失大量信息,使不完全观测数据与观测数据间产生系统差异, 对这样的数据进行分析,可能会得出错误的结论 缺失的类型: 在对缺失数据进行处理前, 了解数据 …
特征采样-分类任务
不平衡数据集的问题描述 样本类别样本不平衡(class-imbalance)数据集是指一个类中的示例数量与另一类中的示例数量显著不同的情况。 例如在一个二元分类问题中,一个类只占总样本的一小部分,这被称为不平衡数据集。 类不平衡会在构建机器学习模型时导致很多问题。一般地,常情况下样本类别比例(imbalance …
特征选择
降维和特征选择 在机器学习中,特征降维和特征选择是两个常见的概念。特征降维和特征选择的目的都是使数据的特征维数降低, 但实际上两者的区别是很大,它们的本质是完全不同的 特征选择从数据集中选择最重要特征的子集,特征选择不会改变原始特征的含义和数值,只是对原始特征进行筛选。 而降维将数据转换为低维空间,会改变原始特征中特征 …
特征构建
交互特征 两个特征的乘积可以组成一个简单的交互特征,这样可以捕获特征之间的交互作用。 交互特征的构造非常简单,但是使用起来代价很高 df = pd.DataFrame( {}, columns = ["x1", "x2", "x3", "x4", …
模型融合
Model Fusion
异常值检测及处理
Anomaly Detection
Text
TODO NLP问题15种数据增强方法汇总! 使用 Scikit-Learn 提取文本特征 文本特征 文本特征和类别特征会有一些简单的交集,一些简单的文本特征可以直接当做类别特征处理,例如: 花的颜色:red,blue,yellow 等等 名字:Mr jack,Mr smith,Mrs will,Mr phil 等等 …
Numeric
通过特征提取,能得到未经处理的特征,这时的特征可能有以下问题: 特征尺度 异常值 不属于同一量纲 即特征的规格不一样,不能够放在一起比较。无量纲化可以解决这一问题 常见的无量纲化方法有标准化和区间缩放法。标准化的前提是特征值服从正态分布, 标准化后,其转换成标准正态分布。区间缩放法利用了边界值信息, 将特征的取值区间缩 …
Image
TODO AugMix:我比MixUp要强! 图像数据不足时的处理方法 一个模型所能提供的信息一般来源于两个方面,一是训练数据中蕴含的信息; 二是在模型的形成的过程中(包括构造、学习、推理等),人们提供的先验信息 当训练数据不足时,说明模型从原始数据中获取的信息比较少,这种情况下想要保证模型的效果, …
Categorical
类别特征编码介绍 类别型特征原始输入通常是字符串形式, 除了基于决策树模型的少数模型能够直接处理字符串形式的输入, 其他模型需要将类别型特征转换为数值型特征 在很多表格类的问题中,高基数的特征类别处理一直是一个困扰着很多人的问题,究竟哪一种操作是最好的, 很难说,不同的数据集有不同的特性,可能某一种数据转化操作这 A …
Audio
音频数据了解 音频文件格式介绍 音频文件格式专指存放音频数据的文件的格式, 存在多种不同的格式 一般获取音频数据的方法是: 采用固定的时间间隔, 对音频电压采样(量化), 并将结果以某种分辨率(例如: CDDA 每个采样为 16 比特或 2 字节)存储 采样的时间间隔可以有不同的标准, 如: CDDA …
模型正则化
Model Regularization
XGBoost 安装
Linux 下载源码 $ git clone --recursive https://github.com/dmlc/xgboost 编译 libxgboost.so $ cd xgboost $ make -j4 如果需要支持 GPU,则需要执行以下步骤 $ cd xgboost $ mkdir build $ cd …
LightGBM 安装
LightGBM 的安装非常简单,在 Linux 下很方便的就可以开启 GPU 训练。可以优先选用从 pip 安装,如果失败再从源码安装。 pip 安装 pip install lightgbm pip install --no-binary :all: lightgbm # 从源码编译安装 pip install …
SVM 使用
SVM API 分类 SVC class sklearn.svm.SVC( *, C = 1.0, kernel = 'rbf', # linear, poly, rbf(默认), sigmoid, precomputed degree = 3, gamma = 'scale', …
多分类和多输出算法
Multiclass 分类 Multiclass classification is a classification task with more than two classes. Each sample can only be labeled as one class. …
LightGBM baseline
import numpy as np import pandas as pd import lightgbm as lgb from sklearn.model_selection import KFold from sklearn.metrics import f1_score, roc_auc_score …
XGBoost 使用
参数 通用参数 控制整个模型的通用性能 booster:基本学习器类型,默认 gbtree gbtree:基于树的模型 gblinear:线性模型。gblinear 使用带 l1,l2 正则化的线性回归模型作为基学习器。 因为 boost 算法是一个线性叠加的过程,而线性回归模型也是一个线性叠加的过程。 因此叠加的最终 …
集成学习概览
集成学习 所谓集成学习(ensemble learning),是指利用训练数据集构建多个分类器(弱分类器),并分别对测试数据集进行预测, 然后用某种策略将多个分类器预测的结果集成起来,作为最终预测结果. 通俗比喻就是"三个臭皮匠赛过诸葛亮”, 或一个公司董事会上的各董事投票决策,它要求每个弱分类器具备一定 …
感知机
感知机模型介绍 感知机模型 感知机, perceptron 是由美国学者 Frank Rosenblatt 在 1957 年提出来的, 感知机是神经网络(深度学习)的起源算法. 因此, 学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想, 感知机是神经网络的理论基础. 感知机就是一个通过建立一个线性超平面, …
KNN
KNN 介绍 $k$ 近邻法(k-nearest neighbor, k-NN) 1968 年由 Cover 和 Hart 提出。 KNN 是一种基本分类与回归方法。这里只讨论分类问题中的 KNN。 KNN 的输入为实例的特征向量,对应于特征空间的点;输出位实例的类别,可以取多类 KNN 假设给定一个训练数据集,其中的 …
非线性回归
多项式回归
线性回归
回归分析 回归分析介绍 回归分析属于统计学的基本模型,回归分析(Regression Analysis)是用来确定两个或两个以上变量间关系的一种统计分析方法 在回归分析中,变量有两类:因变量和自变量。因变量通常是指实际问题中所关心的指标,用 $Y$ 表示。 而自变量是影响因变量取值的一个变量,用 $X$ 表示,如果有多 …
LightGBM API
LightGBM 核心数据结构 数据格式 数据保存在 lightgbm.Dataset 对象中 LibSVM(zero-based)、TSV、CSV、TXT 文本文件 可以包含标题 可以指定 label 列、权重列、query/group id 列 可以指定一个被忽略的列的列表 numpy 二维数组 pandas …
GBDT API
GBDT 参数类型 决策树参数 min_samples_split 要分裂的树节点需要的最小样本数量, 若低于某个阈值, 则在此节点不分裂 用于控制过拟合, 过高会阻止模型学习, 并导致欠拟合 需要使用CV进行调参 min_samples_leaf 叶子节点中所需的最小样本数, 若低于某个阈值, 则此节点的父节点将不分 …
CatBoost API
CatBoost 参数 Objectives and metrics Regression MAE MAPE Poisson Quantile RMSE LogLinQuantile Lq Huber Expectile FairLoss NumErrors SMAPE R2 MSLE …
广义线性模型
广义线性模型概览 模型介绍 在统计学上,广义线性模型(Generalized Linear Model, GLM)是一种应用灵活的线性回归模型。 该模型允许因变量的偏差分布有除了正态分布之外的其他分布。 此模型假设实验者所测量的随机变量的分布函数与实验中系统性效应(即非随机的效应)可经由链接函数(link …
广义加性模型
广义加性模型简介 广义加性模型(GAM)作为回归家族的一个扩展,是最强大的模型之一,可以为任何回归问题建模 线性模型简单、直观、便于理解,但是,在现实生活中,变量的作用通常不是线性的。 线性的假设很可能不能满足实际需求,甚至直接违背实际情况 1985 年 Stone 提出加性模型(additive models),模型 …
偏最小二乘回归 PLS
偏最小二乘回归 PLS
SVM
SVM 模型概览 SVM 介绍 支持向量机是 90 年代中期发展起来的基于统计学习理论的一种有监督机器学习方法, 通过寻求结构化风险最小来提高学习器的泛化能力,实现经验风险和置信范围的最小化, 从而达到在统计样本量较少的情况下,也能获得良好的统计规律性 对于一个分类问题,给定样本集,的目的是在样本空间中找到一个划分超 …
Random Forest
随机森林介绍 模型介绍 随机森林是一种有监督学习算法,随机森林非常简单,易于实现,计算开销也很小, 但是它在分类和回归上表现出惊人的性能,因此,随机森林被誉为"代表集成学习技术水平的方法” 随机森林(Random Forest, RF)是一种以决策树为基学习器的集成(ensemble)学习器, …
Decision Tree
决策树介绍 模型介绍 决策树是一种典型的基本分类器,从本质上讲,决策树的分类思想是产生一系列规则, 然后通过这些规则进行数据分析的数据挖掘过程。该分类器的生成和决策过程分为三个部分: 首先,通过对训练集进行递归分析, 生成一棵形状如倒立的树状结构 然后,分析这棵树从根节点到叶节点的路径, 产生一系列规则 最后,根据这些 …
Navie Bayes
模型推导 给定数据集: $\{(x_i, y_i)\}$, 其中: $i = 1, 2, \ldots, N$, $x_i \in R^p$, $y_i \in \{c_1, c_2, \ldots, c_K\}$ 假设 训练数据集 $\{(x_i, y_i)\}, i = 1, 2, \ldots, N$ …
Logistic Regression
Logistic Regression 模型简介 逻辑回归是在线性回归的基础上加了一个 Sigmoid 函数(非线形)映射, 使得逻辑回归成为了一个优秀的分类算法。学习逻辑回归模型,首先应该记住一句话: 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法, 运用梯度下降来求解参数,来达到将数据二分类的目的。 模型 …
CatBoost
CatBoost 简介 CatBoost,Categorical Boosting CatBoost 由俄罗斯公司 Yandex 设计,并于 2017 年在 Github 上开源。在 2017 年刚刚开源的时候, CatBoost 的效果并不理想,而且因为 CatBoost 在 CPU 上训练很慢,并不是很受大家的欢 …
LightGBM
LightGBM 简介 LightGBM 特点 LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed and efficient with …
XGBoost
XGBoost 简介 XGBoost,eXtreme Gradient Boosting XGBoost is an optimized distributed gradient boosting library designed to be highly efficient, flexible and …
AdaBoost
AdaBoost 简介 AdaBoost 是 Boosting 流派中最具代表性的一种模型。AdaBoost,是英文 “Adaptive Boosting”(自适应增强)的缩写, 由 Yoav Freund 和 Robert Schapire 在 1995 年提出 AdaBoost 的自适应在 …
GBDT
GBDT 简介 GBDT 特点 集成学习 Boosting 一族将多个弱学习器(或称基学习器)提升为强学习器, 像 AdaBoost、GBDT 等都属于“加性模型”(Additive Model),即基学习器的线性组合 1997年 Freund 和 Schapire 提出的 AdaBoost 先从初始训练集训练出一个基 …
模型层
归一化层 Normalization 重点说说各种归一化层: $$y = \frac{x - \mathrm{E}[x]}{ \sqrt{\mathrm{Var}[x] + \epsilon}} \cdot \gamma + \beta$$ 结构化数据的 BatchNorm1d 结构化数据的主要区分度来自每个样本特征在 …
激活函数
隐藏层 激活函数在深度学习中扮演着非常重要的角色,它给神经网络赋予了非线性, 从而使得神经网络能够拟合任意复杂的函数。如果没有激活函数,无论多么复杂的网络, 都等价于单一的线性变换,无法对非线性函数进行拟合。 为了增强网络的表示能力和学习能力,激活函数需要具备以下几点性质: 连续并可导(允许少数点上不可导)的非线性函 …
经验总结
机器、深度学习任务问题 二分类 多分类 标量回归 回归问题 回归问题使用的损失函数 均方误差(MSE) 回归问题使用的评估指标 平均绝对误差(MAE) 回归问题网络的最后一层只有一个单元,没有激活,是一个线性层, 这是回归的典型设置, …
模型调参
参数初始化 在神经网络的学习中,权重 $W$ 的的初始值特别重要。 设定什么样的权重初始值,经常关系到神经网络的学习能否成功。 不能将权重初始值全部设为 0,因为在误差反向传播中,所有权重都会进行相同的更新。 比如:在两层神经网络中,假设第 1 层和第 2 层的权重为 0,这样一来,正向传播时, …
损失函数
损失函数 为了使用基于梯度的学习方法,必须选择一个损失函数,并且必须选择如何表示模型的输出。 在大多数情况下,参数模型定义了一个分布 $p(y|x;\theta)$, 并且简单地使用极大似然原理,这意味着使用 训练数据和模型预测间的交叉熵 作为损失函数。 有时使用一个更简单的方法,不是预测 $y$ 的完整概率分布, 而 …
反向传播
计算图 computational graph 计算图将计算过程用图形表示出来,这里的图形是指数据结构图,通过多个节点和边表示。 用计算图解题时,需要按如下流程进行: 构建计算图 在计算图上从左到右进行计算(正向传播,forward propagation) 在计算图上从右到左进行计算(反向传播,backward …
优化算法
神经网络的学习 深度学习算法在很多种情况下都涉及优化,在深度学习涉及的诸多优化问题中, 最难的是神经网络训练。神经网络需要使用训练数据训练合适的权重和偏置, 调整权重和偏置以便拟合训练数据的过程称为 “学习”。 这里的学习就特指神经网络训练中的优化问题。 优化算法 优化算法的功能是通过改善训练方式,来最小化(或最大化) …
RNN
一般地,各种 RNN 序列模型层(RNN、GRU、LSTM 等)可以用函数表示如下: $$h_t = f(h_{t-1},i_t)$$ 这个公式的含义是:$t$ 时刻循环神经网络的输出向量 $h_t$, 由 $t-1$ 时刻的输出向量 $h_{t-1}$ 和 $t$ 时刻的输入 $i_t$ 变换而来 RNN 简介 前馈 …
LSTM
LSTM 简介 Long Short Term Memory networks,LSTM - 让 RNN 具备更好的记忆机制 RNN 问题 梯度爆炸和梯度消失对 RNN 的影响非常大,当 RNN 加深时, 因为梯度消失的问题使得前层的网络权重得不到更新,RNN 的记忆性就很难生效 在传统的 RNN 基础上,研究人员给出 …
GRU
GRU 循环门控单元,Gate Recurrent Unit,GRU GRU 是循环神经网络的一种变体。和 LSTM 一样,GRU 也是为了解 决长期记忆和反向传播中出现的梯度消失和梯度爆炸问题而提出来的。GRU 和 LSTM 在很多种情况 下实际表现相差无几,但 GRU 更容易训练,能够很大程度上提高训练效率 GRU …
GPU 软件
Ubuntu 安装 Nvidia 显卡驱动 最简单的方式是通过系统的软件与更新来安装: 进入系统的图形桌面,打开 Software & Updates 软件,可以看到标签栏有一个 Additional Drivers: NVIDIA Corporation: Unknown Using NVIDIA …
GPU 硬件
概述 深度学习训练通常需要大量的计算资源。GPU 目前是深度学习最常使用的计算加速硬件。 相对于 CPU 来说, GPU 更便宜且计算更加密集 一方面, 相同计算能力的 GPU 的价格一般是 CPU 价格的十分之一; 另一方面, 一台服务器通常可以搭载 8 块或者 16 块 GPU。 因此, GPU 数量可以看作是衡量 …
深度学习概述
深度学习 机器学习 就是从历史数据中探索和训练出数据的普遍规律,将其归纳为相应的数学模型, 并对未知的数据进行预测的过程。在这个过程中会碰到各种各样的问题, 比如下面一系列关乎机器学习模型生死的问题:数据质量、模型评价标准、训练优化方法、过拟合。 在机器学习中,有很多已经相当成熟的模型,在这些机器学习模型中, 人工神经 …
神经风格迁移
神经风格迁移
VAE 深度生成模型
TODO 深入理解生成模型VAE AutoEncoder 自编码器 作为一种无监督或者自监督模型, 自编码器本质上是一种数据压缩方法。 从现有情况来看, 无监督学习很有可能是一把决定深度学习未来发展方向的钥匙, 在缺乏高质量打标数据的监督机器学习时代, 若是能在无监督学习方向上有所突破对于未来深度学习的发展意义重 自编 …
LSTM 生成文本
LSTM 生成文本 本节将会探讨如何将循环神经网络用于生成序列数据。将以文本生成为例, 但同样的 技术也可以推广到任何类型的序列数据, 可以将其应用于音符序列来生成新音乐, 也可以应用于笔画数据的时间序列, 以此类推 序列数据生成绝不仅限于艺术内容生成。它已经成功应用与语音合成和聊天机器人的对话生成。 Google …
GNN
图神经网络
GAN
生成式对抗网络
DeepDream
DeepDream
NLP-spaCy
spaCy 安装 官网安装 # Install spaCy $ pip install spacy $ pip install spacy-nightly --pre # Download model $ python -m spacy en # EN $ python -m spacy download …
NLP-opencc
介绍 Open Chinese Convert(OpenCC,开放中文转换)是一个开源项目,用于在繁体中文, 简体中文和日文汉字(Shinjitai)之间进行转换 支持中国大陆,台湾和香港之间的字符级和短语级转换,字符变体转换以及区域习语. 不是普通话和广东话等之间的翻译工具. 支持词汇等级的转换,异体字转换和地区习惯 …
NLP-gensim
Gensim 简介 Gensim 简介 Gensim is a Free python library Gensim is a topic modelling for humans Train large-scale semantic NLP models Represent text as semantic …
NLP-知识图谱
知识图谱简介 知识图谱定义 知识图谱(Knowledge Graph), 在图书情报界称为 知识域可视化 或 知识领域映射地图, 是 显示知识发展进程与结构关系的一系列各种不同的图形, 用可视化技术描述知识资源及其载体, 挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。 知识图谱是通过将应用数学、图形学、信息可视 …
NLP-Neo4j
Neo4j 介绍 Neo4j 是什么 Neo4j 是一个世界领先的开源图形数据库。它是由 Neo 技术使用 Java 语言完全开发的。 Neo4j是一个高性能的 NOSQL 图形数据库, 它将结构化数据存储在网络上而不是表中。 它是一个嵌入式的、基于磁盘的、具备完全的事务特性的 Java 持久化引擎, 但是它将 结构化 …
语音识别 Speech Recognition
TODO 语音识别 语音数据的表示方式 语音通常是由音频信号构成的, 而音频信号本身又是以声波的形式传递的, 一段语音的波形通常是一种时序状态, 也就是说音频信号是按照时间顺序播放的。 通过一些预处理和转换技术, 可以将声波转换为更小的声音单元, 即音频块. 所以在语音识别的深度学习模型中, 输入就是原始的语音片段经过 …
语音模型 Speech Model
语音模型 Speech Model
机器翻译 Machine Translation
机器翻译 Machine Translation
文本生成 Text Generation
文本生成 Text Generation
ZFNet
ZFNet 简介 在 2013 年的 ILSVRC 大赛中,Zeiler 和 Fergus 在 AlexNet 的基础上对其进行了微调提出了 ZFNet, 使得 top5 的错误率下降到 11.2%,夺得当年的第一 ZFNet 网络结构 参考
VGG-Net
VGG-16、VGG-19
ShuffleNet-v1
ShuffleNet-v1
ResNet
ResNet 简介 梯度消失和爆炸 深度卷积网络一开始面临的最主要的问题是梯度消失和梯度爆炸。那什么是梯度消失和梯度爆炸呢?所谓梯度消失, 就是在深层神经网络的训练过程中,计算得到的梯度越来越小,使得权值得不到更新的情形,这样算法也就失效了。 而梯度爆炸则是相反的情况,是指在神经网络训练过程中梯度变得越来越大,权值得到 …
MobileNet-v1
MobileNet-v1
GoogLeNet
Inception
DenseNet
DenseNet 简介 稠密链接网络,DenseNet ResNet 极大地改变了如何参数化深层网络中函数的观点。DenseNet 在某种程度上 DenseNet 网络结构 稠密块体 DenseNet 使用了 ResNet 改良版的 “批量规范化、激活和卷积” 架构
AlexNet
AlexNet 简介 2012年,深度学习三巨头之一的 Geoffrey Hinton 的学生 Alex Krizhevsky 率先提出了 AlexNet, 并在当年度的 ILSVRC(ImageNet 大规模视觉挑战赛)以显著的优势获得当届冠军,top-5 的错误率降至了 16.4%, 相比于第二名 26.2% 的错 …
CNN 图像学习
CNN 直观理解 2014 年 Zeiler 等人在 ECCV 上发表了一篇基于可视化角度理解 CNN 的经典论文, 从可视化的角度观察 CNN 每一层在图像识别过程中到底都学到了什么。 可谓是卷积神经网络可视化的开山之作 Visualizing and Understanding Convolutional …
LeNet-5
LeNet-5 简介 在神经网络的和深度学习领域,Yann LeCun 在 1998 年在 IEEE 上发表了 (Gradient-based learning applied to document recognition,1998), 文中首次提出了 卷积-池化-全连接 的神经网络结构, 由 LeCun 提出的七层 …
CNN 网络概览
CNN 发展历史 CNN 在计算机视觉的三大领域: 图像识别 、目标检测、语义分割(图像分割) 有着广泛的应用 1985年,Rumelhart 和 Hinton 等人提出了 反向传播算法,Back-Propagaion, 即著名的反向传播算法训练神经网络模型,奠定了神经网络的理论基础 深度学习三巨头(Yann …
图像及图像处理概览
数字图像概述 相比于直观的数据处理,图像处理更抽象和复杂。因为在处理数据时,我们和计算机处理的是同一个对象–数据。 与处理数据相比,处理图像的情况稍显复杂。我们擅长理解图像,而计算机擅长理解数值。 在处理图像时,我们要把图像转换为数值,再交给计算机来处理。这意味着,我们要从自身擅长的领域, 转换到我们不太擅 …
Scipy Matplotlib Skimage 图像处理
numpy scipy.ndimage Scipy.ndimage Scipy-Numpy skimage skimage-doc skimage-tutorial matplotlib 任务 Input/Output, displaying images Basic manipulations: cropping, …
Pillow 图像处理
Pillow 概览 PIL: Python Imaging Library, Python 图像处理库,提供了如下的功能: Image Archives, 图像存档和批处理 图像读取(read image) 图像打印(print image) 图像缩略图(create thumbnails) 图像格式变 …
OpenCV 图像处理
OpenCV 简介 OpenCV 基本信息 OpenCV (Open Source Computer Vision Library),一个开源的计算机视觉库, 官方网站为 http://opencv.org。它提供了很多函数, 这些函数非常高效地实现了计算机视觉算法,从最基本的滤波到高级的物体检测皆有涵盖。 1999 …
图像目标检测概述
目标检测概述 图像分类、检测、分割是计算机视觉领域的三大任务。 图像分类模型是将图像划分为单个类别,通常对应于图像中最突出的物体: 现实世界的很多图片通常包含不只一个物体, 此时如果使用图像分类模型为图像分配一个单一标签其实是非常粗糙的,并不准确。 对于这样的情况,就需要 目标检测模型。目标检测模型可以识别一张图片的多 …
YOLOX
参考 https://pjreddie.com/darknet/yolov2/
YOLOv7
参考 https://pjreddie.com/darknet/yolov2/
YOLOv4
参考 https://pjreddie.com/darknet/yolov2/
YOLOv3
参考 https://pjreddie.com/darknet/yolov2/
YOLOv2
参考 https://pjreddie.com/darknet/yolov2/
YOLOv1
YOLOv1 网络结构 YOLOv1 的思想十分简洁:仅使用一个卷积神经网络来端到端地检测目标。 这一思想是对应当时主流的以 R-CNN 系列为代表的 two-stage 流派。 从网络结构上来看,YOLOv1 仿照 GoogLeNet 网络来设计主干网络, 但没有采用 GoogLeNet 的 Inception 模 …
Stable Diffusion
Stable Diffusion 简介 Stable Diffusion 是 CompVis、Stability AI 和 LAION 等公司研发的一个文生图模型, 它的模型和代码是开源的,而且训练数据 LAION-5B 也是开源的。 由于Stable Diffusion 是一个完全开源的模型(代码、数据、模型),而且 …
光学字符识别
Text Detection OCR
OpenCV 人脸检测
目标简介 目标: 使用 Flask API 部署 OpenCV App 进行人脸检测 实现技术: Flask Flask 是一个广泛使用的微型 Web 框架,用于在 Python 中构建 API。 它是一个简单而强大的 Web 框架,旨在快速轻松地启动,并能够扩展到复杂的应用程序 OpenCV OpenCV …
CNN-风格迁移
style-transfer
数值优化求解器
Optimization
动态规划
Dynamic Programming
多目标规划
Multi-Objective Optimization
整数规划
Integer Programming
线性规划
Linear Programming, LP
非线性规划
NonLinear Programming
图与网络分析
Graph and Network
数学优化模型
最优化算法 最优化算法,即最优计算方法,也是运筹学。最优化同运筹学一样, 是利用现代数学、系统科学、计算机科学及其他学科的最新成果, 来研究人类从事的各种活动中处理事务的数量化规律, 使有限的人、物、财、时空、信息等资源得到充分和合理的利用, 以期获得尽可能满意的经济和社会效果。 最优化算法的内容包括: 规划论 线性规 …