8.1 某公司招聘支援考查身体、业务能力、发展潜力这三项。身体分为合格1、不合格0两级,业务能力和发展潜力分为上1,中2,下3三级。分类为合格1,不合格-1两类。已知10个人的数据,如下表所示,假设弱分类器为决策树桩,试用AdaBoost算法学习一个强分类器。
应聘人员情况数据表
1 2 3 4 5 6 7 8 9 10
身体 0 0 1 1 1 0 1 1 1 0
业务 1 3 2 1 2 1 1 1 3 2
潜力 3 1 2 3 3 2 2 1 1 1
分类 -1 -1 -1 -1 -1 -1 1 1 -1 -1
#-*- coding:UTF-8 -*-
import numpy as np
class ABSboost():
def __init__(self,Cdt,X,Y):
self.Cdt = Cdt
self.X = X
self.Y = Y
self.N = len(Y)
self.D = []
self.Gx = []
self.createGxFun()#创建所有可能的分类器
def createGxFun(self):
self.AllGX = {}
R = set(self.Y)
for i,c in enumerate(self.Cdt):
cvalue = set(self.X[::,i:i+1:1].T[0])#找到该条件的可能值