逻辑回归(百面机器学习第一周)
sklearn. clf.coef_ 和 clf.intercept_ 了: clf.coef_ 和 clf.intercept_ 就是 $\theta$ ,
决策树
ID3——最大信息增益,数据集D的经验熵表示为H(D)=-∑(|Ck|/|D|)log2(|Ck|/|D|),特征A对于数据集D的经验条件熵H(D|A)=∑(|Di|/|D|)H(Di)=∑(|Di|/|D|)(-∑(|Dik|/|Di|)log2(|Dik|/|Di|)),信息增益就是二者只差,即g(D,A)=H(D)-H(D|A)
C4.5——最大信息增益比
信息增益准则对可去数值有较多偏好,对分支过多惩罚,采用增益率,除以IVA固有值
增益率对数目较少属性有偏好,所以采用启发式,选取增益高于平均水平的,在筛选出增益率高的
CART——最大基尼指数(Gini)Gini描述的是数据的纯度,与信息熵类似。Gini(D)=1-∑(|Ck|/|D|)^2.
它采用一种二分递归分割的技术,分割方法采用基于最小距离的基尼指数估计函数,将当前的样本集分为两个子样本集,使得生成的的每个非叶子节点都有两个分支。因此,CART算法生成的决策树是结构简洁的二叉树。
离散
分别取X变量各值的不同组合,将其分到树的左枝或右枝,并对不同组合而产生的树,进行评判,找出最佳组合。如果只有两个取值,好办,直接根据这两个值就可以划分树。取值多于两个的情况就复杂一些了,如变量年纪,其值有“少年”、“中年”、“老年”,则分别生产{少年,中年}和{老年},{上年、老年}和{中年},{中年,老年}和{少年},这三种组合,最后评判对目标区分最佳的组合。因为CART二分的特性,当训练数据具有两个以上的类别,CART需考虑将目标类别合并成两个超类别,这个过程称为双化。这里可以说一个公式,n个属性,可以分出(2^n-2)/2种情况
如果是xgboost,会将年级和是否玩电脑,建立多棵树,两棵树的话。将儿子这本输入到这个boosting算法中,tree1的输出2加上tree2的输出0.9,最后输出预测值2.9。如果这是一个回归问题,那么这2.9就是最终输出值,如果这是一个分类问题,就将这个值代入到sigmoid函数中求出该样本被分到正类的概率。
连续
首先将值排序,分别取其两相邻值的平均值点作为分隔点,将树一分成左枝和右枝,不断扫描,进而判断最佳分割点。特征值大于分裂值就走左子树,或者就走右子树。
是否分裂属性多次考虑
离散情况两种的话,不考虑,多种考虑,至于连续变量XC,离散化后相当于一个可以取n个值的离散变量,按刚刚离散变量的情况分析。除非XC的取值都一样,否则这次用了XC作为分裂属性,下次还要考虑XC。
区别
CART和C4.5之间主要差异在于分类结果上,CART可以回归分析也可以分类,C4.5只能做分类;C4.5子节点是可以多分的,而CART是无数个二叉子节点,以此拓展出以CART为基础的“树群”Random forest , 以回归树为基础的“树群”GBDT
样本数据的差异:
ID3只能对分类变量进行处理,C4.5和CART可以处理连续和分类两种自变量
ID3对缺失值敏感,而C4.5和CART对缺失值可以进行多种方式的处理
只从样本量考虑,小样本建议考虑c4.5、大样本建议考虑cart。c4.5处理过程中需对数据集进行多次排序,处理成本耗时较高,而cart本身是一种大样本的统计方法,小样本处理下泛化误差较大
目标因变量的差异:
ID3和C4.5只能做分类,CART(分类回归树)不仅可以做分类(0/1)还可以做回归(0-1)
ID3和C4.5节点上可以产出多叉(低、中、高),而CART节点上永远是二叉(低、非低)
样本特征上的差异:
特征变量的使用中,多分的分类变量ID3和C4.5层级之间只单次使用,CART可多次重复使用
决策树产生过程中的优化差异:
C4.5是通过枝剪来修正树的准确性,而CART是直接利用全部数据发现所有树的结构进行对比
参考https://www.zhihu.com/question/27205203/answer/148900663
为什么剪枝
如果一棵决策树完全生长,那么这棵决策树就很有可能面临过拟合的问题。完全生长的决策树所对应的每个叶节点中只会包含一个样本,这样决策树就是过拟合的,所以我们就需要对这种决策树进行剪枝操作来提升我们决策树模型的泛化能力。
预剪枝,后剪枝
优点:决策树易于理解和实现. 人们在通过解释后都有能力去理解决策树所表达的意义。 • 对于决策树,数据的准备往往是简单或者是不必要的。 • 能够同时处理数据型和常规型属性。
缺点:1)对连续性的字段比较难预测。2)对有时间顺序的数据,需要很多预处理的工作。3)当类别太多时,错误可能就会增加的比较快。4)一般的算法分类的时候,只是根据一个字段来分类。5)在处理特征关联性比较强的数据时表现得不是太好
svm
SVM原理是什么?
SVM 是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。 • 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机; • 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机; • 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。 以上各种情况下的数学推到应当掌握,硬间隔最大化(几何间隔)、学习的对偶问题、软间隔最大化(引入松弛变量)、非线性支持向量机(核技巧)。
SVM要引入核函数?
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低