Форум программистов, компьютерный форум, киберфорум
Python: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
48 / 3 / 2
Регистрация: 24.11.2018
Сообщений: 74

Нейросеть не распознает пики на графике

28.11.2019, 10:21. Показов 1551. Ответов 3

Студворк — интернет-сервис помощи студентам
Всем привет. Обучаю нейросеть для прогнозирования графиков нагрузки жилого дома. Имеется набор данных с 4 признаками и 26500 объектами. В результате обучения нейросеть никак не может распознать скачки нагрузки. Использовал несколько вариантов функций потерь и оптимизаторов, но картина каждый раз была похожей. Добавление скрытых слоев тоже особо не помогает.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
X = data.drop(columns=(['electricity_consumption']))
y = data.drop(columns=(['temperature','windspeed','pressure','var1']))
X = X.as_matrix() #представляем наборы признаков в качестве массива
y= y.as_matrix()#представляем набор предсказываемых значений в качестве массива
 
scalarYtest, scalarYtrain = StandardScaler(), StandardScaler() #создаем экземпляры класса StandardScaler
 
Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, test_size=0.2, random_state=13) # делим наборы на обучающие и тестовые выборки в соотношении 80:20
 
scalarYtrain.fit(ytrain) #вычисляем стандартное значение для обучающего набора
scalarYtest.fit(ytest) #вычисляем стандартное значение для тестового набора
ytrain = scalarYtrain.transform(ytrain)#стандартизируем обучающий набор
ytest = scalarYtest.transform(ytest)#стандартизируем тестовый набор
 
inputShape = Input(shape=([len(data.keys())-1])) #подаем на вход нейросети признаки, содержащиеся в Xtest
x = (Dense(64,activation=LeakyReLU(alpha=0.5))(inputShape)) # определяем первый слой с 64 нейронами
output1 = Dense(32)(x) # определяем второй слой с 32 нейронами
output2 = Dense(16)(output1)
output3 = Dense(8)(output2)
output4 = Dense(4)(output3)
output5 = Dense(2)(output4)
output6 = Dense(1)(output5) # определяем шестой слой с 1 нейроном
model = Model(inputs=[inputShape],outputs=[output6]) # определяем входные и выходные данные нашей модели
model.compile(loss='mae', optimizer='adam',metrics=['mae', 'mse']) # в качестве функции потель используем среднюю абсолютную ошибку
 
NUM_EPOCHS = 100
BATCH_SIZE = 200
 
model.fit(Xtrain,ytrain,epochs=NUM_EPOCHS,batch_size=BATCH_SIZE,verbose=1,validation_data=(Xtest,ytest)) # обучаем модель
 
pred = model.predict(Xtest) # делаем прогноз значений после обучения нейросети
 
original = ytest
predicted = pred
 
plt.plot(original, color='black', label = 'Original data')
plt.plot(predicted, color='blue', label = 'Predicted data')
plt.legend(loc='best')
plt.title('Actual and predicted')
plt.show()
Что же я упускаю?.. Может кто-нибудь сталкивался с похожей задачей регрессии?
Миниатюры
Нейросеть не распознает пики на графике  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2019, 10:21
Ответы с готовыми решениями:

Нейросеть, которая распознает символ
Здравствуйте,формучане. у меня такая задача-нужно сделать нейросеть, которая распознает символ,но не по картинке а по ее бинарнику. Есть...

Как сгладить пики на графике чтобы он выглядел более плавным?
Здраствуйте! Подскажите пожалуйста, как сгладить пики на графике чтобы он выглядел более плавным? Но чтобы при этом не изменялся...

пики в тексте
всем доброго времени суток - у мну такой ворос: как можно реализовать например - как в ворде что бы в ричедите среди текста можно было...

3
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
28.11.2019, 11:27
Во-первых, причем тут задача регрессии.
Во-вторых, в вашем примере увидел предикт, увидел, что рисуете вы два каких-то графика, но не увидел, где-же вы пытаетесь вычленить скачек?
Вообще-то говоря, ваша задача - классическая задача на выявление outliers, которая в свою очередь есть подзадачей задачи выявления аномалий. Методов выявления выбросов - масса всяких - от традиционных осечек, например по принципу 3Сигма, до новых, основанных на предсказаниях значений временного ряда по моделям типа ARIMA и обнаружения ситуаций с существенным отклонением последующих реальных данных от предсказанных.
Можно, конечно, запихнуть данные в нейросеть и ждать, когда она вам найдет выбросы, то тогда нейросеть должна быть построена для решения задачи кластеризации, а не просто предсказания значений (классификации или регресии).
1
2628 / 1640 / 266
Регистрация: 19.02.2010
Сообщений: 4,352
28.11.2019, 11:32
Ghosterus, Скорее всего, дерьмовая структура сети. Оставьте только 1-2 скрытых слоя (те, которые с самым большим числом нейронов).

Ну и, может быть, 4 признака на входе недостаточно. Пробуйте подавать признаки И НАГРУЗКИ за >1 прошлых моментов времени, раз уж Вы взяли MLPшку (а не рекуррентную сеть, которая помнит историю).
1
48 / 3 / 2
Регистрация: 24.11.2018
Сообщений: 74
28.11.2019, 16:53  [ТС]
причем тут задача регрессии
дерьмовая структура сети
Ребят, ребят, я же в первый раз это делаю)
А так спасибо за замечания. Попробую что-нибудь сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2019, 16:53
Помогаю со студенческими работами здесь

Пики резонанса
Ребята, смоделировал, но тут такая проблема: На графике показаны резонансные пики красными кружечками (Ось х- энергия, Ось y-коэффициент...

QCustomPlot. Позиция точки на нарисованном графике, выделение областей на графике
Доброго времени суток! Необходима помощь сообщества. Для ведущейся работы назрела необходимость создания интерфейса для работы с графиками...

Сделать интерполяцию между кривыми на полярном графике, чтобы найти на графике заданную точку
Здравствуйте, мне необходимо сделать интерполяцию между кривыми на полярном графике, чтобы найти на графике заданную точку x=40, y=30. ...

Отрицательные пики матрицы
Время доброе, нужна помощь. Не поможете решить задачку? Условие: Составить программу для ввода матрицы. Вывести номера I, J всех...

[модератору] Пики посещаемости
Будте добры, скажите, в какое время суток у сайта наибольшая посещаемость, если не секрет. Хотелось бы оставлять сообщения как раз пере...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru