Виявлення споживання газів - проект нейронної мережі. Погані результати


10

Я намагався виявити людей, що споживають енергію в споживання енергії деяких голландських будівель, будуючи модель нейронної мережі. У мене дуже погані результати, але я не можу знайти причину.

Я не експерт, тому хотів би запитати у вас, що я можу вдосконалити і що я роблю неправильно. Це повний опис: https://github.com/denadai2/Gas-consumption-outliers .

Нейронна мережа - це FeedFoward мережа із зворотним розповсюдженням. Як описано тут, я розділив набір даних на "невеликий" набір даних на 41'000 рядків, 9 функцій і спробував додати більше функцій.

Я тренував мережі, але результати мають 14,14 RMSE, тому він не може передбачити настільки добре споживання газу, послідовно я не можу запустити хороший механізм виявлення зовнішнього руху. Я бачу, що в деяких роботах навіть якщо вони прогнозують щоденне або погодинне споживання електроенергії, вони мають помилки типу MSE = 0,01.

Що я можу покращити? Що я роблю неправильно? Ви можете ознайомитися з моїм описом?


2
Що ти маєш на увазі, погані результати? Опишіть свій процес, результати та те, як вони відрізняються від очікуваного, замість того, щоб посилатися лише на сховище git. Інакше це обговорення нікому не принесе користі.
Повітря

Це теж правда: D. Я додав опис на сторінці "Результати мають 14,14 RMSE, тому він не може передбачити настільки добре споживання газу, послідовно я не можу запустити хороший механізм виявлення зовнішньої структури. Я бачу, що в деяких документах це навіть якщо вони прогнозують щоденне або погодинне споживання електроенергії, вони мають помилки типу MSE = 0,01 ".
marcodena

1
@marcodena Це QA-сайт, і інші повинні знати, що ви намагаєтеся вирішити, щоб вони зрозуміли відповіді і, сподіваємось, зможуть використовувати їх у власних проблемах. Це мав на увазі AirThomas, а також тому було б добре, якби ви могли описати, що ви робите, і що саме ви вважаєте неправильним. Якщо посилання на вашу сторінку git-hub зміниться, посилання тут буде недійсним, а інші не зможуть зрозуміти, у чому проблема. Будь ласка, знайдіть хвилинку, щоб зробити своє питання самостійним. Дякую.
Рубенс

1
Коли ви виявите, що ваша проблема потребує дуже довго часу для пояснення, саме тоді найважливіше витратити час на пояснення свого питання іншим, чітко і з великою кількістю деталей та обговорення ваших досліджень / спроб. Часто під час цього процесу ви самі знайдете деякі чи всі відповіді. Мало того, що це чудове почуття: якщо те, що вам здається корисним для інших, ви ще можете опублікувати те питання, на яке витрачаєте стільки часу, і відповідь (і), на які ви придумали.
Повітря

1
Просто уточнення, коли ви згадуєте, що "в деяких документах вони мають помилки, такі як MSE = 0,01", ви посилаєтесь на той самий набір даних, який ви використовуєте? Або це зовсім інший набір даних?
insys

Відповіді:


8

Просто ідея - ваші дані є дуже сезонними: щоденні та тижневі цикли досить сприйняті. Тому насамперед спробуйте розкласти свої змінні (споживання газу та електроенергії, температура та сонячне випромінювання). Ось приємний підручник з розкладання часових рядів для Р.

Після отримання тренду та сезонних компонентів починається найцікавіша частина. Це лише припущення, але, думаю, змінні споживання газу та електроенергії були б цілком передбачувані за допомогою аналізу часових рядів (наприклад, моделі ARIMA ). З моєї точки зору, найбільш важливою тут є спроба передбачити залишки після розкладання, використовуючи доступні дані (температурні аномалії, сонячне випромінювання, швидкість вітру). Я гадаю, що ці залишки були б вибухами, яких ви шукаєте. Сподіваюся, вам це стане в нагоді.


3

У своєму навчальному зошиті ви представляєте результати тренувань 20 епох. Ви спробували змінити цей параметр, щоб побачити, чи впливає він на вашу ефективність? Це важливий параметр для зворотного поширення.

Для оцінки параметрів вашої моделі, як зазначив користувач tomaskazemekas, побудова кривих навчання - це дуже хороший підхід. На додаток до цього, ви також можете створити графік, використовуючи параметр моделі (наприклад, навчальні епохи або прихований розмір шару) проти помилки тренувань та перевірки. Це дозволить вам зрозуміти зміщення / відхилення відхилення та допоможе вам вибрати хороше значення для своїх параметрів. Деякі відомості можна знайти тут . Природно, це гарна ідея зберегти невеликий відсоток своїх даних для (третього) тестового набору.

Як зауваження, здається, що збільшення кількості нейронів у вашій моделі не має значного покращення для вашої RMSE. Це говорить про те, що ви також можете спробувати з більш простою моделлю, тобто з меншою кількістю нейронів, і подивитися, як поводиться ваша модель.

Насправді, я б запропонував (якщо ви цього ще не зробили) спробувати просту модель з декількома параметрами або без них спочатку, наприклад, лінійна регресія, і порівняти ваші результати з літературою, як перевірку правильності.


Я додав кілька графіків після вдосконалення моделі A LOT. У github є нові кроки. Чи можу я запитати вас, як я можу застосувати лінійну регресію в задачі часових рядів? :(
marcodena

2

Основна проблема тут полягає в тому, що навіть до спроби застосувати алгоритми виявлення аномалії ви не отримуєте достатньо хороших прогнозів споживання газу за допомогою нейронних мереж.

Якщо головна мета тут - досягти етапу, коли можна було б використовувати алгоритми виявлення аномалії, і ви заявляєте, що у вас є доступ до прикладів успішного застосування лінійної регресії для цієї проблеми, такий підхід може бути більш продуктивним. Один із принципів успішного застосування машинного навчання полягає в тому, що перед остаточним вибором на основі результатів можна випробувати кілька різних алгоритмів.

Ви вибираєте, щоб настроїти свою роботу нейронної мережі, вивчаючи криву вивчення графіку впливу змін у різних гіперпараметрах на коефіцієнт помилок. Гіперпараметри, які можуть бути змінені:

  • кількість функцій
  • порядок многочлена
  • параметр регуляризації
  • кількість шарів у мережі

Найкращі налаштування можна вибрати за допомогою продуктивності на набору перехресних перевірок.


Я додав кілька графіків, і ви можете перевірити також параметри зараз :)
marcodena

2

У ваших блокнотах я не бачив вашої моделі нейронної мережі, чи можете ви вказати, яка бібліотека використовується, скільки шарів у вас є і який тип нейронної мережі ви використовуєте?

У ваших ноутбуках, здається, ви використовуєте набір даних шумних та зовнішніх для тренування нейронної мережі, я думаю, ви повинні тренувати нейронну мережу на наборі даних, що у вас немає жодного аутлайнера, щоб ви могли бачити відстань спостереження від передбачення нейронна мережа позначає спостереження або зовні, чи ні.

Я написав пару з речей на аномальному значення виявлення в сигналах часових рядів, ваші дані вельми сезонні , як sobach згадувалася , і ви можете використовувати FFT (перше посилання вище) , щоб отримати загальну тенденцію в сигналі. Отримавши частотний компонент споживання газу, ви можете подивитися на високочастотні компоненти, щоб отримати видатки.

Крім того, якщо ви хочете наполягати на використанні нейронної мережі для сезонних даних, ви можете перевірити періодичні нейронні мережі, оскільки вони могли б включити попередні спостереження краще, ніж ванільна нейронна мережа, і, мабуть, можуть забезпечити кращий результат для даних, які у вас є .


Я спробував ваш метод FFT, але я дійсно не розумію, як встановити порог частоти та амплітуду зі своїми даними. Я буду дивитись, але якщо ти можеш мені допомогти ...
marcodena

Я також додав джерела
marcodena
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.