У меня есть модель, которая должна определить, живо ли растение.Только один класс предсказывает, что данные не сбалансированы, но я использовал весовые коэффициенты, чтобы противостоять дисбалансу.
Я рассмотрел множество вопросов об этой проблеме, но ни один из них не работает, очевидно, эта проблема возникает, когдапереоснащение, поэтому я использовал отсев.Но модель все еще только предсказывает один класс.
Вот модель:
model=Sequential()
# Convolutional layer / input layer
model.add(Conv2D(60, 5,5, activation='relu', input_shape=np.shape(X[1])))
model.add(MaxPooling2D(pool_size=(3,3)))
model.add(Dropout(0.8))
model.add(Flatten())
model.add(Dropout(0.7))
model.add(Dense(130, activation='relu'))
model.add(Dropout(0.6))
# Output layer
model.add(Dense(2, activation='softmax'))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.fit(X, y, epochs=6, batch_size=32, class_weight=class_weight, validation_data=(X_test, y_test))
Обычно она должна предсказывать оба класса с 1: здоровое растение и 0: нездоровое растение