《机器学习实战》源码解析(六):AdaBoost

本系列以书中源码为主,稍作修改并添加注释,均实际运行可行。为免后来者踩坑,特此公开!欢迎打赏!转载请注明出处!#coding:gbkfrom numpy import *import numpy as npimport matplotlib.pyplot as plt#作用:载入数据#输入:无#输出:数据矩阵,标签向量#stump:树桩def loadSimpData(): datMat = matrix([[1.,2.1],[2.,1.1],[1.3,1.],[1.,1.],[
摘要由CSDN通过智能技术生成

本系列以书中源码为主,稍作修改并添加注释,均实际运行可行。为免后来者踩坑,特此公开!欢迎打赏!
转载请注明出处!

#coding:gbk
from numpy import *
import numpy as np
import matplotlib.pyplot as plt
#作用:载入数据
#输入:无
#输出:数据矩阵,标签向量
#stump:树桩
def loadSimpData():
    datMat = matrix([[1.,2.1],[2.,1.1],[1.3,1.],[1.,1.],[2.,1.]])
    classLabels = [1.0,1.0,-1.0,-1.0,1.0]
    return datMat,classLabels
#作用:通过阈值比较对数据进行分类
#输入:数据矩阵,维度,阈值,阈值不平等性(即关系符)
#输出:返回分类后的标签列表
def stumpClassify(dataMatrix,dimen,threshVal,threshIneq):
    retArray = ones((shape(dataMatrix)[0],1))#构建m*1矩阵,m为dataMatrix第二维的长度,即行数
#下面一步的意义在于,数据的类别有两类,
#通过在阈值左右两边分别采用这两种类别来判断哪一种分类使得错误率更低。详情见下一函数
    if threshIneq == 'lt':#小于等于情况(第一遍)
        retArray[dataMatrix[:,dimen] <= threshVal] = -1.0
    else:#大于情况(第二遍)
        retArray[dataMatrix[:,dimen] >threshVal] = -1.0
    return retArray
#遍历stumpClassify函数所有的可能输入值,并且对每一层特征值生成单层决策树,
#然后从中挑选出最佳的单层决策树
#输入:数据集,类标签向量,数据权值向量
#输出:最佳单层决策树的相关信息,最小错误率,最佳预测结果
def buildStump(dataArr,classLabels,D):
    dataMatrix = mat(dataArr)#可计算化
    labelMat = mat(classLabels).T#可计算化并转置
    m,n = shape(dataMatrix)#获取矩阵各维度的值,此处为行数和列数
    #numSteps:步数;bestStump保存最佳单层决策树的相关信息;
    #bestClasEst:最佳预测结果
    numSteps = 10.0;bestStump ={
   };
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值