コード例 #1
0
ファイル: Proj1Boosted.py プロジェクト: skibold/ml-class
def train(feats, labels, T):
	ab_labels = transform_labels(labels)
	ft = feats.transpose()
	abs = []
	for i in range(30):
		abs.append(AdaBoost(T, ft[i], ab_labels))
		abs[-1].train()
	return abs
コード例 #2
0
ファイル: launcher.py プロジェクト: CristoferQ/DMAKit
def main():

    print "Init data"
    data = pd.read_csv(sys.argv[1])
    columnas = data.columns.tolist()
    x = columnas[len(columnas) - 1]
    target = data[x]
    y = columnas[0:len(columnas) - 1]
    dataset = data[y]

    AdaBoostObject = AdaBoost.AdaBoost(dataset, target, 3, 'SAMME', 10)
    AdaBoostObject.trainingMethod()

    #curva roc
    #curveRocObject = createRocCurve.curveRoc(dataset, target, AdaBoostObject.model, 10, 'user', 'job', 'path')
    #curveRocObject.createCurveROC()

    #precision-recall curve
    #precisionCurve = createPrecisionRecallCurve.curvePrecision(dataset, target, AdaBoostObject.model, 10, 'user', 'job', 'path')
    #precisionCurve.plot_precision_and_recall_curve()

    #learning curve
    #learningCurveDemo = createLearningCurve.curveLearning(dataset, target, AdaBoostObject.model, 10, 'user', 'job', 'path')
    #learningCurveDemo.createLearningCurve()

    #confusion matrix data
    confusionMatrixDemo = createConfusionMatrix.confusionMatrix(
        dataset, target, AdaBoostObject.model, 10, 'user', 'job', 'path',
        ["Clinical", "No Clinical"])
    confusionMatrixDemo.createConfusionMatrix()

    #bagginObject = Baggin.Baggin(dataset,target,3,10)
    #bagginObject.trainingMethod()
    #bernoulliNB = BernoulliNB.Bernoulli(dataset, target, 10)
    #bernoulliNB.trainingMethod()
    #decisionTreeObject = DecisionTree.DecisionTree(dataset, target, 'entropy', 'best',10)
    #decisionTreeObject.trainingMethod()
    #gaussianObject = GaussianNB.Gaussian(dataset, target, 10)
    #gaussianObject.trainingMethod()
    #gradientObject = Gradient.Gradient(dataset,target,3,10)
    #gradientObject.trainingMethod()
    #knnObect = knn.knn(dataset, target, 2, 'auto', 'minkowski', 10)
    #knnObect.trainingMethod()
    #MLPObject = MLP.MLP(dataset,target,'relu', 'sgd', 'adaptive', 1,1,1,10)
    #MLPObject.trainingMethod()
    #nuSVM = NuSVM.NuSVM(dataset,target,'poly',10)
    #nuSVM.trainingMethod()
    #rf = RandomForest.RandomForest(dataset,target,10,'gini',10)
    #rf.trainingMethod()
    #svm = SVM.SVM(dataset, target, 'poly', 10)
    #svm.trainingMethod()

    return 0
コード例 #3
0
def TrainAndTestAdaBoostWeakBinPerceptron():
    if len(digits) > 2:
        print "digits should be 2 digits in the case of Binary Perceptron"
    print "Running the AdaBoost with Weak Binary Perceptron"
    print "the digits it shall descriminate between: " + str(
        digits[0]) + "," + str(digits[1])
    print "the label 1 will be given to the digit " + str(digits[0])
    fullimg, lbl = rn.getData(digits, "training")
    binlbl = rn.BinaryLabels(lbl, digit)
    reducedList = rn.getReductionList(colnum, rownum)
    img = rn.ReduceSetDimension(reducedList, fullimg)
    adaboost = ab.AdaBoost(pr.Perceptron, img, binlbl, Twl,
                           int(len(lbl) * alpha))
    print "Error on the Training data: " + str(
        pr.TestClassifier(img, binlbl, adaboost) * 100.0) + "%"
    print "(out of " + str(len(binlbl)) + " samples)"
    print "Extracting the Testing Data"
    fullimg, lbl = rn.getData(digits, "testing")
    img = rn.ReduceSetDimension(reducedList, fullimg)
    binlbl = rn.BinaryLabels(lbl, digit)
    print "Error on the Testing data: " + str(
        pr.TestClassifier(img, binlbl, adaboost) * 100.0) + "%"
    print "(out of " + str(len(binlbl)) + " samples)"
コード例 #4
0
def main(number_of_stages, set_pos, set_neg):
    trainer = AdaBoost(set_pos, set_neg, number_of_stages)
    classifiers = trainer.train_simple()
    image = cv2.imread("1.pgm")
    print(StrongClassifier(classifiers, pgm_simplifier(image)).get_result())
コード例 #5
0
PP = PreProcess.PreProcess(data, n_buckets=10,
                           func='boolean')  #,swap_labels=True)
data = PP.fit(data)
testset = PP.fit(testset)

# read weights

weights = []

for w in range(6):
    tmp = [float(line.rstrip('\n')) for line in open('result/W' + str(w))]
    if len(tmp) != len(data[0]):
        continue
    weights.append(tmp)

ab = AdaBoost.AdaBoost(weightVector=weights)
ab.fit(data, data_labels)

predictTrain = ab.predict(data)
predictTest = ab.predict(testset)

print("Accuracy for training set:")
print(Stat.Accuracy(predictTrain, data_labels))

print("F1 score for training set:")
print(Stat.F1_Score(predictTrain, data_labels))

print("Precision for training set:")
print(Stat.Precision(predictTrain, data_labels))

print("Recall for training set:")
コード例 #6
0
ファイル: Proj1Boosted.py プロジェクト: skibold/ml-class
from AdaBoost import *
from sys import argv

x_train = argv[1]
y_train = argv[2]
x_test = argv[3]
y_test = argv[4]
T = int(argv[5])

feats = np.loadtxt(x_train, delimiter=',', dtype=np.float).transpose()
labels = np.loadtxt(y_train, delimiter=',', dtype=np.int)
ab_labels = np.array([1 if i == 1 else -1 for i in labels])
abs = []
for i in range(30):
    abs.append(AdaBoost(T, feats[i], ab_labels))
    abs[-1].train()

x_test = np.loadtxt(x_test, delimiter=',', dtype=np.float)
y_test = np.loadtxt(y_test, delimiter=',', dtype=np.float)
ab_y_test = np.array([1 if i == 1 else -1 for i in y_test])
predictions = []
for i in range(x_test.shape[0]):
    predictions.append(
        np.sign(
            np.sum([abs[j].eval(x_test[i][j])
                    for j in range(x_test.shape[1])])))

print("accuracy = {}".format(
    len(np.where(predictions == ab_y_test)[0]) / len(ab_y_test)))