Я не могу научить ИИ правильно читать и прогнозировать данные дорожных датчиков [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я не могу научить ИИ правильно читать и прогнозировать данные дорожных датчиков [закрыто]

Сообщение Anonymous »

Итак, нам дали проект для одного из моих университетских занятий «Наука о данных», и нам дали набор данных дорожных датчиков, фиксирующих скорость транспортных средств на дороге каждые 5 минут.
(набор данных был с этого сайта : https://zenodo.org/records/4264005 "PEMS-BAY.csv")
Я сделал то, что нас просили, например удаление нереалистичных значений, нормализацию и т. д.
Затем нас попросили «разделить набор данных на 3 (под)набора и обучить модель машинного обучения, чтобы спрогнозировать скорость каждого датчика на следующий один (1) час с
пятью (5) минут с шагом (краткосрочный прогноз) и на следующие
(12) часов с шагом в один (1) час (среднесрочный прогноз)"
Я решил использовать регрессор повышения градиента как мы с моей моделью приступили к разделению данных
df['Unnamed: 0'] = pd.to_datetime(df['Unnamed: 0'])
train = df[(df['Unnamed: 0'] >= '2017-01-01 00:00:00') & (df['Unnamed: 0'] = '2017-04-01 00:00:00') & (df['Unnamed: 0'] = '2017-05-01 00:00:00') & (df['Unnamed: 0'] значение внутри цикла как таковое
for i in range(12):
preds_short = short_predictions
y_test = test.iloc[: , i]
mae, mape, rmse, r2 = evaluate_metrics(y_test, preds_short)
metrics['Horizon'].append(f'Short_{i + 1}')
metrics['MAE'].append(mae)
metrics['MAPE'].append(mape)
metrics['RMSE'].append(rmse)
metrics['R2'].append(r2)

но это тоже не сработало, и на этом мои идеи о том, как это сделать, закончились.
Любая помощь приветствуется, спасибо за уделенное время.
пс. Я вставлю весь свой код, вдруг он кому-нибудь понадобится.
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
from sklearn.preprocessing import MinMaxScaler
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.tsa.seasonal import seasonal_decompose

df = pd.read_csv('PEMS-BAY.csv')

data_info = {
"head": df.head(),
"columns": df.columns.tolist(),
"shape": df.shape,
"missing_values": df.isnull().sum()
}
print(data_info)

def remove_outliers_iqr(data, threshold=1.5):
for col in data.select_dtypes(include=[np.number]).columns:
q1 = data[col].quantile(0.25)
q3 = data[col].quantile(0.75)
iqr = q3 - q1
lower_bound = q1 - threshold * iqr
upper_bound = q3 + threshold * iqr
data[col] = data[col].mask((data[col] < lower_bound) | (data[col] > upper_bound))
return data

data_cleaned = remove_outliers_iqr(df.iloc[:, 1:].copy())

scaler = MinMaxScaler()
data_normalized = pd.DataFrame(scaler.fit_transform(data_cleaned), columns=data_cleaned.columns)

#plt.hist(data_cleaned.iloc[:, 0], bins=50, alpha=0.7, label='Καθαρισμένα')
#plt.hist(data_normalized.iloc[:, 0], bins=50, alpha=0.7, label='Κανονικοποιημένα')
#plt.legend()
#plt.show()

series = data_cleaned.iloc[:, 1]
series = series.dropna()

result = seasonal_decompose(series, model='additive', period=7)

#result.plot()
#plt.show()

#plt.figure(figsize=(10, 6))
#plot_acf(series, lags=50, title="Autocorrelation Plot")
#plt.show()

#plt.figure(figsize=(10, 6))
#series.plot(alpha=0.7, label='Original Data')
#series.rolling(window=7).mean().plot(label='Rolling Mean (7 days)', color='red')
#plt.legend()
#plt.title("Trend Analysis")
#plt.show()

df['Unnamed: 0'] = pd.to_datetime(df['Unnamed: 0'])
train = df[(df['Unnamed: 0'] >= '2017-01-01 00:00:00') & (df['Unnamed: 0'] = '2017-04-01 00:00:00') & (df['Unnamed: 0'] = '2017-05-01 00:00:00') & (df['Unnamed: 0']

Подробнее здесь: https://stackoverflow.com/questions/793 ... -correctly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»