Не получается добиться точности от нейросети
При обучении нейросети конечная точность не более 51%. Вот код код (вырезал блок кода, где нормализовал данные)
# разделение данных на признаки и целевые переменные
x = data.iloc[:, :-1]
# т.к крайние два значения в данных это удовлетворенность качеством и количеством питания, то x - признаки, т.е пол, возраст, рост, вес
y = data.iloc[:, -1:]
# y - соотвественно, это целевые переменные, т.е удовлетворенность качеством и количеством питания - крайние два значения
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
# конструирование модели
model = models.Sequential() # model.Sequential() - означает, что слои (layers), представленные ниже, соединяются последовательно - одним за другим
model.add(layers.Dense(units=200, activation="tanh", input_dim=x.shape[1])) # входной слой
model.add(layers.Dense(units=50, kernel_regularizer=regularizers.l1(0.01), activation="relu"))
model.add(layers.Dense(units=50, activation="relu"))
model.add(layers.Dense(units=25, activation="tanh"))
model.add(layers.Dense(units=1, activation="sigmoid"))
model.compile(optimizer=optimizers.RMSprop(learning_rate=0.001), loss=losses.binary_crossentropy, metrics=["acc"])
history = model.fit(x_train, y_train, epochs=30, batch_size=120, validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test)[1]
print(f"Точность модели = {score*100}%")
Так как данных было слишком мало, то использовал функцию-генератор случайных данных. Сами данные и код функции предоставлен здесь https://drive.google.com/drive/folders/1eaaMxbkv3rsgux1fDsZQ261JjUpmiU3X?usp=sharing
К ChatGPT обращался, ничего кроме общих советов не получил. Напишите пожалуйста, что мне конкретно нужно исправить, чтобы повысить точность нейросети
Источник: Stack Overflow на русском