机器学习基础课笔记
文章平均质量分 73
Y_蒋林志
不如打工去
展开
-
关于随机森林和决策树的面试问题
前言介绍几个关于随机森林和决策树的面试问题,并给出参考答案。1. 随机森林为何可以提高正确率, 且降低过拟合程度?随机森林是一种集成算法(Ensemble Learning),它属于 Bagging 类型,通过组合多个弱分类器,最终结果通过多数投票或取均值。由于在生成每颗树的时候,每颗树仅是选取少数特征,而且对于样本也是随机有放回的选择,这样的随机性降低了过拟合程度。而且由于采取了集成算法,本身精度就比单个算法好。2. 决策树后剪枝可以怎么操作?为了提高决策树的泛化能力,需要对树进行剪枝 (Pru原创 2021-07-20 20:47:42 · 684 阅读 · 0 评论 -
概率,贝叶斯定理,贝叶斯网络的那点事
0 前言最近在学习贝叶斯网络,有些概念已经忘记了,索性就从头开始,将概率—>贝叶斯定理—>贝叶斯网络的公式和概念都串起来讲一遍。1 概率公式1.1 联合概率联合概率指的是包含多个条件且所有条件同时成立的概率,记作P(X=a,Y=b)或P(A,B),有的书上也习惯记作P(AB)。注意是所有条件同时成立,同时发生。1.2 边缘概率(又称先验概率)边缘概率是与联合概率对应的,P(X=a)或P(Y=b),这类仅与单个随机变量有关的概率称为边缘概率1.3 联合概率与边缘概率的关系P(X=a原创 2021-07-20 01:03:15 · 1243 阅读 · 0 评论 -
聚类算法之层次聚类和密度聚类(图文并茂)
前言层次聚类方法对给定的数据集进行层次的分解,直到达到某种条件为止。具体又可分为:凝聚的层次聚类——AGNES算法采用自底向上的策略,首先将每个对象作为一个簇,然后这些簇根据某些准则被一步步合并,两个簇之间的距离由这两个的不同簇中距离最近的数据点的相似度来确定;聚类的过程直到所有对象满足簇的数目才停止。分裂的层次聚类:DIANA算法采用自顶向下的策略,首先将所有对象初始化在一个簇当中,然后根据一些原则将该簇分类,直到达到预定的簇数目或者距离超过某个阈值。凝聚和分裂是相反的过程:合并策略有诸多原创 2021-07-18 11:38:52 · 4413 阅读 · 0 评论 -
机器学习进阶(10):K-means的推导和算法理解
前言聚类就是对大量未标注的数据集,按照数据的内在相似性将数据划分为多个类别,使得类别内的数据相似度较大,而类间相似度较小。1 几种聚类常用距离欧式距离:dist(X,Y)=(∑i=1n∣xi−yi∣p)1p\mathrm{dist(}X,Y)=\left( \sum_{i=1}^n{\left| x_i-y_i \right|^p} \right) ^{\frac{1}{p}}dist(X,Y)=(i=1∑n∣xi−yi∣p)p1一般的情况用欧式距离。Jaccard相似系数:J(原创 2021-07-17 00:23:36 · 372 阅读 · 0 评论 -
机器学习进阶(9):超详细的支持向量机(SVM)的公式推导和理解
前言1 线性可分支持向量机1.1 硬间隔1.2 硬间隔SVM2 线性支持向量机2.1 软间隔2.2 软间隔SVM3 非线性支持向量机3.1 核函数3.2 带核函数的SVM原创 2021-07-16 01:52:33 · 1056 阅读 · 0 评论 -
机器学习进阶(8):XGboost代码案例(DMatrix)和一些数据预处理的技巧
前言讲XGboost的代码案例并结合Kaggle上的Titanic数据总结一点数据预处理的技巧。案例1简单使用xgboost做分类,了解一些特性。import xgboost as xgbimport numpy as np# 1、xgBoost的基本使用# 2、自定义损失函数的梯度和二阶导# 3、binary:logistic/logitraw# 定义f: theta * x# 类似于定义了逻辑回归def log_reg(y_hat, y): p = 1.0 / (1.原创 2021-07-13 22:35:14 · 8289 阅读 · 0 评论 -
机器学习进阶(7):Adaboost模型的推导
前言Adaboost算法的模型是加法模型,损失函数为指数函数,学习算法为前向分布算法的二类学习方法。这里仅介绍模型。模型建立设训练样本为T={(x1,y1),(x2,y2)...(xN,yN)}\mathrm{T}=\left\{ \left( \mathrm{x}_1,\mathrm{y}_1 \right) ,\left( \mathrm{x}_2,\mathrm{y}_2 \right) ...\left( \mathrm{x}_{\mathrm{N}},\mathrm{y}_{\mathrm原创 2021-07-12 22:26:33 · 169 阅读 · 0 评论 -
机器学习进阶(6):Boosting方法
前言Boosting是机器学习技术,与单纯随机森林依靠累加模型不同,它每一步产生一个弱预测模型,并且加权累加到总模型中。如果每一步的弱模型生成方向都是依据损失函数的梯度方向,则称之为梯度提升(Gradient Boosting)。梯度提升算法首先给定一个目标损失函数,它的定义域是所有可行的弱函数集合(基函数);通过迭代的选择一个负梯度方向上的基函数来逐渐逼近局部极小值。如果一个问题存在弱分类器,则可以通过Boosting方法得到强分类器。模型建立...原创 2021-07-12 00:55:52 · 334 阅读 · 0 评论 -
机器学习进阶(5):决策树的一些Tips
前言一些决策树相关的笔记,有兴趣的同学可以看看。Tips决策树是弱分类器,而SVM和LR是强分类器,Bagging 更适合弱分类器。参与决策树生成的数据叫做bag,其他叫做 Out of Bag(OBB),OBB数据可以用于取代测试集用于误差估计,精度和同规模的测试集精度相同。这样得到的参数模型是无偏估计。随机森林的里DT1和DT2的训练样本都是不同的。在样本和特征的角度都加入随机性,特征也是起始随机选取。随机森林/Bagging和决策树的关系:基础分类器除了选择决策树也可以选择原创 2021-07-10 00:34:38 · 209 阅读 · 0 评论 -
机器学习进阶(4):熵,联合熵,条件熵,互信息的推导和联系
前言机器学习领域有一个十分重要的概念:熵。大家或多或少都听过一些熵的概念和定义,但是可能对他们的关系不是很清楚,本文就熵,联合熵,条件熵,互信息的推导展开介绍。熵H(X)=−∑xεXP(x)logP(x)H(X)=-\sum_{x\varepsilon X}{P}(x)\log P(x)H(X)=−xεX∑P(x)logP(x)联合熵H(X,Y)=−∑x,yp(x,y)logp(x,y)H(X,Y)=-\sum_{x,y}{p}(x,y)\log p(x,y)H(X,Y)=−x,y∑原创 2021-07-09 01:21:43 · 2240 阅读 · 0 评论 -
逻辑回归的推导和理解(公式清晰)
前言Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。LR也是面试时常需要手撕的模型,本文从各种角度推导了LR的相关公式,希望对大家有帮助(未完待续)。模型建立推导由线性回归的定义式出发,hθ(x)h_{\theta}(x)hθ(x)是预测值:hθ(x)=∑i=0nθixi=θTxh_{\theta}(x)=\sum_{i=0}^n{\theta _i}x_i=\theta ^Txhθ(x)=i=0∑nθixi=θTxSigmoid函数(s原创 2021-07-08 00:56:38 · 758 阅读 · 0 评论 -
机器学习进阶(2):回归类面试题解答
1. 解释线性回归中使用误差平方和作为目标函数的原因。答:因为随机误差服从正态分布(高斯分布),可以由最大似然估计来推出目标函数的形式。从直观的角度也可以得知:有的误差为正,有的误差为负数,简单相加会被抵消的,平方就不会了。2. 请描述BGD和SGD的区别,并指出SGD的优势有哪些?答:先解释BGD,SGD和MSGD的区别。首先梯度下降的损失函数都是均方误差损失函数:C=12m∑i=1m(Yi−hw(Xi))2h(w)=∑i=0nwixiC=\frac{1}{2m}\sum_{i=1}^m{\l原创 2021-07-06 00:15:37 · 328 阅读 · 2 评论 -
机器学习进阶(1):用极大似然估计解释最小二乘法
假设现在有个多元线性函数:hθ(x)=∑i=0nθixi=θTXh_{\theta}(x)=\sum_{i=0}^n{\theta _i}x_i=\theta ^TXhθ(x)=i=0∑nθixi=θTX并且假设这个拟合函数与真实值 y之间存在一个误差ϵ,于是得到下面真实值 y与拟合函数hθ(x)以及误差 ϵ之间的关系式:y(i)=θTX(i)+ϵ(i)y^{(i)}=\theta ^TX^{(i)}+\epsilon ^{(i)}y(i)=θTX(i)+ϵ(i)接着我们继续假设样本原创 2021-07-04 23:33:05 · 389 阅读 · 5 评论 -
机器学习基础(7):逻辑回归
逻辑回归逻辑回归是一种分类算法,适用于二分类,也能得出概率值。借用线性回归的公式,输入x:h(w)=w0+w1x1+w2x2+...=wTxh\left( w \right) =w_0+w_1x_1+w_2x_2+...=w^Txh(w)=w0+w1x1+w2x2+...=wTxg(z)为sigmoid函数:逻辑回归:输出:[0,1]区间的概率值,默认0.5作为阀值。损失函数与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解。对数似然损失函数:原创 2021-07-03 23:50:48 · 214 阅读 · 5 评论 -
机器学习基础(6):线性回归和拟合
线性回归1 介绍线性回归是通过一个或者多个自变量与因变量之间之间进行建模的回归分析。其中特点为一个或多个称为回归系数的模型参数的线性组合。回归问题的目标值是连续的,比如价格,收入等等。试图学得一个通过属性的线性组合来进行预测的函数:????(????)=????_1 ????_1+????_2 ????_2+…+????_???? ????_????+????w为权重,b称为偏置项,可以理解为:????_0×1一元线性回归:涉及到的变量只有一个多元线性回归:涉及到的变量两个或两个以上单变量原创 2021-07-03 00:54:54 · 1287 阅读 · 0 评论 -
机器学习基础(5):决策树和随机森林
1. 决策树前言:决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法。但是如何选择特征的优先级呢?可以使用二分法举例子:假设有32支球队角逐世界杯冠军,在不知道各队信息的情况下要猜多少次才知道冠军呢?很容易得知:如果不知道任何一个球队的信息,要猜对至少要5次,5bit。“谁是世界杯冠军”的信息量应该比5比特少。香农指出,它的准确信息量应该是:H = -(p1logp1 + p2logp2 + … + p32log原创 2021-07-02 00:41:27 · 219 阅读 · 0 评论 -
机器学习基础(4):朴素贝叶斯算法(附python代码和详细注释)
朴素贝叶斯法朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。前提各个特征条件独立,也是“朴素”之名的来历。1. 概率公式联合概率:包含多个条件,且所有条件同时成立的概率记作:P(A,B) = P(A)P(B)条件概率:事件A在事件B已经发生条件下的发生概率记作:P(A|B) P(A1, A2|B) = P(A1|B)P(A2|B) 且 A1 和 A2相互独立2. 实例分析:文档分类任务首先给出贝叶斯公式:P(C∣W)=P(W∣C)P(C)P(W)P\left( C|W \ri原创 2021-06-29 21:00:12 · 5620 阅读 · 1 评论 -
机器学习基础课 (3):机器学习案例之K-近邻(附详细python代码注释)
数据集Sklearn 数据集数据集划分接口介绍(API)分类数据集回归数据集特征工程的步骤实例化(实例化的是一个转换器类)用fit_transform获得转换后的数据集转化器和估计器转化器Fit_transform():输入数据直接转换 = Fit() 输入数据 +Transform():数据转换。如果fit和transform的样本不同,那得到的结果也会改变。估计器估计器:实现了算法API分类的估计器:sklearn.neighbors k-近邻Sklearn.nai原创 2021-06-29 00:05:03 · 141 阅读 · 0 评论 -
机器学习基础课【Day2】:数据降维(附详细代码注释)
如果特征多,信息量少,噪声高。此时需要特征降维,一般有两种方式。1. 特征选择一般是人为筛选,主要方法:过滤式(方差阈值 VarianceThreshold),嵌入式(正则化,决策树),包裹式。这里介绍一下方差阈值:假设某特征的特征值只有0和1,并且在所有输入样本中,95%的实例的该特征取值都是1,那就可以认为这个特征作用不大。如果100%都是1,那这个特征就没意义了。当特征值都是离散型变量的时候这种方法才能用,如果是连续型变量,就需要将连续变量离散化之后才能用。python代码如下:from s原创 2021-06-28 00:20:32 · 226 阅读 · 0 评论 -
机器学习基础【Day1】:文本特征提取和数字特征预处理
记录一些听课时的笔记:1. pandas: 用于数据读取和基本的格式处理;sklearn:特征处理(特征工程)2. 特征工程主要任务:特征抽取 预处理 降维;特征抽取:文本 ,字符串,转换为数字形式,可以叫特征值化3. sparse 矩阵:记录角标而不是整个向量,可以节约内存4. 标准化比归一化更好用,因为归一化易受异常点的影响,而标准化均值为0标准差为5. 处理缺失值时,注意看缺失值是什么格式,是NAN,还是?可以用replace来将?替换为 nan展示一些代码和我的注释:1.原创 2021-06-27 00:03:57 · 1120 阅读 · 2 评论