文章目录
决策树引入
逻辑回归是一种线性有监督离散型分类模型
决策树是一种非线性有监督离散型分类模型
随机森林也是一种非线性有监督离散型分类模型
离散化
案例分析: 离散化
数据类型
-
离散的数据 需指明取值数量 2^M 种分割方式
天气 : 晴天 雨天 多云
学历: 高中 本科 研究生 -
连续的数据 需离散化, 需指明离散化后的数量
车速:
低速 (60)中速 (80 )高速
M+1种分割方式
决策树是通过固定的条件来对类别进行判断:
决策树的生成:
数据在不断分裂的递归过程,每一次分裂,尽可能让类别一样的数据在树的一边,当树的叶子节点的数据都是一类的时候,则停止分裂(if lese语句)
计算纯度的方式
基尼系数,熵越大,方差越大,数据集越不一样,纯度越高
基尼系数
基尼系数是指国际上通用的、用以衡量一个国家或地区居民收入差距的常用指标
- 若低于0.2表示指数等级极低;(高度平均)
- 0.2-0.29表示指数等级低;(比较平均)
- 0.3-0.39表示指数等级中;(相对合理)
- 0.4-0.59表示指数等级高;(差距较大)
- 0.6以上表示指数等级极高。(差距悬殊)
一般发达国家的基尼指数在0.24到0.36之间,美国偏高,为0.45。中国国家统计局公布基尼系数2012年为0.474,2013年为0.473,2014年为0.469,2015年为0.462,2016年为0.465
熵和方差我们前面讲过,这里不再赘述
决策树的分割方式:非线性
单颗决策树的缺陷
单颗决策树的缺点:
运算量大,需要一次加载所有数据进内存。并且找寻分割条件是一个极耗资源的工作
训练样本中出现异常数据时,将会对决策树产生很大影响。抗干扰能力差
解决方法:
减少决策树所需训练样本(减少列或者减少行)
随机采样,降低异常数据的影响
逻辑回归的优点:
和逻辑回归比,逻辑回归可以给告诉我们概率(或者设置阈值),二决策树只能0, 1
随机森林
森林:由树组成
随机:生成树的数据都是从数据集中随机选取的
当数据集很大的时候,我们随机选取数据集的一部分,生成一颗树,重复上述过程,我们可以生成一堆
形态各异的树,这些树放在一起就叫森林
随机森林VS逻辑回归
剪枝
预剪枝: 在这棵树还没开始分裂的时候,提前设定好一些条件,在达到这些条件以后就不长了
后剪枝:先长,长完了再去掉(比如合并叶子节点)
预剪枝的方式:
(1)控制分裂的层次
(2)控制叶子节点的样本数量
剪枝保证了模型的通用性
决策树做回归
通过求均值的方式来让分类结果可数
代码实现
决策树
# encoding:utf-8
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
# 决策数的分类器
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import matplotlib.pyplot