示例#1
0
def adasyn_sampling(X, Y):
    kind = 'regular'
    #smote = SMOTE(ratio=ratio, random_state=RND_SEED, kind=kind)
       
    nsamples, nx, ny = X.shape
    X = X.reshape((nsamples, nx*ny))
    X,Y = ADASYN().fit_sample(X, Y)
    
    nsamples, ny = X.shape
    X = X.reshape((nsamples, nx, ny/nx))
    Y = Y.reshape((nsamples, 1))

    return X, Y #X_resampled, Y_resampled
示例#2
0
# Apply SMOTE method on training data
X_train_SMOTE, Y_train_SMOTE = SMOTE(random_state=0).fit_resample(
    X_train, Y_train)
X_train_image_SMOTE, Y_train_image_SMOTE = SMOTE(random_state=0).fit_resample(
    X_train_image.reshape(X_train_image.shape[0], -1), Y_train_image)
X_train_image_SMOTE = X_train_image_SMOTE.reshape(X_train_image_SMOTE.shape[0],
                                                  50, 50, 3)

# Apply ADASYN method on training data
X_train_ADASYN, Y_train_ADASYN = ADASYN(random_state=0).fit_resample(
    X_train, Y_train)
X_train_image_ADASYN, Y_train_image_ADASYN = ADASYN(
    random_state=0).fit_resample(
        X_train_image.reshape(X_train_image.shape[0], -1), Y_train_image)
X_train_image_ADASYN = X_train_image_ADASYN.reshape(
    X_train_image_ADASYN.shape[0], 50, 50, 3)

#0 - None fire image, 1 - fire image
print("Origin data :", collections.Counter(Y_train))
print("After SMOTE :", collections.Counter(Y_train_SMOTE))
print("After ADASYN :", collections.Counter(Y_train_ADASYN))

#model define
model = models.Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(50, 50, 3)))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))