探索性数据分析概述
探索性数据分析 探索性数据分析简介 探索性数据分析是上世纪六十年代提出,其方法由美国统计学家 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”(簇)。 …
层次聚类
层次聚类 层次聚类(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, …
聚类算法概览
聚类算法 聚类是从数据集中挖掘相似观测值集合的方法。聚类试图将数据集中的样本划分为若干个通常是不相交的子集, 每个子集称为一个"簇"(cluster)。通过这样的划分,每个簇可能对应于一些潜在的概念(类别)。 聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者自己来把握。 聚类既能作为一个单独 …
模型选择和调参
Model Selection
特征降维
降维和特征选择 在机器学习中,特征降维和特征选择是两个常见的概念。特征降维和特征选择的目的都是使数据的特征维数降低, 但实际上两者的区别是很大,它们的本质是完全不同的 特征选择从数据集中选择最重要特征的子集,特征选择不会改变原始特征的含义和数值,只是对原始特征进行筛选。 而降维将数据转换为低维空间,会改变原始特征中特征 …
数据集偏移
Data Shift
模型验证
Model Validation
相似性和距离
相似性度量 欧氏距离(Euclidean Distance) 定义 欧式距离可解释为连接两个点的线段的长度。欧式距离公式非常简单,使用勾股定理从这些点的笛卡尔坐标计算距离 $$D(x, y) = \sqrt{\sum_{i=1}^{n}(x_{i} - y_{i})^{2}}$$ 缺点 尽管这是一种常用的距离度量,但欧 …
模型保存和加载
Model Save & Load
特征选择
降维和特征选择 在机器学习中,特征降维和特征选择是两个常见的概念。特征降维和特征选择的目的都是使数据的特征维数降低, 但实际上两者的区别是很大,它们的本质是完全不同的 特征选择从数据集中选择最重要特征的子集,特征选择不会改变原始特征的含义和数值,只是对原始特征进行筛选。 而降维将数据转换为低维空间,会改变原始特征中特征 …
模型融合
Model Fusion
模型正则化
Model Regularization
二分类评价指标
混淆矩阵 混淆矩阵: 混淆矩阵及其相关指标: 错误率 Error Rate:错误率 错误率是分类错误的样本数占样本总数的比例 定义: $$E(f; D)=\frac{1}{N}\sum_{i=1}^{N}I(f(x_{i}) \neq y_{i})$$ $$ErrorRate(\hat{y}_{i}, …
聚类评价指标
评价指标简介 聚类性能度量亦称聚类"有效性指标"(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 …
特征采样-回归任务
参考 Delving into Deep Imbalanced Regression
特征工程概览
文章 全网写特征工程最通透的 使用sklearn做单机特征工程 数据建模就是从数据中学习到洞见(insights)的过程,这个过程其实是很曲折的,要经过数据的表达、模型的学习两部。其中:数据的表达就是原始数据经过 clean 和 transformer 得到 feaaures 的过程,即为特征工程 特征工程 在机器学习 …
缺失值处理
缺失值处理理论 当缺失数据比例很小时,可直接对缺失记录进行舍弃或进行手工处理 实际数据中,缺失数据往往占有相当的比重,这时如果手工处理,非常低效; 如果舍弃缺失记录,则会丢失大量信息,使不完全观测数据与观测数据间产生系统差异, 对这样的数据进行分析,可能会得出错误的结论 缺失的类型: 在对缺失数据进行处理前, 了解数据 …
特征采样-分类任务
不平衡数据集的问题描述 样本类别样本不平衡(class-imbalance)数据集是指一个类中的示例数量与另一类中的示例数量显著不同的情况。 例如在一个二元分类问题中,一个类只占总样本的一小部分,这被称为不平衡数据集。 类不平衡会在构建机器学习模型时导致很多问题。一般地,常情况下样本类别比例(imbalance …
特征构建
交互特征 两个特征的乘积可以组成一个简单的交互特征,这样可以捕获特征之间的交互作用。 交互特征的构造非常简单,但是使用起来代价很高 df = pd.DataFrame( {}, columns = ["x1", "x2", "x3", "x4", …
异常值检测及处理
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 …
多分类和多输出算法
Multiclass 分类 Multiclass classification is a classification task with more than two classes. Each sample can only be labeled as one class. …
感知机
感知机模型介绍 感知机模型 感知机, perceptron 是由美国学者 Frank Rosenblatt 在 1957 年提出来的, 感知机是神经网络(深度学习)的起源算法. 因此, 学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想, 感知机是神经网络的理论基础. 感知机就是一个通过建立一个线性超平面, …
KNN
KNN 介绍 $k$ 近邻法(k-nearest neighbor, k-NN) 1968 年由 Cover 和 Hart 提出。 KNN 是一种基本分类与回归方法。这里只讨论分类问题中的 KNN。 KNN 的输入为实例的特征向量,对应于特征空间的点;输出位实例的类别,可以取多类 KNN 假设给定一个训练数据集,其中的 …
非线性回归
多项式回归
线性回归
回归分析 回归分析介绍 回归分析属于统计学的基本模型,回归分析(Regression Analysis)是用来确定两个或两个以上变量间关系的一种统计分析方法 在回归分析中,变量有两类:因变量和自变量。因变量通常是指实际问题中所关心的指标,用 $Y$ 表示。 而自变量是影响因变量取值的一个变量,用 $X$ 表示,如果有多 …
广义线性模型
广义线性模型概览 模型介绍 在统计学上,广义线性模型(Generalized Linear Model, GLM)是一种应用灵活的线性回归模型。 该模型允许因变量的偏差分布有除了正态分布之外的其他分布。 此模型假设实验者所测量的随机变量的分布函数与实验中系统性效应(即非随机的效应)可经由链接函数(link …
广义加性模型
广义加性模型简介 广义加性模型(GAM)作为回归家族的一个扩展,是最强大的模型之一,可以为任何回归问题建模 线性模型简单、直观、便于理解,但是,在现实生活中,变量的作用通常不是线性的。 线性的假设很可能不能满足实际需求,甚至直接违背实际情况 1985 年 Stone 提出加性模型(additive models),模型 …
偏最小二乘回归 PLS
偏最小二乘回归 PLS
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 函数(非线形)映射, 使得逻辑回归成为了一个优秀的分类算法。学习逻辑回归模型,首先应该记住一句话: 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法, 运用梯度下降来求解参数,来达到将数据二分类的目的。 模型 …
SVM 使用
SVM API 分类 SVC class sklearn.svm.SVC( *, C = 1.0, kernel = 'rbf', # linear, poly, rbf(默认), sigmoid, precomputed degree = 3, gamma = 'scale', …
SVM
SVM 模型概览 SVM 介绍 支持向量机是 90 年代中期发展起来的基于统计学习理论的一种有监督机器学习方法, 通过寻求结构化风险最小来提高学习器的泛化能力,实现经验风险和置信范围的最小化, 从而达到在统计样本量较少的情况下,也能获得良好的统计规律性 对于一个分类问题,给定样本集,的目的是在样本空间中找到一个划分超 …
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 …
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),是指利用训练数据集构建多个分类器(弱分类器),并分别对测试数据集进行预测, 然后用某种策略将多个分类器预测的结果集成起来,作为最终预测结果. 通俗比喻就是"三个臭皮匠赛过诸葛亮”, 或一个公司董事会上的各董事投票决策,它要求每个弱分类器具备一定 …
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 …
Random Forest
随机森林介绍 模型介绍 随机森林是一种有监督学习算法,随机森林非常简单,易于实现,计算开销也很小, 但是它在分类和回归上表现出惊人的性能,因此,随机森林被誉为"代表集成学习技术水平的方法” 随机森林(Random Forest, RF)是一种以决策树为基学习器的集成(ensemble)学习器, …
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 先从初始训练集训练出一个基 …