Example #1
0
def test_repe_test(times, features, classes):
    every_f1_test = {}
    array_means_test = np.array([])
    array_vars_test = np.array([])
    iii = 0

    while iii < times:
        x_train, y_train, x_cv, y_cv, x_test, y_test = TrainCvTest. \
            separate_databases(features, classes)
        clf = svm.trainSVM(x_train, y_train, call=True)

        F1Test = FScore.F1Score(x_test, y_test, clf)
        mTest = np.array([])
        for key in F1Test.keys():
            if key not in every_f1_test:
                every_f1_test[key] = F1Test[key]
            else:
                every_f1_test[key] = np.append(every_f1_test[key], F1Test[key])
            mTest = np.append(mTest, F1Test[key])

        array_means_test = np.append(array_means_test, mTest.mean())
        array_vars_test = np.append(array_vars_test, mTest.var())
        iii += 1

    return every_f1_test, array_means_test, array_vars_test
Example #2
0
def classify_new_sounds(folder_of_test_sounds, target_class):
    new_descriptors = {target_class: load_description(folder_of_test_sounds)}
    new_normalized_features, new_y_class, new_features_names = preprocess(new_descriptors)
    new_y_class = np.array([target_class]*len(new_y_class))
    descriptors = load_descriptors(maximum='Inf', reverbs=True)
    normalized_features, yClass, features_names = preprocess(descriptors)
    clf = trainSVM(normalized_features, yClass, call=True)
    F1 = F1Score(new_normalized_features, new_y_class, clf)

    return F1
def calcsvmMatrix(svm,C,toler,maxIter,train_x,train_y):
	svmMatrix=np.mat(np.zeros((40,40)))
	for i in range(40):
		for j in range(40):
			if i==j:
				continue
			else:
				#print(i,j)
				train_x_new=np.vstack((train_x[i*6:i*6+6,:],train_x[j*6:j*6+6,:]))
				train_y_new=np.hstack((train_y[i*6:i*6+6],train_y[j*6:j*6+6]))
				svmClassifier = svm.trainSVM(train_x_new, train_y_new, C, toler, maxIter, kernelOption = ('linear', 0))  
				print(svmClassifier.b)
				print(svmClassifier.alphas)
				#svmMatrix[i,j]=svmClassifier
	return svmMatrix
Example #4
0
def recall(XData, YData, clf=1):
    if clf == 1:
        clf = svm.trainSVM(XData, YData, True)

    predictions = []
    for iii in np.arange(YData.size):
        predictions = np.append(predictions, clf.predict(XData[iii, :])[0])

    tp = true_pos(predictions, YData)
    fn = false_neg(predictions, YData)

    recall = {}

    for key in tp.keys():
        recall[key] = tp[key] / float(tp[key] + fn[key])

    return recall
Example #5
0
def precision(XData, YData, clf=1):
    if clf == 1:
        clf = svm.trainSVM(XData, YData, True)

    predictions = []
    for iii in np.arange(YData.size):
        predictions = np.append(predictions, clf.predict(XData[iii, :])[0])

    tp = true_pos(predictions, YData)
    fp = false_pos(predictions, YData)

    precision_ = {}

    for key in tp.keys():
        try:
            precision_[key] = tp[key] / float(tp[key] + fp[key])
        except:
            precision_[key] = -1

    return precision_
Example #6
0
def test_repe_train_and_cv(times, features, classes):
    every_f1_train = {}
    every_f1_cv = {}
    array_means_train = np.array([])
    array_vars_train = np.array([])
    array_means_cv = np.array([])
    array_vars_cv = np.array([])
    iii = 0

    while iii < times:
        x_train, y_train, x_cv, y_cv, x_test, y_test = TrainCvTest. \
            separate_databases(features, classes)
        clf = svm.trainSVM(x_train, y_train, call=True)

        F1Train = FScore.F1Score(x_train, y_train, clf)
        mTest = np.array([])
        for key in F1Train.keys():
            if key not in every_f1_cv:
                every_f1_train[key] = F1Train[key]
            else:
                every_f1_train[key] = np.append(every_f1_train[key], F1Train[key])
            mTest = np.append(mTest, F1Train[key])

        array_means_train = np.append(array_means_train, mTest.mean())
        array_vars_train = np.append(array_vars_train, mTest.var())

        F1CV = FScore.F1Score(x_cv, y_cv, clf)
        mCV = np.array([])
        for key in F1CV.keys():
            if key not in every_f1_cv:
                every_f1_cv[key] = F1CV[key]
            else:
                every_f1_cv[key] = np.append(every_f1_cv[key], F1CV[key])
            mCV = np.append(mCV, F1CV[key])

        array_means_cv = np.append(array_means_cv, mCV.mean())
        array_vars_cv = np.append(array_vars_cv, mCV.var())
        iii += 1

    return every_f1_train, every_f1_cv, array_means_train, \
           array_vars_train, array_means_cv, array_vars_cv
Example #7
0
labels = []
# fileIn = open('../data/testSet.txt')
fileIn = open('../data/lr_data')
for line in fileIn.readlines():
    lineArr = line.strip().split('\t')
    dataSet.append([float(lineArr[0]), float(lineArr[1])])
    labels.append(float(lineArr[2]))

dataSet = mat(dataSet)
labels = mat(labels).T
train_x = dataSet[0:81, :]
train_y = labels[0:81, :]
test_x = dataSet[80:101, :]
test_y = labels[80:101, :]

## step 2: training...
print "step 2: training..."
C = 0.6
toler = 0.001
maxIter = 50
svmClassifier = svm.trainSVM(train_x, train_y, C, toler, maxIter, kernelOption=('linear', 0))

## step 3: testing
print "step 3: testing..."
accuracy = svm.testSVM(svmClassifier, test_x, test_y)

## step 4: show the result
print "step 4: show the result..."
print 'The classify accuracy is: %.3f%%' % (accuracy * 100)
svm.showSVM(svmClassifier)
Example #8
0
    lineArr = line.strip().split('\t')
    dataSet.append([float(lineArr[0]), float(lineArr[1])])
    labels.append(float(lineArr[2]))

dataSet = mat(dataSet)
labels = mat(labels).T
train_x = dataSet[0:81, :]
train_y = labels[0:81, :]
test_x = dataSet[80:101, :]
test_y = labels[80:101, :]

## step 2: training
print("step 2: training...")
C = 0.6
toler = 0.001
maxIter = 50
svmClassifier = svm.trainSVM(train_x,
                             train_y,
                             C,
                             toler,
                             maxIter,
                             kernelOption=('linear', 0))

## step 3: testing
print("step 3: testing...")
accuracy = svm.testSVM(svmClassifier, test_x, test_y)

## step 4: show the result
print("step 4: show the result...")
print('The classify accuracy is: %.3f%%' % (accuracy * 100))
svm.showSVM(svmClassifier)
Example #9
0
print "step 1: load data..."
dataSet = []
labels = []
fileIn = open('D:/soft/python/testSet.txt')
for line in fileIn.readlines():
    lineArr = line.strip().split('\t')
    dataSet.append([float(lineArr[0]), float(lineArr[1])])
    labels.append(float(lineArr[2]))

dataSet = mat(dataSet)## numPy 函数, 将数组转化为矩阵
labels = mat(labels).T
train_x = dataSet[0:81, :]
train_y = labels[0:81, :]
test_x = dataSet[80:101, :]
test_y = labels[80:101, :]

## step 2: training...
print "step 2: training..."
C = 0.6
toler = 0.001 ## 迭代的终止条件
maxIter = 50
svmClassifier = svm.trainSVM(train_x, train_y, C, toler, maxIter, kernelOption = ('linear', 0)) ##  //() 元组就像不可更改的列表list【】

## step 3: testing
print "step 3: testing..."
accuracy = svm.testSVM(svmClassifier, test_x, test_y)

## step 4: show the result
print "step 4: show the result..."    
print 'The classify accuracy is: %.3f%%' % (accuracy * 100)
svm.showSVM(svmClassifier)
Example #10
0
    # print(type(data))
    # print(label.shape)
    # print(datas.shape)


if __name__ == '__main__':
    # data,label = svm.loadDataSet("testSet.txt")
    print("step 1:load data...")
    train, test, train_label, test_label = loadDataSet("testSet.txt")
    print("step 2: training...")
    C = 0.6
    toler = 0.001
    maxIter = 40
    svmClassifier, b, alpha = svm.trainSVM(train,
                                           train_label,
                                           C,
                                           toler,
                                           maxIter,
                                           kernelOption=('linear', 0))
    # # print(b)
    # # print(alpha[alpha>0])
    joblib.dump(svmClassifier, "train_model.m")  # 保存模型
    # svmClassifier = joblib.load("train_model.m")#加载模型
    # # ## step 3: testing
    print("step 3: testing...")
    test_accuracy = svm.testSVM(svmClassifier, test, test_label)
    # print(accuracy)
    print('The classify test_accuracy is: %.3f%%' % (test_accuracy * 100))
    ## step 4: show the result
    print("step 4: show the result...")
    svm.showSVM(svmClassifier)