Ejemplo n.º 1
0
def main(dataset_name):
    num_class, num_feature, x_train, y_train, x_test, y_test = readdata.read_dataset(dataset_name)
    
    inverse_cov, weight, w0 = build_LDF_model(num_class, x_train, y_train)

    y_pred = LDF_predict(x_test, num_class, inverse_cov, weight, w0)
    #pdb.set_trace()
    print sklearn.metrics.classification_report(y_test, y_pred)
    
    print 'Average accuracy: ', sklearn.metrics.accuracy_score(y_test, y_pred)
Ejemplo n.º 2
0
def main(dataset_name):
    import readdata
    num_class, num_feature, x_train, y_train, x_test, y_test = readdata.read_dataset(
        dataset_name)

    inverse_cov, weight, w0 = build_LDF_model(num_class, x_train, y_train)

    y_pred = LDF_predict(x_test, num_class, inverse_cov, weight, w0)
    #pdb.set_trace()
    print sklearn.metrics.classification_report(y_test, y_pred)

    print 'Average accuracy: ', sklearn.metrics.accuracy_score(y_test, y_pred)
Ejemplo n.º 3
0
def main(dataset_name):
    num_class, num_feature, x_train, y_train, x_test, y_test = readdata.read_dataset(dataset_name)
    
    print 'Number of folds:'
    nfold = int(input())
    print 'Preparing cv dataset...'
    cv_dataset = prepare_cv_dataset(x_train, y_train, nfold)
    
    k = num_feature / 2
    bestk = k
    bestdelta0 = 0
    highest_prec = 0
    
    """
    while 1:
        print 'Input delta:'
        s = raw_input().strip()
        if s == '':
            break
        delta0 = float(s)
        
        avg_precision = cross_validation(cv_dataset, num_class, k, delta0)
        print 'cross valiation: k=%d, delta=%f, avg precision=%f\n' % (k, delta0, avg_precision)
        
        if avg_precision > highest_prec:
            highest_prec = avg_precision
            bestk = k
            bestdelta0 = delta0
            
    print 'Best k and delta0: ', bestk, bestdelta0
    print 'Best avg precision: ', highest_prec
    
    k = bestk
    delta0 = bestdelta0
    """
    prior, mean, eigenvalue, eigenvector, delta = build_MQDF_model(num_class, x_train, y_train, k, 0)

    y_pred = MQDF_predict(x_test, num_class, k, mean, eigenvalue, eigenvector, delta)
    
    #pdb.set_trace()
    print sklearn.metrics.classification_report(y_test, y_pred)
    
    print 'Average accuracy: ', sklearn.metrics.accuracy_score(y_test, y_pred)
Ejemplo n.º 4
0
def main(dataset_name):
    num_class, num_feature, x_train, y_train, x_test, y_test = \
        readdata.read_dataset(dataset_name)
        
    #prepare_cv_dataset(x_train, y_train, 3)
    
    print 'Number of folds:'
    nfold = int(input())
    print 'Preparing cv dataset...'
    cv_dataset = prepare_cv_dataset(x_train, y_train, nfold)
    
    best = [0, 0, 0] # beta, gamma, highest precision
    while 1:
        print 'Input beta, gamma:'
        s = raw_input().strip()
        if s == '':
            break
        beta, gamma = s.split()
        beta = float(beta)
        gamma = float(gamma)
        
        avg_precision = cross_validation(cv_dataset, num_class, beta, gamma)
        print 'cross valiation: beta=%f, gamma=%f, avg precision=%f' % (beta, gamma, avg_precision)
        
        if avg_precision > best[2]:
            best[2] = avg_precision
            best[0] = beta
            best[1] = gamma
            
    print 'Best beta and gamma: ', best[0], best[1]
    print 'Best avg precision: ', best[2]
    
    beta = best[0]
    gamma = best[1]
    prior, mean, cov_matrix = build_RDA_model(num_class, x_train, y_train, beta, gamma)
    # predict like QDF
    y_pred = QDF_predict(x_test, num_class, prior, mean, cov_matrix)
    print sklearn.metrics.classification_report(y_test, y_pred)
    
    print 'Average accuracy: ', sklearn.metrics.accuracy_score(y_test, y_pred)
Ejemplo n.º 5
0
        x = np.matrix(row, np.float64).T
        max_posteriori = -float('inf')
        prediction = -1
        for i in range(num_class):
            diff = x - mean[i]
            p = 2 * math.log(prior[i]) # we do not ignore priors here
            p = p - (diff.T * inverse_cov[i] * diff)[0,0] - log_det_cov[i]
            if p > max_posteriori:
                max_posteriori = p
                prediction = i
                
        predicted_labels.append(prediction)
        
    return predicted_labels

if __name__ == "__main__":
    import sys
    dataset_name = sys.argv[1]
    
    num_class, num_feature, x_train, y_train, x_test, y_test = readdata.read_dataset(dataset_name)
    
    prior, mean, cov_matrix = build_QDF_model(num_class, x_train, y_train)
    #print mean
    print_cov_matrix(cov_matrix)
    
    y_pred = QDF_predict(x_test, num_class, prior, mean, cov_matrix)
    #print predicted_labels
    print sklearn.metrics.classification_report(y_test, y_pred)
    
    print 'Average accuracy: ', sklearn.metrics.accuracy_score(y_test, y_pred)