def go(self): base = lambda X: sorted(X)[-1] - sorted(X)[0] newRows = lambda newTab: map(lambda Rows: Rows.cells[:-1], newTab._rows) after = lambda newTab: self.pred( train_DF, newTab, tunings=self.tunedParams, smoteit=True) frac = lambda aft: 1 - (sum([0 if a < 1 else 1 for a in aft]) \ / sum([0 if b < 1 else 1 for b in actual])) for planner in ['XTREE', 'BIC', 'CD', 'CD+FS']: out = [planner] for _ in xrange(self.reps): predRows = [] train_DF = createTbl(self.train[self._n], isBin=True) test_df = createTbl(self.test[self._n], isBin=True) actual = np.array(Bugs(test_df)) before = self.pred(train_DF, test_df, tunings=self.tunedParams, smoteit=True) predRows = [row.cells for row in createTbl( self.test[self._n], isBin=True)._rows if row.cells[-2] > 0] predTest = genTable(test_df, rows=predRows, name='Before_temp') "Apply Different Planners" if planner == 'xtrees': newTab = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=True).main() genTable(test_df, rows=newRows(newTab), name='After_xtrees') # set_trace() elif planner == 'XTREE' or planner == 'XTREE': newTab = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=False).main() elif planner == 'BIC': newTab = HOW(train=self.train[-1], test=self.test[-1], test_df=predTest).main() elif planner == 'CD': newTab = strawman(train=self.train[-1], test=self.test[-1]).main() elif planner == 'CD+FS': newTab = strawman(train=self.train[-1], test=self.test[-1] , prune=True).main() out.append(frac(after(newTab))) # self.logResults(out) yield out
def go(self): rseed(1) for planner in ['xtrees', 'cart', 'HOW', 'baseln0', 'baseln1']: out = [planner] predRows = [] train_DF = createTbl(self.train[self._n], isBin=True) test_df = createTbl(self.test[self._n], isBin=True) actual = np.array(Bugs(test_df)) before = self.pred(train_DF, test_df, tunings=self.tunedParams, smoteit=True) base = lambda X: sorted(X)[-1] - sorted(X)[0] newRows = lambda newTab: map(lambda Rows: Rows.cells[:-1], newTab._rows) after = lambda newTab: self.pred(train_DF, newTab, tunings=self.tunedParams , smoteit=True) frac = lambda aft: sum([0 if a < 1 else 1 for a in aft] ) / sum([0 if b < 1 else 1 for b in before]) predRows = [row.cells for predicted, row in zip(before , createTbl(self.test[self._n] , isBin=False)._rows) if predicted > 0] predTest = genTable(test_df, rows=predRows) for _ in xrange(self.reps): "Apply Different Planners" if planner == 'xtrees': newTab = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=True).main() elif planner == 'cart' or planner == 'CART': newTab = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=False).main() elif planner == 'HOW': newTab = HOW(train=self.train[-1], test=self.test[-1], test_df=predTest).main() elif planner == 'baseln0': newTab = strawman(train=self.train[-1], test=self.test[-1]).main() elif planner == 'baseln1': newTab = strawman(train=self.train[-1] , test=self.test[-1], prune=True).main() out.append(frac(after(newTab))) self.logResults(out) yield out
def learner(mdl=XOMO, n=0, reps=24, numel=1000): train, test = mdl(n=0).genData(N=numel) for planner in ['dtree', 'HOW', 'baseln0', 'baseln1']: E = [planner] before = array(predictor(Model=mdl, n=n, tbl=createTbl(train))) after = lambda newTab: array(predictor(Model=mdl, n=n, tbl=newTab)) frac = lambda aft: sum(aft) / sum(before) for _ in xrange(reps): "Apply Different Planners" if planner == 'xtrees': if mdl == POM3 and n == 1: newTab = xtrees(train=train, test=test, bin=False, smoteit=False, majority=True).main(which='Best') else: newTab = xtrees(train=train, test=test, bin=False, smoteit=False, majority=True).main(which='Best') if planner == 'dtree': if mdl == POM3 and n == 1: newTab = xtrees(train=train, test=test, bin=False, smoteit=False, majority=False).main(which='Best') else: newTab = xtrees(train=train, test=test, bin=False, smoteit=False, majority=False).main(which='Best') if planner == 'HOW': newTab = HOW(train=train, test=test).main() if planner == 'baseln0': newTab = strawman( train=train, test=test).main(mode='models') if planner == 'baseln1': newTab = strawman( train=train, test=test, prune=True).main(mode='models') E.append(frac(after(newTab))) yield E
def deltas(self, planner): delta = [] train_DF = createTbl(self.train[self._n], isBin=True, bugThres=1) test_df = createTbl(self.test[self._n], isBin=True, bugThres=1) actual = np.array(Bugs(test_df)) before = self.pred(train_DF, test_df, tunings=self.tunedParams, smoteit=True) allRows = np.array( map( lambda Rows: np.array( Rows.cells[ :- 1]), train_DF._rows + test_df._rows)) def min_max(): N = len(allRows[0]) base = lambda X: sorted(X)[-1] - sorted(X)[0] return [base([r[i] for r in allRows]) for i in xrange(N)] predRows = [row.cells for row in createTbl( self.test[self._n], isBin=True)._rows if row.cells[-2] > 0] write2file(predRows, fname='before') # save file """ Apply Learner """ for _ in xrange(1): predTest = genTable(test_df, rows=predRows) newRows = lambda newTab: map(lambda Rows: Rows.cells[:-1], newTab._rows) "Apply Different Planners" if planner == 'xtrees': xTrees = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=True).main(justDeltas=True) delta.append( [d for d in self.delta1(xTrees, train_DF.headers, norm=len(predRows))]) return (np.sum( delta[0], axis=0) / np.array((len(predRows[0]) - 2) * [len(predRows)])).tolist() elif planner == 'XTREE' or planner == 'XTREE': C4_5 = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=False).main(justDeltas=True) delta.append( [d for d in self.delta1(C4_5, train_DF.headers, norm=len(predRows))]) return (np.sum( delta[0], axis=0) / np.array((len(predRows[0]) - 2) * [len(predRows)])).tolist() elif planner == 'BIC': how = HOW(train=self.train[-1], test=self.test[-1], test_df=predTest).main(justDeltas=True) delta.append( [d for d in self.delta1(how, train_DF.headers, norm=len(predRows))]) return (np.sum( delta[0], axis=0) / np.array((len(predRows[0]) - 2) * [len(predRows)])).tolist() elif planner == 'CD': baseln = strawman( train=self.train[-1], test=self.test[-1]).main(justDeltas=True) delta.append( [d for d in self.delta1(baseln, train_DF.headers, norm=len(predRows))]) return (np.sum( delta[0], axis=0) / np.array((len(predRows[0]) - 2) * [len(predRows)])).tolist() elif planner == 'CD+FS': baselnFss = strawman( train=self.train[-1], test=self.test[-1], prune=True).main(justDeltas=True) delta.append( [d for d in self.delta1(baselnFss, train_DF.headers, norm=len(predRows))]) return (np.sum( delta[0], axis=0) / np.array((len(predRows[0]) - 2) * [len(predRows)])).tolist()
def deltas(self, planner): predRows = [] delta = [] train_DF = createTbl(self.train[self._n], isBin=True, bugThres=1) test_df = createTbl(self.test[self._n], isBin=True, bugThres=1) before = self.pred(train_DF, test_df, tunings=self.tunedParams, smoteit=True) allRows = np.array(map(lambda Rows: np.array(Rows.cells[:-1]) , train_DF._rows + test_df._rows)) def min_max(): N = len(allRows[0]) base = lambda X: sorted(X)[-1] - sorted(X)[0] return [base([r[i] for r in allRows]) for i in xrange(N)] predRows = [row.cells for predicted, row in zip(before , createTbl(self.test[self._n] , isBin=False)._rows) if predicted > 0] write2file(predRows, fname='before') # save file """ Apply Learner """ for _ in xrange(1): predTest = genTable(test_df, rows=predRows) newRows = lambda newTab: map(lambda Rows: Rows.cells[:-1] , newTab._rows) "Apply Different Planners" if planner == 'xtrees': xTrees = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=True).main(justDeltas=True) delta.append([d for d in self.delta1(xTrees, train_DF.headers, norm=min_max())]) return delta[0] elif planner == 'cart' or planner == 'CART': cart = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=False).main(justDeltas=True) delta.append([d for d in self.delta1(cart, train_DF.headers, norm=min_max())]) set_trace() return delta[0] elif planner == 'HOW': how = HOW(train=self.train[-1], test=self.test[-1], test_df=predTest).main() write2file(newRows(xTrees), fname='HOW') # save file delta.append([d for d in self.delta0(Planner='HOW', norm=min_max())]) return delta[0] elif planner == 'Baseline': baseln = strawman(train=self.train[-1], test=self.test[-1]).main() write2file(newRows(xTrees), fname='base0') # save file delta.append([d for d in self.delta0(Planner='base0', norm=min_max())]) return delta[0] elif planner == 'Baseline+FS': baselnFss = strawman( train=self.train[-1], test=self.test[-1], prune=True).main() write2file(newRows(xTrees), fname='base1') # save file delta.append([d for d in self.delta0(Planner='base1', norm=min_max())]) return delta[0]
def deltas(self, planner): predRows = [] delta = [] train_DF = createTbl(self.train[self._n], isBin=True, bugThres=1) test_df = createTbl(self.test[self._n], isBin=True, bugThres=1) before = self.pred(train_DF, test_df, tunings=self.tunedParams, smoteit=True) allRows = np.array( map(lambda Rows: np.array(Rows.cells[:-1]), train_DF._rows + test_df._rows)) def min_max(): N = len(allRows[0]) base = lambda X: sorted(X)[-1] - sorted(X)[0] return [base([r[i] for r in allRows]) for i in xrange(N)] predRows = [ row.cells for predicted, row in zip( before, createTbl(self.test[self._n], isBin=False)._rows) if predicted > 0 ] write2file(predRows, fname='before') # save file """ Apply Learner """ for _ in xrange(1): predTest = genTable(test_df, rows=predRows) newRows = lambda newTab: map(lambda Rows: Rows.cells[:-1], newTab. _rows) "Apply Different Planners" if planner == 'xtrees': xTrees = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=True).main(justDeltas=True) delta.append([ d for d in self.delta1( xTrees, train_DF.headers, norm=min_max()) ]) return delta[0] elif planner == 'cart' or planner == 'CART': cart = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=False).main(justDeltas=True) delta.append([ d for d in self.delta1( cart, train_DF.headers, norm=min_max()) ]) set_trace() return delta[0] elif planner == 'HOW': how = HOW(train=self.train[-1], test=self.test[-1], test_df=predTest).main() write2file(newRows(xTrees), fname='HOW') # save file delta.append( [d for d in self.delta0(Planner='HOW', norm=min_max())]) return delta[0] elif planner == 'Baseline': baseln = strawman(train=self.train[-1], test=self.test[-1]).main() write2file(newRows(xTrees), fname='base0') # save file delta.append( [d for d in self.delta0(Planner='base0', norm=min_max())]) return delta[0] elif planner == 'Baseline+FS': baselnFss = strawman(train=self.train[-1], test=self.test[-1], prune=True).main() write2file(newRows(xTrees), fname='base1') # save file delta.append( [d for d in self.delta0(Planner='base1', norm=min_max())]) return delta[0]
def go(self): rseed(1) for planner in ['xtrees', 'cart', 'HOW', 'baseln0', 'baseln1']: out = [planner] predRows = [] train_DF = createTbl(self.train[self._n], isBin=True) test_df = createTbl(self.test[self._n], isBin=True) actual = np.array(Bugs(test_df)) before = self.pred(train_DF, test_df, tunings=self.tunedParams, smoteit=True) base = lambda X: sorted(X)[-1] - sorted(X)[0] newRows = lambda newTab: map(lambda Rows: Rows.cells[:-1], newTab. _rows) after = lambda newTab: self.pred( train_DF, newTab, tunings=self.tunedParams, smoteit=True) frac = lambda aft: sum([0 if a < 1 else 1 for a in aft]) / sum( [0 if b < 1 else 1 for b in before]) predRows = [ row.cells for predicted, row in zip( before, createTbl(self.test[self._n], isBin=False)._rows) if predicted > 0 ] predTest = genTable(test_df, rows=predRows) for _ in xrange(self.reps): "Apply Different Planners" if planner == 'xtrees': newTab = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=True).main() elif planner == 'cart' or planner == 'CART': newTab = xtrees(train=self.train[-1], test_DF=predTest, bin=False, majority=False).main() elif planner == 'HOW': newTab = HOW(train=self.train[-1], test=self.test[-1], test_df=predTest).main() elif planner == 'baseln0': newTab = strawman(train=self.train[-1], test=self.test[-1]).main() elif planner == 'baseln1': newTab = strawman(train=self.train[-1], test=self.test[-1], prune=True).main() out.append(frac(after(newTab))) self.logResults(out) yield out