MCPcopy Create free account
hub / github.com/WenDesi/lihang_book_algorithm / AdaBoost

Class AdaBoost

AdaBoost/adaboost_cpp.py:40–147  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38
39
40class AdaBoost(object):
41
42 def __init__(self):
43 ll = ctypes.cdll.LoadLibrary
44 self.lib = ll("Sign/x64/Release/Sign.dll")
45
46 def rebuild_X(self,X):
47 length = self.n*self.N
48 self.X_matrix = (ctypes.c_int * length)()
49
50 for i in xrange(self.n):
51 for j in xrange(self.N):
52 self.X_matrix[i*self.N+j] = X[j][i]
53
54 def rebuild_Y(self,Y):
55 self.C_Y = (ctypes.c_int * self.N)()
56 for i in xrange(self.N):
57 self.C_Y[i] = Y[i]
58
59
60 def _init_parameters_(self,features,labels):
61 self.Y = labels
62
63 self.n = len(features[0])
64 self.N = len(features)
65 self.M = 100 # 分类器数目
66
67 self.w = [1.0/self.N]*self.N
68 self.alpha = []
69 self.classifier = []
70
71 self.rebuild_X(features)
72 self.rebuild_Y(labels)
73
74 def _w_(self,index,classifier,i):
75 feature = self.X_matrix[index*self.N+i]
76 return self.w[i]*math.exp(-self.alpha[-1]*self.Y[i]*classifier.predict(feature))
77
78 def _Z_(self,index,classifier):
79 Z = 0
80
81 for i in xrange(self.N):
82 Z += self._w_(index,classifier,i)
83
84 return Z
85
86 def build_c_w(self):
87 C_w = (ctypes.c_double * self.N)()
88 for i in xrange(self.N):
89 C_w[i] = ctypes.c_double(self.w[i])
90 return C_w
91
92 def train(self,features,labels):
93
94 self._init_parameters_(features,labels)
95
96 for times in xrange(self.M):
97 logging.debug('iterater %d' % times)

Callers 1

adaboost_cpp.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected