Beispiel #1
0
def linear_model_normal(valSet,is_visual):
    if valSet==None:
        data, label = creatingMat.createDataSet()
        X_train=data[0:-100]
        Y_train=label[0:-100]
        X_test=data[-100:]
        Y_test=label[-100:]
    else:
        X_train = valSet[0]
        Y_train = valSet[1]
        X_test = valSet[2]
        Y_test = valSet[3]
        
    linearModel_normal=LinearModel.myLM()
    linearModel_normal.myLMtrain(X_train , Y_train )   
    Y_result=linearModel_normal.myLMpredict(X_test)
    
    
    if is_visual==True:
        
        #visualization
        makeVisual(Y_test,Y_result,'Linear Regression Using Normal equation')
        Global.getAccuracy(Y_test, Y_result, 20)
    else:
        #----------------------- return Global.getAccuracy(Y_test, Y_result, 20)
        return Global.getCorrelation(Y_test, Y_result)
Beispiel #2
0
def svr_models(valSet,is_visual,C_cons=1e3):
    
    min_max_scaler = preprocessing.MinMaxScaler()
    svr_lin = SVR(kernel='linear', C=C_cons)
    
    if valSet == None:
        data, label = creatingMat.createDataSet()
        X_train = data[0:-100]
        Y_train = label[0:-100]
        X_test = data[-100:]
        Y_test = label[-100:]
    else:
        X_train = valSet[0]
        Y_train = valSet[1]
        X_test = valSet[2]
        Y_test = valSet[3]   
        X_minmax = min_max_scaler.fit_transform(X_train + X_test)
        Y_minmax = min_max_scaler.fit_transform(Y_train + Y_test)
        X_train_minmax = array(X_minmax[0:-100])
        Y_train_minmax = array(Y_minmax[0:-100])
        X_test_minmax = array(X_minmax[-100:])
        Y_test_minmax = array(Y_minmax[-100:])
    Y_train_minmax_1d=[i[0] for i in Y_train_minmax ]
    Y_result=svr_lin.fit(X_train_minmax,Y_train_minmax_1d).predict(array(X_test_minmax))
    Y_result_new=[[i] for i in Y_result]
    F_result = Global.getAccuracy(Y_test_minmax, Y_result_new, 20)
    return  Global.getCorrelation(Y_test_minmax, Y_result_new)
Beispiel #3
0
def makeVisual(Y_test,Y_result,label_string):
        Xaxi = range(1, 50)
        Yaxi = [Global.getAccuracy(Y_test, Y_result, i) for i in Xaxi ]
        plt.axis([0, 70, 0, 52])
        plt.xlabel('Success percentage')
        plt.ylabel('Error Tolerance')
        plt.title('Success percentage Against Error Tolerance ')
        plt.plot(Yaxi, Xaxi, color='red', label=label_string, linewidth=2.5, linestyle="-")
        plt.legend()
        plt.show()
Beispiel #4
0
def linear_model_gradient(valSet,is_visual):
    if valSet==None:
        data, label = creatingMat.createDataSet()
        X_train=data[0:-100]
        Y_train=label[0:-100]
        X_test=data[-100:]
        Y_test=label[-100:]
    else:
        X_train = valSet[0]
        Y_train = valSet[1]
        X_test = valSet[2]
        Y_test = valSet[3]
        
    regr = linear_model.LinearRegression()
    Y_result=regr.fit(X_train,Y_train).predict(X_test)
    if is_visual==True:
        
        #visualization
        makeVisual(Y_test,Y_result,'Linear Regression Using Gradient Descent')
        return Global.getAccuracy(Y_test, Y_result, 20)
    else:
        return Global.getAccuracy(Y_test, Y_result, 20)
Beispiel #5
0
def getSuccessValue(featureList, tollerance):
    """
        it is for get success ratio of subset 
        Args: list of subset , error tolerance
        Returns: Success rate of corresponding subset
    """
    data, label = createCustomeDataSet(featureList)
    X_train = data[0:-100]
    Y_train = label[0:-100]
    X_test = data[100:]
    Y_test = label[100:]
    regr = linear_model.LinearRegression()
    Y_result = regr.fit(X_train, Y_train).predict(X_test)
    return Global.getAccuracy(Y_test, Y_result, tollerance)
Beispiel #6
0
def waste():
    colors = ['red', 'blue', 'green']
    labels = {'red':'SVM-Linear', 'blue':'SVM-Polynomial', 'green':'SVM-RBF'}
    Xaxi = range(1, 50)
    
    #visualization
    plt.axis([0, 70, 0, 52])
    plt.xlabel('Success percentage')
    plt.ylabel('Error Tolerance')
    plt.title('Success percentage Against Error Tolerance ')
    results=0
    Y_test_minmax=0
    for result, colr in zip(results, colors): 
        Y_test = [[i] for i in result]
        Yaxi = [Global.getAccuracy(Y_test_minmax, Y_test, i) for i in Xaxi ]
        plt.plot(Yaxi, Xaxi, color=colr, label=labels[colr], linewidth=2.5, linestyle="-")
        plt.legend()
    plt.show()