决策树

有监督学习算法,同时可用于分类问题和回归问题。

贪心算法:从包含全部训练数据的根开始,每一步都选择最佳划分。依赖于所选择的属性是数值属性还是离散属性,每次将数据划分为两个或n个子集,然后使用对应的子集递归地进行划分,直到所有训练数据子集被基本正确分类,或没有合适的特征为止

· 先解决存在:数据间有关系,有模型)

· 再解决唯一:最优模型,泛化能力(期望)最高的

经验:对历史数据的学习能力判断(训练集预测精度),影响期望

希望决策树以最快的方法到达叶子节点,就需要有个特征选择的度量方式——信息熵

特征选择

选择标准:信息熵减小最快的方向(包含信息较少的特征)

1. 信息熵:是表示随机变量不确定性的度量

信息量:就是指数据的混杂程度

两个事件概率应该相乘,但是累乘计算难度高,取对数可以把累乘变成累加;去负号是因为log对0-1之间的数是负数,所以加个负号变成正数为了计算方便。信息熵的取值范围是[0,1]的

2. 基尼指数

3. 误分类误差

决策树的生成

1. ID3算法:多叉树。只能处理分类型变量,连续型变量处理要分箱。用信息增益来度量的决策树算法

对某结点(数据集)进行切分的时候,尽可能选取使得该结点对应的子节点信息熵最小的特征进行切分。就是要求父节点信息熵和子节点总信息熵之差(信息增益)要最大

算法迭代的结束条件:满足之一会停下来

→当特征用完了,并且特征不能够重复使用

→样本用完了

→每个叶子节点都达到了最纯的状态

局限性:

ID3算法局限主要源于局部最优化条件,即信息增益的计算方法,其局限性主要有以下几点:

(1)分支度越高(分类水平越多)的离散变量量往往⼦子结点的总信息熵更更小,ID3是按照某一列进行切分,有一些列的分类可能不会对结果有足够好的指示。极端情况下取ID作为切分字段,每个分类的纯度都是100%,因此这样的分类方式是没有效益的。

(2)不能直接处理连续型变量,若要使用ID3处理连续型变量,则首先需要对连续变量进行离散化。

(3)对缺失值较为敏感,使用ID3之前需要提前对缺失值进行行处理。

(4)没有剪枝的设置,容易导致过拟合,即在训练集上表现很好,测试集上表现很差

2. C4.5算法(针对ID3缺点的提升):基于信息增益比选择特征进行分发,多叉树,可能处理连续型变量

计算过程:先排序,再选中位数,基于中位数划分,得到当前节点的信息熵,再和父节点做信息增益比的对比

由于连续型变量会基于某个阈值被划分为二分类,所以连续型变量是可以重复使用的特征,但是分类型特征仍然不能被重复使用

C4.5对ID3的缺点进行了怎样的改变?

3. CART分类回归树(目前最常用):二叉树递归划分,左子树为真,右子树为假

有监督的最优分箱法,x类型既可以是连续型变量也可以是分类型变量,一般不做分箱,数据是什么样就是什么样

分类树:基于基尼系数选择特征进行分支

回归树:基于均方误差MSE选择特征进行分支

可以自动进行连续型变量的二值化

树的剪枝

处理过拟合问题:sklearn使用后剪枝

方法一:基于父节点和子节点的预测误差大小进行判断,当父节点的误差小于子节点的总加权平均误差时,那么我们就会进行剪枝(适用C4.5多叉树)

方法二:限制树的结构来防止过拟合(仅适用于CART树,多叉树无法确定结构)

子节点总加权平均错误率并和父节点进行比较,子节点错误率更高,考虑剪枝

sklearn重要参数

from sklearn.tree import DecisionTreeClassifier

Criterion:一般默认选择gini基尼系数,如果数据模型的学习能力不太好选择entropy信息熵,entropy更容易发生过拟合。可以通过学习曲线和网格搜索进行调参,以结果为导向

splitter:是否基于重要性程度最高的特征优先分支,默认best;如果是random,就可以用到random_state来随机

剪枝参数:

max_depth 最大深度

min_samples_leaf  子节点最少包含的样本集

min_samples_split  节点最少包含多少个才样本集可以分支

为了提高运算速度,用网格搜索调参可以两两运行

重要接口

feature_importances_   #特征重要性,数值越大,重要性越高,可以做特征筛选的依据,选择大于0.02的。数值最大的基本就是根节点

feature_names  #看特征名称

target_names  #看标签名字

用网格搜索进行调参:

best_params_  #返回最佳参数的接口

best_score_  #最佳得分

混淆矩阵对模型进行评价

from sklearn.metrics import classification_report

print(classification_report(Ytest,clf.predict(Xtest)))

正确率一般是当0和1平衡,且在业务上重要程度相同时,正确率才有效。一般在业务场景中都不能满足,我们会更加看中1,所以正确率一般不关心

召回率:一个都不能漏,会犯错,人工量会提升。用于事情比较严重时。在银行中预测是否会违约,重点看召回率,模型中召回率要在85%以上这个模型才可以用于评分卡的使用

精准率:一个都不能错,可以漏点也不是很重要的事情上

举例,在电商中对会员进行营销时,要看中精准率。因为VIP是绝对不能被打扰的,要精准营销

f1协波平均数:协调精准率和召回率的综合指标

计算公式:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342