Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 1854

 

Странную особенность в поведении разных методов определения ошибок обнаружил. Модель регрессии. Обучение с учителем y = 0 или 1. Данные титаника.

   oob  RMSEr     AvgEr     AvgRelEr    Train RMSEr     AvgEr     AvgRelEr

        0.409762  0.333394  0.431368          0.406325  0.330199  0.430042
        0.384805  0.293965  0.377680          0.380747  0.289936  0.377605
        0.383891  0.286546  0.356373          0.370912  0.275152  0.358349
        0.370671  0.261466  0.321370          0.353781  0.250322  0.326013
        0.380332  0.259588  0.299060          0.337633  0.227993  0.296931
        0.388428  0.248587  0.245976          0.309293  0.191325  0.249176
        0.401764  0.237416  0.195562          0.273932  0.150077  0.195456

По Train все как положено, чем сильнее учим, тем ошибок меньше по всем методам.

По ООB ошибка RMSE доходит до 0.370671 и потом начинает расти говоря о том, что началось переобучение. Но AvgEr и AvgRelEr продолжают падать дальше. Мне казалось что все ошибки должны вести себя синхронно, т.е. должны были начать расти вместе с RMSE.
Формулы расчета:

for (r=0;r<rows;r++){
  RMSEr += Sqr (pred[r] - y[r]);
  AvgEr += fabs(pred[r] - y[r]);
}
//После суммирования:
RMSEr= sqrt(RMSEr / rows);
AvgEr = AvgEr / rows;

Расчеты очень похожи ( возведение в квадрат (Sqr) и модуль значения (fabs) убирают знак ), но поведение кривых разное...
Повторял обучение классификацинной моделью, у нее тоже минимум в точке, где RMSE доходит до 0.370671.
Кто-нибудь сталкивался с таким поведением ошибок? Чем это можно объяснить?

 
elibrarius:

Странную особенность в поведении разных методов определения ошибок обнаружил. Модель регрессии. Обучение с учителем y = 0 или 1. Данные титаника.

По Train все как положено, чем сильнее учим, тем ошибок меньше по всем методам.

По ООB ошибка RMSE доходит до 0.370671 и потом начинает расти говоря о том, что началось переобучение. Но AvgEr и AvgRelEr продолжают падать дальше. Мне казалось что все ошибки должны вести себя синхронно, т.е. должны были начать расти вместе с RMSE.
Формулы расчета:

Расчеты очень похожи ( возведение в квадрат (Sqr) и модуль значения (fabs) убирают знак ), но поведение кривых разное...
Повторял обучение классификацинной моделью, у нее тоже минимум в точке, где RMSE доходит до 0.370671.
Кто-нибудь сталкивался с таким поведением ошибок? Чем это можно объяснить?

А ведь это тема на самом деле когда при оптимизации сначала ошибка снижается, а потому начинает расти. Чисто в теории если предположить что с началом роста ошибки начинается переобучение, то по сути  нужно останавливать обучение именно в момент начала роста ошибки или сразу перед ним. Речь идёт именно о самом способе определения. То какие методы оценки будут это реализовывать это уже другой вопрос, но счам факт начала роста ошибки как признак начала переобучения это генияльно. аплодирую стоя... без доли сарказма :-) Теперь буду думать  что позволит это реализовать...
 
Mihail Marchukajtes:
А ведь это тема на самом деле когда при оптимизации сначала ошибка снижается, а потому начинает расти. Чисто в теории если предположить что с началом роста ошибки начинается переобучение, то по сути  нужно останавливать обучение именно в момент начала роста ошибки или сразу перед ним. Речь идёт именно о самом способе определения. То какие методы оценки будут это реализовывать это уже другой вопрос, но счам факт начала роста ошибки как признак начала переобучения это генияльно. аплодирую стоя... без доли сарказма :-) Теперь буду думать  что позволит это реализовать...

Это давно известный метод определения переобученности, думаю лет 50,т.е. с самого начала появления нейросетей и деревьев. См. например статьи В. Перервенко.
Мне в данной ситуации неясно различное поведение ошибок. По  RMSE можно определить начало переобучения, по другим - нет.

 
elibrarius:

Это давно известный метод определения переобученности, думаю лет 50,т.е. с самого начала появления нейросетей и деревьев. См. например статьи В. Перервенко.
Мне в данной ситуации неясно различное поведение ошибок. По  RMSE можно определить начало переобучения, по другим - нет.

Мдя??? Вот я лошара оказывается :-)
 
elibrarius:

Странную особенность в поведении разных методов определения ошибок обнаружил. Модель регрессии. Обучение с учителем y = 0 или 1. Данные титаника.

По Train все как положено, чем сильнее учим, тем ошибок меньше по всем методам.

По ООB ошибка RMSE доходит до 0.370671 и потом начинает расти говоря о том, что началось переобучение. Но AvgEr и AvgRelEr продолжают падать дальше. Мне казалось что все ошибки должны вести себя синхронно, т.е. должны были начать расти вместе с RMSE.
Формулы расчета:

Расчеты очень похожи ( возведение в квадрат (Sqr) и модуль значения (fabs) убирают знак ), но поведение кривых разное...
Повторял обучение классификацинной моделью, у нее тоже минимум в точке, где RMSE доходит до 0.370671.
Кто-нибудь сталкивался с таким поведением ошибок? Чем это можно объяснить?

Это как SMA и EMA, AvrEr сильней запаздывает - я так понимаю - игра цифр.

 
Кто-нибудь с Keras разбирался, как там данные для LSTM подготавливать?
 
Mihail Marchukajtes:
В том то и дело что архива нет. Уже давно предлагали разработчикам включить ОИ в копитик чтоб можно было брать из истории. Но видать какие то ограничения есть. Как вариант могу попросить чувака который мне делал советника. Он пишет его постоянно, но не по всем инструментам. Я же перестал его писать исключительно из за кривой работы индикатора :-(

Миша, я тебе видос записал, скоро залью

 
Maxim Dmitrievsky:

Миша, я тебе видос записал, скоро залью

Давай. Посмотрим что за зверь :-)
 
Mihail Marchukajtes:
Давай. Посмотрим что за зверь :-)

так, мы все здесь любим специалистов, а не мужиков-скилл

 
Mihail Marchukajtes:
Давай. Посмотрим что за зверь :-)


В конце видоса не разделил на трейн и тест, запарился под вечер.

вот ошибки

>>> clf_rf.score(X_train, y_train.values.ravel())
1.0
>>> clf_rf.score(X_test, y_test.values.ravel())
0.8395061728395061
Причина обращения: