Читать книгу 120 практических задач онлайн

from tensorflow.keras.layers import Dense, Dropout

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler

import numpy as np

# Пример данных (данные нужно подставить под ваши)

# X – признаки (характеристики домов)

# y – цены на недвижимость

X = np.random.random((1000, 10)) # пример матрицы признаков

y = np.random.random((1000, 1)) # пример вектора цен

# Масштабирование данных

scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)

y_scaled = scaler.fit_transform(y)

# Разделение данных на обучающую и тестовую выборки

X_train, X_test, y_train, y_test = train_test_split(X_scaled, y_scaled, test_size=0.2, random_state=42)

# Параметры модели и обучения

input_dim = X.shape[1] # количество признаков

hidden_units = 64 # количество нейронов в скрытом слое

dropout_rate = 0.2 # коэффициент отсева для предотвращения переобучения

# Создание модели

model = Sequential()

# Добавление слоев

model.add(Dense(hidden_units, input_dim=input_dim, activation='relu'))

model.add(Dropout(dropout_rate))

model.add(Dense(hidden_units, activation='relu'))

model.add(Dense(1)) # выходной слой для предсказания цены

# Компиляция модели

model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mae']) # метрика – средняя абсолютная ошибка

# Вывод архитектуры модели

model.summary()

# Обучение модели

model.fit(X_train, y_train, epochs=50, batch_size=32, validation_data=(X_test, y_test))

```

Пояснение архитектуры и процесса:

1. Архитектура модели: Пример представляет собой простую нейронную сеть с несколькими полносвязными слоями. Входной слой имеет размерность, соответствующую количеству признаков (характеристик дома), скрытые слои используют функцию активации ReLU для обеспечения нелинейности, а выходной слой предсказывает цену недвижимости как числовое значение.

2. Компиляция и обучение модели: Модель компилируется с оптимизатором Adam для эффективного обучения, функцией потерь mean squared error (среднеквадратичная ошибка) для задачи регрессии и метрикой mean absolute error (средняя абсолютная ошибка) для оценки точности модели.