赞
踩
转载请注明作者和出处:https://blog.csdn.net/weixin_45814668
知乎:https://www.zhihu.com/people/qiongjian0427
Git:https://github.com/qiongjian/Machine-learning/
运行环境:anaconda—jupyter notebook
Python版本: Python3.x
更多精彩内容,尽在微信公众号,欢迎您的关注:
单层决策树(decision stump,也称为决策树桩) 是一种简单的决策树,它仅基于单个特征来做决策。
创建adaboost.py文件,编写代码:
import numpy as np
import matplotlib.pyplot as plt
def loadSimpData():
datMat = np.matrix([[1. , 2.1], [2. , 1.1], [1.3, 1. ], [1. , 1. ], [1.5 , 1.6 ]])
classLabels = [1.0, 1.0, -1.0, -1.0, 1.0]
return datMat, classLabels
由数据集示意图可以看出,从某个坐标轴上选择一个值(即选择一条与坐标轴平行的直线)将所有的蓝色点和橙色点分开是不可能的。这是单层决策树难以处理的一个著名问题。
通过使用多棵单层决策树,就可以构建出一个能够对该数据集完全正确分类的分类器。
伪代码:
将最小错误率minError设为+inf
对数据集中的每一个特征(第一层循环):
对每个步长(第二层循环):
对每个不等号(第三层循环):
建立一棵单层决策树并利用加权数据集对它进行测试
如果错误率低于minError,则将当前单层决策树设为最佳单层决策树
返回最佳单层决策树
def stumpClassify(dataMatrix, dimen, threshVal, threshIneq):
#通过阈值比较对数据进行分类 threshVal:阈值 threshIneq:标志
retArray = np.ones((np.shape(dataMatrix)[0], 1))
if threshIneq == 'lt':
retArray[dataMatrix[:, dimen]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。