def main(): iris = datasets.load_iris() x = iris.data[50:150] t = iris.target[50:150] for i in range(100): if t[i] == 2: t[i] = -1 skf = model_selection.StratifiedKFold(n_splits=10) avg_accuracy = 0 for train, test in skf.split(x, t): classifier = PerceptronClassifier(4, 0.1) classifier.learn(t[train], x[train]) accuracy = 0.0 for test_x, test_t in zip(x[test], t[test]): test_y = classifier.classify(test_x) if test_y == test_t: accuracy += 1 accuracy /= len(test) avg_accuracy += accuracy avg_accuracy /= 10 print 'average accuracy:', avg_accuracy * 100, '%'
def testing(num): trainData = samples.loadImagesFile("data/facedata/facedatatrain", num, 60, 70) trainLabels = samples.loadLabelsFile("data/facedata/facedatatrainlabels", num) testData = samples.loadImagesFile("data/facedata/facedatatest", 150, 60, 70) testLabels = samples.loadLabelsFile("data/facedata/facedatatestlabels", 151) validData = samples.loadImagesFile("data/facedata/facedatavalidation", 301, 60, 70) validLabels = samples.loadLabelsFile("data/facedata/facedatavalidationlabels", 301) perceptron=PerceptronClassifier(trainData, trainLabels,0) perceptron.train(trainData, trainLabels,10) print "===================================" print "Test Data" guess=perceptron.classify(testData) samples.verify(perceptron, guess, testLabels) print "===================================" print "Validation Data" guess=perceptron.classify(validData) samples.verify(perceptron,guess,validLabels)
def testing(num): trainData = samples.loadImagesFile("data/digitdata/trainingimages", num, 28, 28) trainLabels = samples.loadLabelsFile("data/digitdata/traininglabels", num) testData = samples.loadImagesFile("data/digitdata/testimages", 1000, 28, 28) testLabels = samples.loadLabelsFile("data/digitdata/testlabels", 1000) validData = samples.loadImagesFile("data/digitdata/validationimages", 1000, 28, 28) validLabels = samples.loadLabelsFile("data/digitdata/validationlabels", 1000) perceptron=PerceptronClassifier(trainData, trainLabels,0) perceptron.train(trainData, trainLabels,10) print "***********************************" print "*************Test Data*************" guess=perceptron.classify(testData) samples.verify(perceptron, guess, testLabels) print "***********************************" print "************Valid Data*************" guess=perceptron.classify(validData) samples.verify(perceptron,guess,validLabels)
def testing(num): trainData = samples.loadImagesFile("data/digitdata/trainingimages", num, 28, 28) trainLabels = samples.loadLabelsFile("data/digitdata/traininglabels", num) testData = samples.loadImagesFile("data/digitdata/testimages", 1000, 28, 28) testLabels = samples.loadLabelsFile("data/digitdata/testlabels", 1000) validData = samples.loadImagesFile("data/digitdata/validationimages", 1000, 28, 28) validLabels = samples.loadLabelsFile("data/digitdata/validationlabels", 1000) perceptron=PerceptronClassifier(trainData, trainLabels,0) perceptron.train(trainData, trainLabels,10) print "===================================" print "Test Data" guess=perceptron.classify(testData) samples.verify(perceptron, guess, testLabels) print "===================================" print "Validation Data" guess=perceptron.classify(validData) samples.verify(perceptron,guess,validLabels)
def testing(num): trainData = samples.loadImagesFile("data/facedata/facedatatrain", num, 60, 70) trainLabels = samples.loadLabelsFile("data/facedata/facedatatrainlabels", num) testData = samples.loadImagesFile("data/facedata/facedatatest", 150, 60, 70) testLabels = samples.loadLabelsFile("data/facedata/facedatatestlabels", 151) validData = samples.loadImagesFile("data/facedata/facedatavalidation", 301, 60, 70) validLabels = samples.loadLabelsFile( "data/facedata/facedatavalidationlabels", 301) perceptron = PerceptronClassifier(trainData, trainLabels, 0) perceptron.train(trainData, trainLabels, 10) print "===================================" print "Test Data" guess = perceptron.classify(testData) samples.verify(perceptron, guess, testLabels) print "===================================" print "Validation Data" guess = perceptron.classify(validData) samples.verify(perceptron, guess, validLabels)
class Perceptron: def __init__(self): iris = datasets.load_iris() x = iris.data[0:150] t = iris.target[0:150] for i in range(150): if t[i] == 0: t[i] = -1 if t[i] == 2: t[i] = 1 self.classifier = PerceptronClassifier(4, 0.1) self.classifier.learn(t, x) def predict(self, x): y = self.classifier.classify(x) if y == -1: return 'setosa' else: return None
FaceData.FACE_DATUM_HEIGHT) # Conduct training and testing percentages, runtimes = ([], []) for n, n_samples in enumerate( range(n_train // 10, n_train + 1, n_train // 10)): start_time = time.time() print('Training with {}% of data'.format((n + 1) * 10)) idx = np.random.choice(n_train, n_samples, replace=False) train_img_sample = np.array(trainingDataList)[idx].tolist() train_labels_sample = np.array( face_data.face_train_labels)[idx].tolist() errors = classifier.train(train_img_sample, train_labels_sample) print('errors over 3 iterations', errors) print('Validating...') validation_guesses = classifier.classify(validationDataList) correct = [ validation_guesses[i] == face_data.face_validation_labels[i] for i in range(len(face_data.face_validation_labels)) ].count(True) print(str(correct), 'correct out of ', str(len(face_data.face_validation_labels))) print('Testing...') test_guesses = classifier.classify(testDataList) correct = [ test_guesses[i] == face_data.face_test_labels[i] for i in range(len(face_data.face_test_labels)) ].count(True) percentage = (100.0 * correct / len(face_data.face_test_labels)) print(str(correct), 'correct out of ', str(len(face_data.face_test_labels)), 'percentage ', percentage)