def trainAndEval(trainInData, trainOutData, trainWeights, testInData, testOutData, optionList, lossFun): optionCount = len(optionList) loss = np.zeros((optionCount, )) trainer = jrboost.BoostTrainer(trainInData, trainOutData, trainWeights) loss = trainer.trainAndEval(testInData, testOutData, optionList, lossFun) return loss
def trainAndPredict(trainInData, trainOutData, validationInData, bestOptList): predOutDataList = [] trainer = jrboost.BoostTrainer(trainInData, trainOutData) for opt in bestOptList: predictor = trainer.train(opt) predOutDataList.append(predictor.predict(validationInData)) predOutData = np.median(np.array(predOutDataList), axis=0) return predOutData
def trainAndEval(inData, outData, samples, foldCount, optionList, lossFun): optionCount = len(optionList) loss = np.zeros((optionCount, )) folds = jrboost.stratifiedRandomFolds(outData, foldCount, samples) for trainSamples, testSamples in folds: trainInData = inData[trainSamples, :] testInData = inData[testSamples, :] trainOutData = outData[trainSamples] testOutData = outData[testSamples] trainer = jrboost.BoostTrainer(trainInData, trainOutData) loss += trainer.trainAndEval(testInData, testOutData, optionList, lossFun) return loss
def trainAndPredict(inData, outData, trainSamples, testSamples, opt, rankFun=None): trainInData = inData[trainSamples, :] testInData = inData[testSamples, :] trainOutData = outData[trainSamples] trainer = jrboost.BoostTrainer(trainInData, trainOutData) predOutDataList = [] for opt1 in opt: predictor = trainer.train(opt1) predOutData = predictor.predict(testInData) predOutDataList.append(predOutData) predOutData = np.median(np.array(predOutDataList), axis=0) return predOutData