Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 1259
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
нам с вами общаться не о чем, потому что по психотипу вижу что вы либо ребенок, либо просто.. короче проехали
"нам" это вам что ли? барину? Работу себе найдите для начала, стыдно сидеть на шее у родителей в таком возрасте.
не совсем, здесь понятнее должно быть
https://habr.com/ru/post/276355/
спектр применения большой, как конкретно будет применяться - тот еще вопрос
Чем байесовский подход круче — он позволяет использовать эту рандомность контролируемым образом.
....
На практике это выражается в том, что димпайндовская сеть дает лучшие результаты, чем сеть с дропаутом, хоть и ненамного.
Чем дропаут круче — это тем, что он очень простой, конечно.
Т.е. глубокая НС с дропаутом является аналогом Бейесовской сети. А дропаут есть во многих пакетах, можно вначале с их помощью поискать рыбу на своих предикторах/целях. А потом уже пытаться улучшать результаты Бейесом. В статьях Владимира Перервенко дропаут использовался, можно на их основе поэкспериментировать.
Я экспериментировал, но прорыва на своих предикторах не нашел.Но я не делал сети настолько глубокими, чтобы из них выкинуть 1000 нейронов. Больше чем N-100-100-100-100-1 не пробовал (401 нейрон). Т.е. 100 может и удалялась, но не 1000. Для удаления 1000, надо сеть с 4-10 тыс нейронов и она наверное будет долго считать.
Возможно что и леса с 1000 деревьев будут иметь аналогичный результат, при этом посчтаются намного быстрее чем НС.
Больше чем N-100-100-100-100-1 не пробовал (401 нейрон).
Таких монстров нормально не обучить. Имхо, проще надо НС. Где-то до 100 нейронов.
Итог из 2 части статьи:
Т.е. глубокая НС с дропаутом является аналогом Бейесовской сети. А дропаут есть во многих пакетах, можно вначале с их помощью поискать рыбу на своих предикторах/целях. А потом уже пытаться улучшать результаты Бейесом. В статьях Владимира Перервенко дропаут использовался, можно на их основе поэкспериментировать.
Я экспериментировал, но прорыва на своих предикторах не нашел.Но я не делал сети настолько глубокими, чтобы из них выкинуть 1000 нейронов. Больше чем N-100-100-100-100-1 не пробовал (401 нейрон). Т.е. 100 может и удалялась, но не 1000. Для удаления 1000, надо сеть с 4-10 тыс нейронов и она наверное будет долго считать.
Возможно что и леса с 1000 деревьев будут иметь аналогичный результат, при этом посчтаются намного быстрее чем НС.
Ой не знаю, с како-то кол-ва деревьев\лесов акюраси перестает расти и они лежат просто балластом, ничего не улучшая. Дропай их не дропай, как мертвому припарка
грубое сравнение Байеса и дропаутов по-моему, но я пока слабо шарю в теме и спорить не буду, может и так
грубое сравнение Байеса и дропаутов по-моему, но я пока слабо шарю в теме и спорить не буду, может и так
Это автор статьи сравнил, - не я. А свою статью он писал с другой более большой, по которой делал свои эксперименты. Т.е. это сравнение видимо идет от разработчиков метода.
Ой не знаю, с како-то кол-ва деревьев\лесов акюраси перестает расти и они лежат просто балластом, ничего не улучшая. Дропай их не дропай, как мертвому припарка
Непонятный код в лесах Alglib-a нашел. Полный код ф-ии расчета кросс этропии из dataanalysis.mqh:
//+------------------------------------------------------------------+
//| Average cross-entropy (in bits per element) on the test set |
//| INPUT PARAMETERS: |
//| DF - decision forest model |
//| XY - test set |
//| NPoints - test set size |
//| RESULT: |
//| CrossEntropy/(NPoints*LN(2)). |
//| Zero if model solves regression task. |
//+------------------------------------------------------------------+
static double CDForest::DFAvgCE(CDecisionForest &df,CMatrixDouble &xy,
const int npoints)
{
//--- create variables
double result=0;
int i=0;
int j=0;
int k=0;
int tmpi=0;
int i_=0;
//--- creating arrays
double x[];
double y[];
//--- allocation
ArrayResizeAL(x,df.m_nvars);
ArrayResizeAL(y,df.m_nclasses);
//--- initialization
result=0;
for(i=0;i<=npoints-1;i++)
{
for(i_=0;i_<=df.m_nvars-1;i_++)
x[i_]=xy[i][i_];
//--- function call
DFProcess(df,x,y);
//--- check
if(df.m_nclasses>1)
{
//--- classification-specific code
k=(int)MathRound(xy[i][df.m_nvars]);
tmpi=0;
for(j=1;j<=df.m_nclasses-1;j++)
{
//--- check
if(y[j]>(double)(y[tmpi]))
tmpi=j;
}
//--- check
if(y[k]!=0.0)
result=result-MathLog(y[k]);
else
result=result-MathLog(CMath::m_minrealnumber);
}
}
//--- return result
return(result/npoints);
}
Кусок кода выделенный красным считает нечто (tmpi), что ниже по коду никак не используется. Зачем он тогда включен?
По википедии должно бытьЛибо что-то не доделали, либо не до конца подчистили код.
А вообще я в этой ф-ии разбираться начал, потому-что захотел 1 дерево поисследовать. И задав кол-во деревьев в лесе = 1 увидел, что все ошибки между 0 и 1, а эта от 100 до 300+ бывает.
Кто-то разбирается в кросс энтропии - код вообще правильный, или что-то недоделали?
с катбустом сравнивал - нормально возвращает, обычно > 0.5 на тесте.. ну как обычно
сам расчет мб завтра посмотрю, мб отладочный код не убрали
вообще эта метрика здесь ни о чем, т.к. не используется для раннего останова или еще чего-то.. и неинформативная в итоге. Ошибку классификации беру да и всес катбустом сравнивал - нормально возвращает, обычно > 0.5 на тесте.. ну как обычно
а лес из 1 дерева в катбусте не проверял? и вообще катбуст кроссэнтропию на выходе дает или какую-то другую ошибку?
Alglib выдает 5 разных ошибок: (вот мой пример с 1 деревом выдал)
Alert: Training set error estimate report: relclserror=0.267; avgce=184.207; rmserror=0.516; avgerror=0.267; avgrelerror=0.267;
нет, бустинг же по другому строится, он наращивает кол-во деревьев пока энтропия падает, когда начинает расти на протяжении n-итераций то останавлвается, что бы не переусложнять модель
дает энтропию и любую кастомную метрику, но строится по энтропии
на англ. версии сайта алглиб выложен новый, более быстрый лес, кстати.. хотел разобраться-переписать, но руки не доходят )