# Подготовка данных
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Определение архитектуры нейросети
from keras.models import Sequential
from keras.layers import Dense
model = Sequential()
model.add(Dense(32, activation='relu', input_dim=X_train.shape[1]))
model.add(Dense(16, activation='relu'))
model.add(Dense(1, activation='linear'))
# Инициализация весов
model.compile(loss='mean_squared_error', optimizer='adam')
# Обучение нейросети
model.fit(X_train, y_train, epochs=100, batch_size=32)
# Оценка качества модели
score = model.evaluate(X_test, y_test)
# Финальное тестирование
y_pred = model.predict(X_new_data)
# Оптимизация модели
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=X_train.shape[1]))
model.add(Dense(32, activation='relu'))
model.add(Dense(16, activation='relu'))
model.add(Dense(1, activation='linear'))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(X_train, y_train, epochs=200, batch_size=64)
Комментарии к коду:
Первая строка импортирует функцию train_test_split из библиотеки Scikit-Learn для разделения данных на обучающую и проверочную выборки.
Далее определяется архитектура нейросети с помощью класса Sequential из библиотеки Keras. Мы создаем модель с двумя скрытыми слоями с 32 и 16 нейронами соответственно, а также одним выходным слоем. Функции активации для скрытых слоев задаются как ReLU, а для выходного слоя – linear (обычная линейная функция активации). Входной слой определяется автоматически по размерности входных данных.
Затем мы компилируем модель, используя функцию потерь "mean squared error" (среднеквадратичная ошибка) и метод оптимизации "adam".
Далее мы обучаем модель на обучающей выборке, используя метод fit, указывая количество эпох (100) и размер пакета (batch_size=32).
После этого мы оцениваем качество модели на проверочной выборке с помощью метода evaluate и сохраняем результат в переменную score.
Для финального тестирования мы используем обученную модель для предсказания значений на новых данных X_new_data.
Код обучения нейросетей может отличаться в зависимости от используемой библиотеки и языка программирования. Ниже приведен пример кода на языке Python, используя библиотеку TensorFlow:
# Импорт библиотек
import tensorflow as tf
import numpy as np
from sklearn.model_selection import train_test_split
# Подготовка данных
X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([[0], [1], [1], [0]])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Определение архитектуры нейросети
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, input_shape=(2,), activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
# Инициализация весов
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Обучение нейросети
history = model.fit(X_train, y_train, epochs=1000, validation_data=(X_test, y_test))
# СКАЧАТЬ