[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 » Чт авг 02, 2018 9:04 am

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

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 9:33 am

Можно поставить птичку: показывать-не показывать, а по умолчанию показывать. нечто подобное было в DOS-версии системы Эйдос. Там в виде 2d картинки отображался процесс расчета моделей и распознавания, см. рисунок 4 здесь http://lc.kubagro.ru/aidos/aidos14_L3/1.htm
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 10:50 am

Просто файлы результатов для Каггла вида results_inf5i.csv, results_inf5k.csv получаешь из соответствующих файлов результатов распознавания Rsp_inf5i.dbf, Rsp_inf5k.dbf и все
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 11:01 am

Новая программа синтеза вроде на вид работает и завершается нормально, но дает во всех матрицах все нули. В конце в сообщении про OK можно убрать. И так ясно, что OK.

Модуль распознавания на вид работает нормально, но в конце выдает ошибку:
Изображение

В тех статьях приведены формулы для обоих инт.критериев.
Могу сказать где это в исходном тексте.

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

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 11:09 am

Может быть это из-за того, что разные видеокарты?
Вот еще один: https://yadi.sk/d/HMm_RrPt3Zpxd6
Чтобы работало надо разместить так: c:\1\Aidos-X
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 11:22 am

После синтеза моделей во всех матрицах все нули. Это заняло около 3 минут.

Модуль распознавания в конце дал ту же ошибку. Процесс шел минут 5.

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

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 11:48 am

Теперь все числа в матрицах моделей на месте. Процесс создания всех моделей занял 27 секунд.

Нечаянно запустил распознавание до окончания записи матриц. Получился конфликт обращения к GPU.

Но после закрытия модуля синтеза распознавание пошло без перезагрузки модуля и дало правдоподобный результат, а в конце ту же ошибку.

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

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 12:06 pm

у меня тоже появилась эта мысль (на счет синтеза модели на ЦПУ), тем более, что на GPU у меня вообще не работает и тоже дольше.

Но результаты надо получать из соответствующих файлов.

Если теперь ты сделаешь форму по достоверности моделей (с метрикой Каггла), то можно будет получить средневзвешенный прогноз путем голосования прогнозов в разных моделях с разными инт.критериями с весами, равными достоверности моделей. И это уже посылать на Каггл.

Мы так делали с Александром Петровичем когда-то давно:
http://lc.kubagro.ru/aidos/aidos12_TL2/index.htm
http://lc.kubagro.ru/aidos/aidos12_TL2/2.htm
2.6. АЛГОРИТМ ГОЛОСОВАНИЯ МОДЕЛЕЙ (С ВЫБОРОМ ОДНОГО ИЗ 5-И АЛГОРИТМОВ)

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

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 12:34 pm

Может быть с выводом сообщения.

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

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

Re: Santander Value Prediction Challenge

Сообщение Eugene Lutsenko » Чт авг 02, 2018 1:36 pm

В исходном тексте: http://lc.kubagro.ru/__AIDOS-X.txt
ищем: N F4_1_2. Находим функцию, которая осуществляет распознавание: FUNCTION F4_1_2(mNumModel, Dialog, Regim)
Там основной фрагмент, который считает сходство:
Код: Выделить всё
      // Сброс массива-локатора кодов признаков распознаваемого объекта
      AFILL(Ar_Lok,0)

      M_SumLok = 0                 // Сумма 1 и 0 массива-локатора

      SELECT Rso_Kpr;SET ORDER TO 1;T=DBSEEK(STR(M_KodObj,19))
      IF T
         ******** Цикл по признакам одного объекта
         DO WHILE M_KodObj = Kod_obj .AND. .NOT. EOF()
            FOR j=2 TO 8
                M_Kpr = FIELDGET(j)
                IF 0 < M_Kpr .AND. M_Kpr <= N_Gos   // Проверка на корректность кода признака
                   // Если признак указан у объкта несколько раз, значит он у него и встречается несколько раз,
                   // например буква "о" в слове "молоко" встречатся 3 раза
*                  DC_DebugQout( M_Kpr )
                   Ar_Lok[M_Kpr] = Ar_Lok[M_Kpr] + 1
                   ++M_SumLok           // Сумма 1 и 0 массива-локатора
                ENDIF
            NEXT
            DBSKIP(1)
         ENDDO
      ENDIF

      ******* Массив кодов классов, к которым ФАКТИЧЕСКИ относится данный объект
      PRIVATE Ar_Kcl := {}
      SELECT Rso_Kcl;SET ORDER TO 1;T=DBSEEK(STR(M_KodObj,19))
      IF T
         ******** Цикл по классам одного объекта
         DO WHILE M_KodObj = Kod_obj .AND. .NOT. EOF()
            FOR j=2 TO 5
                M_Kcl = FIELDGET(j)
                IF 0 < M_Kcl .AND. M_Kcl <= N_Cls   // Проверка на корректность кода класса
                   AADD(Ar_Kcl, M_Kcl)
                ENDIF
            NEXT
            DBSKIP(1)
         ENDDO
      ENDIF

*     // Проверка правильности выборки кодов классов и признаков
*     Mess = L("Код распознаваемого объекта: "+ALLTRIM(STR(M_KodObj,19))+". Коды классов: "
*     FOR j=1 TO LEN(Ar_Kcl)
*          Mess = Mess+ALLTRIM(STR(Ar_Kcl[j],19))+" "
*     NEXT
*     Mess = Mess + ". Коды признаков: "
*     FOR j=1 TO LEN(Ar_Lok)
*         IF Ar_Lok[j] > 0
*            Mess = Mess+ALLTRIM(STR(j,19))+" "
*         ENDIF
*     NEXT
*     LB_Warning(Mess)

      // Использование полученных массивов собственно для распознавания

      ***** Расчет среднего и дисперсии массива-локатора
      M_SrObj = M_SumLok/N_Gos                // Среднее   1 и 0 массива-локатора
      M_DiObj = 0                             // Дисперсия 1 и 0 массива-локатора
      FOR i=1 TO N_Gos
          M_DiObj = M_DiObj + ( M_SrObj - Ar_Lok[i]) ^ 2
      NEXT
      M_DiObj = SQRT( M_DiObj / (N_Gos - 1))  // Дорасчет дисперсии 1 и 0 массива-локатора

*     DC_DebugQout( { Alias(), IndexOrd() } )

      IF M_DiObj > 0                          // Объект описан

         aKod_obj := {}
         aKod_cls := {}
         aKorr    := {}
         aSum_inf := {}
         aDate    := {}
         aTime    := {}
         aFakt    := {}

         FOR j = 1 TO N_Cls                   // Цикл по классам распознавания в Inf

             IF aDiCls[j] > 0                 // Сформирован ли класс распознавания ?

                ****** Расчет нормированной к 100% корреляции массивов
                ****** локатора источника и информативностей признаков класса
                ****** (ИНТЕГРАЛЬНЫЙ КРИТЕРИЙ СХОДСТВА) *********************
                ****** и суммы информативностей имеющихся у объекта признаков

                M_SumInf = 0                  // Сумма информативностей признаков, имеющихся в описании объекта
                M_Kov    = 0                  // Ковариация между образом объекта и классом
                FOR i=1 TO N_Gos

                    Iij = VAL(LC_FieldGet(mModelName, nHandle[M_CurrInf], i, 2+j))        // Iij из БД текущей модели
                    M_Kov    = M_Kov    + (Ar_Lok[i] - M_SrObj) * (Iij - aSrCls[j])
                    M_SumInf = M_SumInf + Ar_Lok[i] * Iij

                NEXT
                M_Kov  = 100 * M_Kov / N_Gos
                M_Korr = M_Kov / (M_DiObj * aDiCls[j] )     // Корреляция между образом объекта и классом
                AADD(aKod_obj, M_KodObj)
                AADD(aKod_cls, j       )
                AADD(aKorr   , M_Korr  )
                AADD(aSum_inf, M_SumInf)
                AADD(aDate   , DTOC(DATE()))
                AADD(aTime   , TIME())

                *** Если распознаваемый объект ФАКТИЧЕСКИ относится к классу
                *** с кодом j, то поставить символ "√" в поле БД Rasp
                *** иначе поставить там пробел
                IF ASCAN(Ar_Kcl, j) > 0
                   AADD(aFakt, "√")
                ELSE
                   AADD(aFakt, " ")
                ENDIF
             ENDIF
         NEXT

         ****** Записать результаты распознавания в БД Rasp
         SELECT Rasp                        // Если сделать массивы для полей БД Rasp
         FOR j=1 TO LEN(aKod_obj)
             APPEND BLANK                   // и записывать результаты распознавания вне цикла по Inf, то все очень ускорится ###################
             REPLACE Kod_obj  WITH aKod_obj[j]
             REPLACE Kod_cls  WITH aKod_cls[j]
*            REPLACE Kod_ClSc WITH aKodClSc[aKod_cls[j]]
             REPLACE Korr     WITH aKorr[j]
             REPLACE Sum_inf  WITH aSum_inf[j]
             REPLACE Date     WITH aDate[j]
             REPLACE Time     WITH aTime[j]
             REPLACE fakt     WITH aFakt[j]
         NEXT

      ENDIF

      IF Regim<>"3_5";lOk = Time_Progress (++Time_Progress, Wsego, oProgress, lOk );ENDIF

      SELECT Rso_zag
      DBSKIP(1)

   ENDDO
   aSay[ 8]:SetCaption(aSay[ 8]:caption+L(" - Готово "))
   // Конец цикла по объектам распознаваемой выборки и их распознавание =================================


А в нем есть несколько строк, в которых используются два интегральных критерия:
Код: Выделить всё
                ****** Расчет нормированной к 100% корреляции массивов
                ****** локатора источника и информативностей признаков класса
                ****** (ИНТЕГРАЛЬНЫЙ КРИТЕРИЙ СХОДСТВА) *********************
                ****** и суммы информативностей имеющихся у объекта признаков

                M_SumInf = 0                  // Сумма информативностей признаков, имеющихся в описании объекта
                M_Kov    = 0                  // Ковариация между образом объекта и классом
                FOR i=1 TO N_Gos

                    Iij = VAL(LC_FieldGet(mModelName, nHandle[M_CurrInf], i, 2+j))        // Iij из БД текущей модели
                    M_Kov    = M_Kov    + (Ar_Lok[i] - M_SrObj) * (Iij - aSrCls[j])
                    M_SumInf = M_SumInf + Ar_Lok[i] * Iij

                NEXT
                M_Kov  = 100 * M_Kov / N_Gos
                M_Korr = M_Kov / (M_DiObj * aDiCls[j] )     // Корреляция между образом объекта и классом
Аватара пользователя
Eugene Lutsenko
 
Сообщения: 9738
Зарегистрирован: Вт мар 09, 2010 6:11 am
Откуда: Krasnodar, Russia

Пред.След.

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

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

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

cron