[phpBB Debug] PHP Notice: in file /viewtopic.php on line 981: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.
[phpBB Debug] PHP Notice: in file /viewtopic.php on line 981: getdate(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4183: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3493)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4185: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3493)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4186: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3493)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4187: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3493)
Chaos and Correlation • Просмотр темы - Santander Value Prediction Challenge

Santander Value Prediction Challenge

Модераторы: ТВЧ, Petrovich

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Вс авг 05, 2018 8:13 pm

Я не обманывал. Это в Excel-таблице так, а в системе Эйдос натуральные (других в языке нет) и переводятся в двоичные. Но переводятся правильно, я сейчас проверил в самой системе Эйдос на простом численном примере.

Да, я согласен с тем, что на результат распознавания он не влияет. Но все же лучше когда количество информации представлено в привычных единицах. Хотя, конечно, можно умножить результаты на любую константу и получатся результаты в соответствующих единицах.
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Вс авг 05, 2018 8:26 pm

Это деление на Log(2) сделано в коэффициенте, т.к. потом при вычислении частных критериев также используется логарифм и он тоже переводится к основанию 2:
Код: Выделить всё
     DBGOTO(N_Atr+1);N    = SUMMA                   // SUMM угловой элемент
     DBGOTO(N_Atr+4);Nobj = SUMMA                   // Всего логических объектов обучающей выборки
     K = LOG(N_Cls)/LOG(N)/LOG(2)                   // Нормировочный коэффицент для перевода в биты

     *** Начало цикла по классам *******************

     FOR j = 1 TO N_Cls

         SELECT ABS_CLUST2

         DBGOTO(N_Atr+1);Nj  = FIELDGET(2+j)        // Суммарное число признаков по j-му классу
         DBGOTO(N_Atr+4);Njo = FIELDGET(2+j)        // Суммарное число объектов  по j-му классу

         FOR i = 1 TO N_Atr

             ****** Выбор способа расчета для разных моеделей

             PUBLIC Ar_Model := {"Abs", "Prc1", "Prc2", "Inf1", "Inf2", "Inf3", "Inf4", "Inf5", "Inf6", "Inf7" }

             SELECT ABS_CLUST2
             DBGOTO(i)

             Nij = FIELDGET(2+j)
             Ni  = SUMMA
             Iij = 0                                // На случай, если вообще не посчитается, чтобы не возникала ошибка при присвоении значения полю базы

             DO CASE
                CASE mNumMod = 1                    // ABS  (модель ABS есть сама матрица ABS, т.е. ее рассчиывать не нужно)
                     Iij = Nij

                CASE mNumMod = 2                    // PRC1
                     IF Nj <> 0
                        Iij = Nij/Nj
                     ENDIF

                CASE mNumMod = 3                    // PRC2
                     IF Njo <> 0
                        Iij = Nij/Njo
                     ENDIF

                CASE mNumMod = 4                    // INF1
                     IF Nij*Ni*Nj*N <> 0
                        Iij = K*LOG((Nij*N)/(Ni*Nj))
                     ENDIF

                CASE mNumMod = 5                    // INF2
                     IF Nij*Ni*Njo*Nobj <> 0
                        Iij = LOG((Nij*Nobj)/(Ni*Njo))/LOG(2)
                     ENDIF

                CASE mNumMod = 6                    // INF3
                     IF N <> 0
                        Iij = Nij-Ni*Nj/N
                     ENDIF

                CASE mNumMod = 7                    // INF4
                     IF Ni*N <> 0
                        Iij = (Nij*N)/(Ni*Nj) - 1
                     ENDIF

                CASE mNumMod = 8                    // INF5
                     IF Ni*Njo*Nobj <> 0
                        Iij = (Nij*Nobj)/(Ni*Njo) - 1
                     ENDIF

                CASE mNumMod = 9                    // INF6             
                     IF Nj*Nobj <> 0
                        Iij = (Nij/Nj) - (Ni/N)
                     ENDIF

                CASE mNumMod = 10                   // INF7
                     IF Njo*Nobj <> 0
                        Iij = (Nij/Njo) - (Ni/Nobj)
                     ENDIF

             ENDCASE

             SELECT INF_CLUST

             DBGOTO(i)
             FIELDPUT(2+j,Iij)                                       // сам элемент Iij
             REPLACE SUMMA WITH SUMMA + Iij                          // столбец SUMMA

             DBGOTO(N_Atr+1)
             FIELDPUT(2+j,FIELDGET(2+j)+Iij)                         // строка  SUMMA
             REPLACE SUMMA WITH SUMMA + Iij                          // Угл.эл. SUMMA

         NEXT
     NEXT

     ****** Расчет средних по строкам
     SELECT INF_CLUST
     FOR i = 1 TO N_Atr
         DBGOTO(i)
         REPLACE SREDN WITH SUMMA/N_Cls
     NEXT

     ** Расчет средних по столбцам
     GO N_Atr+2                                              // SREDN строка
     FOR j = 1 TO N_Cls
         DBGOTO(N_Atr+1);mSumma = FIELDGET(2+j)              // SUMMA строка
         DBGOTO(N_Atr+2);FIELDPUT(2+j,mSumma/N_Atr)          // SREDN строка
     NEXT
     DBGOTO(N_Atr+1);mSredn = SUMMA/(N_Cls*N_Atr)
     DBGOTO(N_Atr+2);REPLACE SREDN WITH mSredn               // SREDN угловой элемент

     ****** Расчет столбца интегральной информативности факторов
     Ds  = 0                                                 // угловой элемент DISP
     FOR i = 1 TO N_Atr
         DBGOTO(i);mSredn = SREDN
         FOR j = 1 TO N_Cls
             Iij = FIELDGET(2+j)                             // Информативность-элемент (i,j)
             REPLACE DISP WITH DISP+(mSredn-Iij)^2
             Ds  = Ds  + (mSredn-Iij)^2
         NEXT
     NEXT

     **** Дорасчет интегральной информативности факторов
     FOR i = 1 TO N_Atr
         DBGOTO(i);mDisp = DISP                                           // DISP столбец
         REPLACE DISP WITH SQRT(DISP/(N_Cls-1))
     NEXT

     *** Расчет степени редукции классов
     FOR j = 1 TO N_Cls
         DBGOTO(N_Atr+2);mSredn=FIELDGET(2+j)
         FOR i = 1 TO N_Atr
             DBGOTO(i);Iij=FIELDGET(2+j)                     // Информативность-элемент (i,j)
             DBGOTO(N_Atr+3);FIELDPUT(2+j,FIELDGET(2+j)+(mSredn-Iij)^2)
         NEXT
     NEXT

     **** Дорасчет среднеквадратичного оклонения по классам и угл.элемент
     DBGOTO(N_Atr+3)
     FOR j = 1 TO N_Cls
         FIELDPUT(2+j,SQRT(FIELDGET(2+j)/(N_Atr-1)))
     NEXT
     REPLACE DISP WITH SQRT(Ds/(N_Cls*N_Atr-1))              // DISP - угловой элемент


См. строки:

CASE mNumMod = 4 // INF1
IF Nij*Ni*Nj*N <> 0
Iij = K*LOG((Nij*N)/(Ni*Nj))
ENDIF

А для модели Inf2 этот коэффициент не используется, поэтому там кол-во информации просто делится на Log(2)

CASE mNumMod = 5 // INF2
IF Nij*Ni*Njo*Nobj <> 0
Iij = LOG((Nij*Nobj)/(Ni*Njo))/LOG(2)
ENDIF

Но эта модель хуже обоснована теоретически, хотя и более понятна, чем Inf1
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Вс авг 05, 2018 8:50 pm

Надо все же видимо довести до ума распознавание с GPU.

Там еще почему-то в результате получалось другое количество объектов, чем было в тестовой выборке. Я об этом писал.
И сейчас при распознавании обуч.выборки различие осталось: в результате на 1 больше.
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Вс авг 05, 2018 8:56 pm

В результате эти объекты лишние (их 38):

fd3af939c
fd46bc316
fd69c65d3
fd801ee9d
fd992de8a
fdac3144d
fdc71f3af
fdec1a81a
fdf7658f0
fe02247d5
fe0c5726a
fe22d064a
fe243db29
fe497b462
fe5414c97
fe596c7c2
fe7595983
fe800ed37
fe808da78
feb1ad7a8
febbda7c9
fed131a60
fef33cb02
fef8c8005
ff0dccf66
ff2320d84
ff2558703
ff34496ea
ff3d0e888
ff3e1f24c
ff7b7c367
ff7be29d2
ff7cdeb16
ff85154c8
ffb6b3f4f
ffcf61eb6
ffea67e98
ffeb15d25

Начиная со 117 объекта в результатах появляются новые объекты, которых не было в расп.выборке.

115 06cd03d09 06cd03d09 129925.000000000 0
116 06e503809 06e503809 19915076.0000000 0
117 06f5eb3b9 06e503809 129925.000000000 1
118 06f84353d 06f5eb3b9 129925.000000000 1

Объект 06e503809 лишний. И дальше еще появилось неизвестно откуда 37 объектов
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Пн авг 06, 2018 6:00 am

Дмитрий Бандык писал(а):Буду разбиратьтся. Имена как вижу пошли с начала списка. Где-то при разбиении выборки на части последняя часть пошла как равная по размеру с предыдущими. А должна быть короче. Исправлю.

После этого наверное модуль распознавания будет практически готов. Надо будет еще конечно проверить правильность результатов на малой выборке. Проверю. При завершении не выдал ошибку, написал нормальное сообщение о завершении работы. Я просто взял и сравнил в Excel колонку наименований объектов из файла результата (вида results_inf7k.csv) и из файла заголовков распознаваемой выборки (Rso_Zag.dbf). Там в результатах не только в конце объекты из начала списка. Еще и по всему списку вставлено по 1 объекту в разных местах с определенным шагом. Послал тебе на почту Excel-файл со сравнением. Может тебе поможет. Там появляется смещение в результате из-за дублирования объекта, и оно нарастает.
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Пн авг 06, 2018 6:49 am

Спасибо. Буду смотреть. Еще пожелание. Не мог бы не использовать серый цвет в прогресс-бар. Мне он не нравится.

После окончания работы модуля распознавания можно написать:


Распознавание завершено успешно! (полужирным)
Объектов распознаваемой выборки: #########
Классов: #########. Признаков: #########
Моделей: ##. Интегральных критериев: ##
Время исполнения: ## час. ## мин. ## сек.

А после модуля синтеза моделей:

Синтез моделей успешно завершен! (полужирным)
Объектов обучающей выборки: ########
Классов: #########. Признаков: #########
Моделей: ##. Время исполнения: ## час. ## мин. ## сек.

Как-то посимпатичнее выровнять на окошке
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Пн авг 06, 2018 7:16 am

OK. Тогда посмотрю я.

начал поиск самой достоверной модели по метрике Каггла (Среднеквадратическое отклонение логарифмов факта и прогноза (RMSLE) )

https://habr.com/post/176267/
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Пн авг 06, 2018 10:13 am

Дима!
Попробуй, плз, сделать формат матриц моделей таким, чтобы они считывались в системе Эйдос, например в режиме 5.5. Их структуры я привел выше. Конец строки CrLf
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Пн авг 06, 2018 10:59 am

Данные по достоверности моделей с различными инт.критериями:
Код: Выделить всё
Наим. Модели   Достоверность модели
Prc2i   36,28616
Prc1i   15,04822
Inf7i   10,65261
Absk   9,75555
Inf4i   8,18569
Inf2i   4,64230
Inf1i   4,14891
Inf6i   3,22942
Inf5i   2,71361
Absi   1,61471
Inf1k   1,07647
Inf4k   0,94192
Inf2k   0,58309
Inf6k   0,49338
Inf7k   0,33640
Inf3i   0,13456
Inf3k   0,08971
Среднее прогноз   0,06728
Prc1k   0,00000
Prc2k   0,00000
Inf5k   0,00000

Это доля случае в %, когда прогноз в данной модели с данным инт.критерием был наиболее точным (модуль абс.погрешности был минимальным)
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Пн авг 06, 2018 12:11 pm

Пытался найти наиболее достоверную модель по результатам распознавания обучающей выборки, чтобы потом использовать это при подготовке данных для Каггла после распознавания тестовой выборки. Откровенно говоря пока достоверность получилась так себе, не очень. Причем по разным критериям разные модели оказываются наиболее достоверными. Я сделал средневзвешенный прогноз из небольшого числа наиболее достоверных моделей, который тоже так себе.

Проверил все на моделях небольших размерностей. Все работает правильно, и система Эйдос, и Димины модули, и дают хорошие результаты, но не на этих данных.

Послал на почту
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Пред.След.

Вернуться в Chaos and Correlation

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

cron