def integrator():
    K=5
    Preprocessing.main()
    Boostrap.main(Preprocessing.inputSet)
    #print(Boostrap.testSet)
    global prediction
    prediction={}
    #bootstrapVoting
    for i in range(Boostrap.NO_OF_BOOTSTRAPS):
        print("*** %d BootStrap ****" %(i))
        #prediction[i]=KNN.main(Boostrap.bootstrap[i],Boostrap.testSet,K)
        (inputToRectifier,probabilityChart, priors, featureAndValues, trainSetLength)=NaiveBayes.NaiveBayes(Boostrap.bootstrap[i])
        print("********DECIION TREE************")
        tree=DecisionTree.GenerateTreeFromDatasetGivenByAssorter(inputToRectifier)
        print("********DECIION TREE ENDS************")
        print("********TEST NAIVE START************")
        probabilityDistributionChart=NaiveBayes.GetProbabilityDistributionTable(probabilityChart, priors, featureAndValues, Boostrap.testSet,trainSetLength)
        print("********TEST NAIVE ENDS************")
        print("********PREDICTION START************")
        prediction[i]=DecisionTree.PredictedList(probabilityDistributionChart,tree,Boostrap.testSet)
    #print("***prediction***",prediction)
    print("*********** BootStrapVoting *************")
    boostrapVoting()
    calculateTestError()