【机器学习2】决策树 Decision Tree

I 决策树定义(Decision Tree)

应用:可以解决多分类问题~

举一个栗子🌰,阔以直观感受一下什么是决策树
在这里插入图片描述

组成:根节点(x属性变量)、内部根节点(x属性变量)、叶子节点(y分类变量)
实质:一系列if-then规则组成

II 决策树算法

选择结点划分的常用方法:min(Entropy)

在这里插入图片描述

ID3(Quinlan, 1986)、C4.5、CART(Breiman, 1984)
说明:ID3算法基于信息增益划分节点,C4.5算法基于信息增益率划分节点,CART算法基于基尼系数来划分节点。

本文主要讲解C4.5算法
C4.5主要是在ID3的基础上改进,ID3选择(属性)树节点是选择信息增益值最大的属性作为节点。而C4.5引入了新概念“信息增益率” (information gain ratio) ,C4.5是选择信息增益率最大的属性作为树节点。

III 剪枝

剪枝的处理是解决决策树模型过拟合的主要手段,通过限制层数来防止过拟合的发生。
预剪枝:是指在决策树生成的过程中,对每个节点在划分前先进行估计
后剪枝:是指在决策树生成之后,在进行剪枝的处理

特征选择
标准:熵增益率

IV CART算法

注:sklearn这个包中DecisionTreeClassifier功能,只能依靠信息增益和基尼系数来分类(i.e. 分类时只有这两个可选参数),因此也就决定了利用这个package只能实现CART算法和ID3算法,而C4.5算法还是只有靠自己老实写。

import pandas as pd
import copy
import numpy as np
from WindPy import w
from datetime import *
from sklearn.tree import DecisionTreeClassifier
from sklearn.preprocessing import StandardScaler
w.start() 

## STEP1: 函数getAsharePanels(),获取A股历史面板数据
def getAsharePanels(stockcodes,start_date,end_date):
    ## 参数
    stockcodes=['000001.SZ']  #测试所用的三只股票代码
    start_date='20080101'      #样本数据起始日期
    end_date='20171231'        #样本数据结束日期
    
    append_data=pd.DataFrame(columns=['trade_date','stock_code','open','high','low','close','volume']) #产生一个辅助数据集,帮助后面循环时汇总
    individual
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值