机器学习
文章平均质量分 83
机器学习及实现
米法·
这个作者很懒,什么都没留下…
展开
-
随机森林总结
一、为什么要有放回抽样,而不是无放回?保证数据量。假设总共有10w条样本,采用无放回抽样,用100颗树,这样每棵树最多只能用1000条样本。如果不放回抽样,那么每棵树用的样本完全不同,基学习器之间的相似性过小,投票结果差,模型偏差大二、怎么样给出特征重要性的?对于每棵决策树,用袋外数据计算它的袋外数据误差,记为err1err1err1随机地对袋外数据所有样本的特征XXX加入噪声干扰(就可以随机的改变样本在特征X处的值),再次计算它的袋外数据误差,记为err2err2err2假设随机森林中有原创 2021-08-06 16:47:10 · 1244 阅读 · 0 评论 -
逻辑回归详解
一、广义线性模型1.1 指数分布族一维的指数分布族:fλ(y)=exp{λy−Ψ(λ)}⋅f0(y)(1)f_{\lambda}(y)=\exp\{\lambda y-\Psi(\lambda)\}\cdot f_0(y)\tag1fλ(y)=exp{λy−Ψ(λ)}⋅f0(y)(1)1.2 常见的指数分布:N(μ,σ2)N(\mu, \sigma^2)N(μ,σ2),化成指数分布的话,λ=μσ2,Ψ(λ)=μ2σ2\lambda=\frac{\mu}{\sigma^2}, \Psi(\la原创 2021-08-05 17:36:05 · 355 阅读 · 0 评论 -
线性回归——多重共线性
1. 多重共线性的现象?回归系数与常识相反某些重要的自变量的ttt值低(ttt值越低,越不能拒绝β=0\beta=0β=0的原假设),即某些重要的自变量不能通过回归系数的显著性检验本不显著的自变量却呈现出显著性2. 什么是多重共线性?线性回归模型的自变量之间存在近似线性关系。3. 为什么会有多重共线性?自变量之间的确存在某种线性关系数据不足错误地使用虚拟变量。(比如,同时将男、女两个虚拟变量都放入模型,此时必定出现共线性,称为完全共线性)4. 如何检验多重共线性?VIF检验:原创 2021-08-04 22:56:35 · 4851 阅读 · 0 评论 -
机器学习笔记2.5——朴素贝叶斯法
条件独立假设:用于分类的特征在类确定的条件下都是条件独立的。原创 2021-07-31 07:55:40 · 358 阅读 · 0 评论 -
机器学习笔记总结
线性回归模型详解方差分析聚类分析PCA——主成分分析机器学习笔记一——感知机机器学习笔记二——k近邻机器学习笔记三——决策树机器学习笔记四——SVM机器学习笔记五——EM算法与高斯混合模型模型融合之BoostingXGBoost面试题因果推断学习笔记一因果推断学习笔记二因果推断学习笔记三——Uplift模型...原创 2021-07-30 10:00:25 · 1326 阅读 · 0 评论 -
因果推断学习笔记三——Uplift模型
一、Uplift模型因果推断在互联网界应用主要是基于Uplift model来预测额外收益提升ROI。Uplift模型帮助商家计算人群营销敏感度,驱动收益模拟预算和投放策略制定,促成营销推广效率的最大化。同时如何衡量和预测营销干预带来的“增量提升”,而不是把营销预算浪费在“本来就会转化”的那部分人身上,成为智能营销算法最重要的挑战。举个例子????:对用户A和用户B都投放广告,投放广告后用户A的CVR(转化量/点击量)为5%,用户B的CVR为4%,那么是否就给用户A投广告呢?仅从投放广告后的结果来看是这原创 2021-07-07 11:04:39 · 9775 阅读 · 4 评论 -
因果推断学习笔记二
因果推断区别于传统的相关性研究很重要的一点是潜在结果框架, 也就是我们今天的topic所要涵盖的内容。今天的session我们将会cover以下几个话题:什么是潜在结果因果推断的核心问题对于核心问题的讨论和答案完整的实例一、潜在结果研究treatment对于结果的影响,我们想要同时知道同等条件下,不同treatment下的结果,从而能够得出结论,treatment的改变是否会导致结果的不同例如a) 吃药不吃药对于头痛个体(吃药前头痛)的影响不吃药原创 2021-07-02 17:13:07 · 3424 阅读 · 5 评论 -
因果推断学习笔记一
一、因果推断本次课程是《Introduction to Causal Inference》这门课程的第一次课程,主要介绍跟因果推断相关的一些基本知识。这门课程会涉及到一些跟统计和机器学习相关的背景知识。因果推断是在推断一个变量(XXX)对另外一个变量(YYY)的影响。它的使用场景非常广泛。比如判断某种治疗方式对于减轻疾病是否有用; 判断哪种环保政策对减少排放更有用;判断社交媒体是不是导致社会成员的心理状况恶化;判断最近的疫情对广州/深圳的影响有多大,判断整个COVID-19对网约车的影响有多大;…… 因原创 2021-07-02 11:24:22 · 2555 阅读 · 0 评论 -
XGBoost
20道XGBoost面试题转载 2021-07-01 20:21:10 · 173 阅读 · 0 评论 -
模型融合之Boosting
一、Boosting1.1 Boosting学习思路对于一个学习问题来说(以分类问题为例),给定训练数据集,求一个弱学习算法要比求一个强学习算法要容易的多。Boosting方法就是从弱学习算法出发,反复学习,得到一系列弱分类器,然后组合弱分类器,得到一个强分类器。Boosting方法在学习过程中通过改变训练数据的权值分布(梯度提升树不会),针对不同的数据分布调用弱学习算法得到一系列弱分类器。在每一轮学习之前,如何改变训练数据的权值分布?Adaboost算法的做法是Adaboost算法的做法是提高那些原创 2021-07-01 19:59:15 · 784 阅读 · 0 评论 -
机器学习笔记五——EM算法与高斯混合模型
一、EM算法概率模型有时既含有观测变量,又含有隐变量(latent variable)。如果只含观测变量,那么直接用极大似然估计法估计模型参数即可;但当模型含有隐变量时,就需要采用EM算法,EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。1.1 EM算法用YYY表示观测随机变量的数据,ZZZ表示隐随机变量的数据,YYY和ZZZ连在一起称为完全数据。假设给定观测数据YYY,其概率分布是P(Y∣θ)P(Y|\theta)P(Y∣θ),其中θ\thetaθ是需要估计的模型参数,Y原创 2021-06-20 15:38:13 · 218 阅读 · 0 评论 -
机器学习笔记四——SVM
支持向量机的学习方法包括三种:线性可分支持向量机、线性支持向量机和非线形支持向量机,这三种由简至繁,依次介绍。一、线性可分支持向量机与硬间隔最大化1.1 线性可分支持向量机考虑一个二分类问题,且数据集是完全线性可分的,通过间隔最大化等价的求解相应的凸二次规划问题学习得到的分离超平面为ω∗∙x+b∗=0(1)\omega^* \bullet x+b^*=0\tag1ω∗∙x+b∗=0(1)以及相应的分类决策函数f(x)=sign(ω∗∙x+b∗)(2)f(x)=sign(\omega^* \bulle原创 2021-06-17 11:04:43 · 297 阅读 · 1 评论 -
机器学习笔记一——感知机
一、感知机模型感知机是二分类的线性分类模型。感知机对应于输入空间(即特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。定义:假设输入空间是X⊆Rn\mathcal{X}\subseteq\bm R^nX⊆Rn,输出空间是Y={+1,−1}\mathcal{Y}=\{+1, -1\}Y={+1,−1}。输入x∈Xx\in\mathcal{X}x∈X表示实例的特征向量,输出y∈Yy\in\mathcal Yy∈Y,由输入空间到输出空间的如下函数f(x)=sign(ω⋅x+b)(1)f(x)=si原创 2021-06-16 13:16:44 · 243 阅读 · 0 评论 -
机器学习笔记三——决策树
一、决策树1.1 基本思想分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点。内部结点表示一个特征或属性,叶结点表示一个类。用决策树分类,从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归的对实例进行测试并分配,直至达到叶结点,最后将实例分到叶结点的类中。决策树学习通过包括3个步骤:特征选择、决策树的生成和决策树的修剪。1.2 特征选择特征选择,即选取某个特征,然原创 2021-06-14 16:52:39 · 426 阅读 · 1 评论 -
机器学习笔记二——k近邻
一、K近邻1.1 基本介绍k近邻法(k-NN)是一种基本的分类和回归方法,更偏向于分类。k近邻简单直观:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最接近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。k近邻模型没有显式的学习过程,有三个要素:k值的选择、距离度量和分类决策规则。1.2 k值的选择如果选择较小的k值,就相当于用较小的邻域中的训练实例进行预测,近似误差会减小,但估计误差会增大,容易受到噪声的干扰。也意味着模型整体变得比较复杂,容易发生过拟合。如果选原创 2021-06-12 11:33:22 · 266 阅读 · 1 评论 -
方差分析——联立区间估计
一、简介 这里简单介绍了方差分析,如果通过方差分析,我们接受了原假设,那么说明因子AAA的aaa个水平μ1,⋯ ,μa\mu_1, \cdots, \mu_aμ1,⋯,μa没有显著性差异;如果我们拒绝了原假设,说明因子AAA的aaa个水平μ1,⋯ ,μa\mu_1, \cdots, \mu_aμ1,⋯,μa之间有显著差异,也就是说μ1,⋯ ,μa\mu_1, \cdots, \mu_aμ1,⋯,μa不完全相等,这时我们需要进一步判断水平μ1,⋯ ,μa\mu_1, \cdots, \mu_aμ原创 2021-05-21 19:11:14 · 540 阅读 · 0 评论 -
方差分析
一、简介原创 2021-05-20 10:26:39 · 6937 阅读 · 0 评论 -
用python计算残差等
一、简介 这里简单介绍了回归诊断,本文简单介绍如何用python计算其中的值。二、计算import statsmodels.api as sm# 以波士顿房价为例from sklearn.datasets import load_bostonfrom sklearn.model_selection import train_test_splitX = load_boston()['data']y = load_boston()['target']# 加上全1列X = sm.add_c原创 2021-05-19 16:15:21 · 10733 阅读 · 2 评论 -
回归诊断
一、简介 当我们建立线性模型后,可能也通过了F检验,但得到的模型就是合理的吗?不一定,因为有的数据可能并不是线性关系的,对于一元回归问题,我们或许可以通过画图观察自变量和因变量是否可以用线性模型刻画。但是,对于多元回归模型,试图通过画图的方式来判断线性关系是不可行的。那么,一般情况下,我们如何验证线性模型的合理性呢?这个时候就需要对所建立模型进行误差诊断,通过分析其残差来判断回归分析的基本假设是否成立。如发现果不成立,那么所有的区间估计、显著性检验都是不可靠的!二、残差2.1 残差的定义和性质 这里原创 2021-05-14 19:21:45 · 660 阅读 · 0 评论 -
用python实现线性回归
一、简介 这里简单介绍了线性回归模型,本文简单介绍如何用python实现线性回归。 二、sklearn接口2.1 模型参数from sklearn.linear_model import LinearRegressionLinearRegression( *, # 是否计算intercept项,即β0 fit_intercept=True, # 是否进行中心化 normalize=False, copy_X=True, n_jobs=None,原创 2021-05-14 15:52:18 · 5117 阅读 · 1 评论 -
线性回归模型详解
一、简介 线性回归模型是一种很常见、很常用的模型,下面我们简单介绍一下。二、介绍2.1 模型 线性回归模型的表达式为:Y=Xβ+ε(1)Y = X\beta + \varepsilon\tag1Y=Xβ+ε(1)其中,Y=(y1,y2,⋯ ,yn)TY = (y_1, y_2, \cdots, y_n)^TY=(y1,y2,⋯,yn)T, β=(β0,β1,⋯ ,βp−1)T\beta=(\beta_0, \beta_1, \cdots, \beta_{p-1})^Tβ=(β0,β1,⋯原创 2021-05-13 17:55:50 · 7015 阅读 · 0 评论 -
用python进行主成分分析(PCA)
一、简介 这篇文章简单介绍了PCA的原理、思想和一些定义,本文将介绍如何用python进行PCA。二、实现2.1 标准化数据 在对数据进行PCA前,需要先将数据进行中心标准化,即使特征的平均值为000,方差为111。from sklearn.preprocessing import StandardScalerStandardScaler(*, copy=True, with_mean=True, with_std=True)使用说明:实例化:scaler = StandardScale原创 2021-05-10 19:02:35 · 16847 阅读 · 5 评论 -
PCA——主成分分析
一、简介 主成分分析是一种常用的无监督学习方法,这一方法利用正交变换(在线性代数中,正交变换是线性变换的一种。对一个由空间RnR^nRn投射到同一空间RnR^nRn的线性转换,如果转换后的向量长度与转换前的长度相同,则为正交变换)把由线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。主成分的个数通常小于原始变量的个数,所以主成分分析属于降维方法。 主成分分析中,首先对给定数据进行规范化,使得数据每一变量的平均值为0,方差为1。之后对数据进行正交变换,原来由线性相原创 2021-05-09 21:37:56 · 639 阅读 · 0 评论 -
用python实现聚类分析
本文简单介绍如何用python里的库实现聚类分析原创 2021-05-07 20:01:01 · 32079 阅读 · 2 评论 -
聚类分析简介
一、简介 聚类分析是无监督学习的一种,只需要数据,不需要标记结果,它可以把大量的观测值依据某种规则规约为若干个类,每个类内的观测值相似,每个类间的差异较大。二、聚类分析 聚类分析思路很简单,总的来看可以分为2个环节——距离度量和聚类算法,即选定一种方式来计算数据点之间的距离,然后选用聚类算法进行聚类分析。1. 距离度量 对于不同的数据类型,可选择的距离度量的方法主要有以下几种:1.1 数值变量 数值变量是非常常见的一种变量,像人的身高、体重等等。假设X=(x1,x2,⋯ ,xp)X=(x_1,原创 2021-04-21 19:44:27 · 4502 阅读 · 0 评论 -
各种机器学习算法比较
前言 简单介绍各种机器学习算法的优缺点,和用python中的一些相关库的用法一、监督学习算法1、k-NN近邻1.1 简介 k-NN 算法可以说是最简单的机器学习算法。构建模型只需要保存训练数据集即可。想要对新数据点做出预测,算法会在训练数据集中找到最近的数据点,也就是它的“最近邻”。 主要过程为:1. 计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);2. 对上面所有的距离值进行排序;3. 选前k个最小距离的样本;4. 根据这k个样本的标签进行投票,得到最后的原创 2021-02-23 08:14:52 · 2869 阅读 · 0 评论