Умное управление и оптимизация городского движения являются важными задачами современного городского управления. через модели глубокого обучения,Мы можем анализировать ипредсказыватьтранспортный поток,Оптимизируйте управление сигналами светофора,Повышение эффективности перевозок,Уменьшите заторы. В этой статье объясняется, как правительство использует Python и технологию глубокого обучения для реализации управления и оптимизации дорожного движения в умном городе.
Во-первых, нам нужно установить некоторые необходимые библиотеки Python:
pip install pandas numpy scikit-learn tensorflow keras matplotlib seaborn
Мы будем использовать смоделированный набор данных о городском движении, содержащий такую информацию, как транспортный поток, статус светофора, данные о погоде и т. д. Вы можете создать файл CSV, содержащий эту информацию, или использовать существующий набор данных.
import pandas as pd
# Чтение данных
data = pd.read_csv('traffic_data.csv')
# Просмотр первых нескольких строк данных
print(data.head())
Предварительная обработка данных является важным шагом в глубоком обучении. Нам нужна Обработка пропущенных значений、нормализованные данныеждать。
# Обработка пропущенных значений
data = data.dropna()
# нормализованные данные
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data.drop('TrafficFlow', axis=1))
# Преобразовать в DataFrame
data_scaled = pd.DataFrame(data_scaled, columns=data.columns[:-1])
data_scaled['TrafficFlow'] = data['TrafficFlow'].values
Выбор подходящих функций оказывает большое влияние на производительность модели. Мы выберем все функции для прогнозирования.
features = data_scaled.drop('TrafficFlow', axis=1)
target = data_scaled['TrafficFlow']
Разделите данные на обучающие и тестовые наборы.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)
Мы построим простую модель глубокого обучения, используя Keras.
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
# Создать модель
model = Sequential()
model.add(Dense(512, input_shape=(X_train.shape[1],), activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='linear'))
# Скомпилировать модель
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mae'])
Обучите модель и оцените производительность.
# Модель обучения
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))
# Модель оценки
loss, mae = model.evaluate(X_test, y_test)
print(f'Loss: {loss}')
print(f'Mean Absolute Error: {mae}')
Используйте обученную модель для прогнозирования.
# предсказывать
y_pred = model.predict(X_test)
# Распечатать предсказывать результаты
print(y_pred)
Наконец, мы можем визуализировать прогнозируемые результаты по сравнению с фактическими значениями.
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(10, 6))
sns.scatterplot(x=y_test, y=y_pred)
plt.xlabel('Actual Traffic Flow')
plt.ylabel('Predicted Traffic Flow')
plt.title('Actual vs Predicted Traffic Flow')
plt.show()
С помощью описанных выше шагов мы реализовали простую модель управления и оптимизации дорожного движения в умном городе. Вот некоторые конкретные сценарии применения: