Exemple #1
0
 def read_data(self, path, crop_spectra=True, X_min=800, X_max=2000):
     data = reshape_data(path, X_min=X_min, X_max=X_max)[0]
     if crop_spectra == True:
         data = data.iloc[:, 400:900].values
     data = area_normalization(data)
     X_test_pca = self.pca.transform(data)
     return X_test_pca
Exemple #2
0
        'model_path': '../result/SVM/SVM_MODEL/',
        'print_raw': True,
        'show_interactive_plot': True,
        'show_pca_loadings': False,
        'show_tsne': False
    }

    plt.ioff()
    # Writing paras into .json file
    with open(paras['model_path'] + "paras_record.json", "w") as f:
        json.dump(paras, f)
    print("File successfully written... ...")

    nor_Fat = area_normalization(
        reshape_data('../Data/Trainging Data/20%Fat/',
                     X_max=paras['X_max'],
                     X_min=paras['X_min'])[0])
    nor_Tumor = area_normalization(
        reshape_data('../Data/Trainging Data/Tumor/',
                     X_max=paras['X_max'],
                     X_min=paras['X_min'])[0])

    # Splitting data into training set and testing set
    X_train, X_test, y_train, y_test, X_train_path, X_test_path = load_data_preprocess(
        paras['train_test_percent'],
        crop_spectra=paras['crop_spectra'],
        aug=paras['aug'],
        reshape=paras['reshape'],
        one_hot=paras['one_hot'],
        X_min=paras['X_min'],
        X_max=paras['X_max'],
Exemple #3
0
if __name__ == '__main__':
    # Importing data and model
    predictor = Predictor('../result/SVM/SVM_MODEL/model.pkl')

    # Printing info about model and data
    print("classifier model info: ", predictor.model)
    with open("../result/SVM/SVM_MODEL/paras_record.json", 'r') as paras_f:
        paras = json.load(paras_f)
        print(paras)

    data = predictor.read_data('../Data/Testing Data/Yale Data/',
                               crop_spectra=paras['crop_spectra'],
                               X_min=paras['X_min'],
                               X_max=paras['X_max'])
    Fat, Fat_file_path = reshape_data(
        '../Data/Testing Data/Yale Data/Healthy/',
        X_min=paras['X_min'],
        X_max=paras['X_max'])
    Tumor, Tumor_file_path = reshape_data(
        '../Data/Testing Data/Yale Data/Tumor/',
        X_min=paras['X_min'],
        X_max=paras['X_max'])

    path = pd.concat(
        [pd.DataFrame(Fat_file_path),
         pd.DataFrame(Tumor_file_path)],
        ignore_index=True)
    path.columns = ['file_path']

    # Getting true label
    true_label = make_labels(Fat, Tumor)
    label = predictor.predict(data)
Exemple #4
0
import numpy as np
from keras.engine.saving import load_model
from pandas._libs import json

from load_data_preprocess.load_data import reshape_data

if __name__ == "__main__":
    print("Loading paras... ... ")
    with open(
            "../result/CNN/CNN_MODEL/weights/CNN_Noise_DataAug/paras_record.json",
            'r') as paras_f:
        paras = json.load(paras_f)
        print(paras)

    X_test = reshape_data("../Data/Testing Data/S19-19384",
                          X_min=paras['X_min'],
                          X_max=paras['X_max'])[0]
    X_test = np.array(X_test).astype('float32')

    X_test = X_test.reshape(X_test.shape + (1, ))
    X_test /= np.max(X_test)

    my_model = load_model(
        '../result/CNN/CNN_MODEL/weights/CNN_Noise_DataAug/highest_val_acc_weights_epoch05-val_acc1.000_base_cnn.h5'
    )
    print(my_model.summary())
    print('X_test.shape: ', X_test.shape)

    result = np.around(my_model.predict(X_test), decimals=2)
    print(result)
    # pd.DataFrame(result).to_csv('../result/CNN/CNN_TESTING/S19-19384/fully_cnn/fully_cnn1200_noAug.csv')
Exemple #5
0
def load_data_preprocess(train_test_percent,
                         crop_spectra=False,
                         aug=False,
                         reshape=False,
                         one_hot=False,
                         X_min=800,
                         X_max=2000,
                         fat_path='../Data/Trainging Data/20%Fat/',
                         tumor_path='../Data/Trainging Data/Tumor/',
                         print_raw=False):
    '''

    :param train_test_percent:
    :param crop_spectra:
    :param aug:
    :param reshape:
    :param one_hot:
    :param X_min:
    :param X_max:
    :param fat_path:
    :param tumor_path:
    :param print_raw:
    :param print_file_path:
    :return:
    '''
    # load data
    Fat, Fat_file_path = reshape_data(fat_path, X_min=X_min, X_max=X_max)
    Tumor, Tumor_file_path = reshape_data(tumor_path, X_min=X_min, X_max=X_max)
    path = pd.concat([pd.DataFrame(Fat_file_path), pd.DataFrame(Tumor_file_path)], ignore_index=True)
    data_All = pd.concat([pd.DataFrame(Fat.append(Tumor, ignore_index=True)), path], axis=1)
    data_All = np.array(data_All)
    print('Fat.shape: ', Fat.shape)
    print('Tumor.shape: ', Tumor.shape)
    print('Data_all.shape: ', data_All.shape)

    labels = make_labels(Fat, Tumor)
    print('labels: ', labels)

    X_train, X_test, y_train, y_test = train_test_split(data_All, labels, test_size=train_test_percent,
                                                        random_state=42)
    X_train_path = X_train
    X_test_path = X_test

    if aug == True:
        from sklearn.decomposition import PCA
        noise_aug = []
        noise = np.copy(X_train)
        mu = np.mean(noise, axis=0)
        pca = PCA()
        noise_model = pca.fit(noise)
        nComp = 10
        Xhat = np.dot(pca.transform(noise)[:, :nComp], pca.components_[:nComp, :])
        noise_level = np.dot(pca.transform(noise)[:, nComp:], pca.components_[nComp:, :])
        Xhat += mu
        SNR = np.linspace(1, 5, 50)
        for i in range(len(SNR)):
            noise_aug.append(SNR[i] * noise_level + Xhat)
            j = 0
            for spectra in noise_aug[i]:
                noise_aug[i][j] = spectra / np.max(spectra)
                j += 1
        X_train = np.array(noise_aug).reshape(50 * 177, 1200)
        y_train = [item for i in range(50) for item in y_train]

    if crop_spectra == True:
        X_train, X_test = crop(X_train, X_test, min=400, max=900)

    X_train, X_test, y_train, y_test = preprocess(X_train[:, :-1], X_test[:, :-1], y_train, y_test, reshape=reshape,
                                                  mean_center=False,
                                                  norm=True,
                                                  one_hot=one_hot)
    print('X_train.shape: ', X_train.shape)
    print('X_test.shape: ', X_test.shape)
    print('y_train.shape: ', y_train.shape)
    print('y_test.shape: ', y_test.shape)
    if print_raw == True:
        return X_train, X_test, y_train, y_test, X_train_path, X_test_path
    return X_train, X_test, y_train, y_test