Не получается добиться точности от нейросети

Рейтинг: 0Ответов: 0Опубликовано: 29.03.2023

При обучении нейросети конечная точность не более 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 обращался, ничего кроме общих советов не получил. Напишите пожалуйста, что мне конкретно нужно исправить, чтобы повысить точность нейросети

Ответы

Ответов пока нет.