• Модель Random Forest для классификации, реализация на c#

      Доброго времени суток, читатель. Random Forest сегодня является одним из популярнейших и крайне эффективных методов решения задач машинного обучения, таких как классификация и регрессия. По эффективности он конкурирует с машинами опорных векторов, нейронными сетями и бустингом, хотя конечно не лишен своих недостатков. С виду алгоритм обучения крайне прост (в сравнении скажем с алгоритмом обучения машины опорных векторов, кому мало острых ощущений в жизни, крайне советую заняться этим на досуге). Мы же попробуем в доступной форме разобраться в основных идеях, заложенных в Random Forest (бинарное дерево решений, бутстреп аггрегирование или бэггинг, метод случайных подпространств и декорреляция) и понять почему все это вместе работает. Модель относительно своих конкурентов довольно таки молодая: началось все со статьи 1997 года в которой авторы предлагали способ построения одного дерева решений, используя метод случайных подпространств признаков при создании новых узлов дерева; затем был ряд статей, который завершился публикацией каноничной версии алгоритма в 2001 году, в котором строится ансамбль решающих деревьев на основе бутстреп агрегирования, или бэггинга. В конце будет приведен простой, совсем не шустрый, но крайне наглядный способ реализации этой модели на c#, а так же проведен ряд тестов. Кстати на фотке справа вы можете наблюдать настоящий случайный лес который произрастает у нас тут в Калининградской области на Куршской косе.

      Читать дальше →
    • Управление роборукой при помощи leap motion



        В прошлом году я собрал роборуку, написал для неё «драйвер» для linux, научил держать разные предметы. И как-то забыл про неё. Но вчера мне доставили leap motion и придумалась новая идея — научиться управлять роборукой по средством движений своих рук.
        Читать дальше →
      • PHP и различные виды NoSQL



        В последнее время набирают популярность различные NoSQL базы данных. Эта статья начиналась как изучение особенностей графитовой графовой базы данных Neo4j. Но, в процессе подбора информации, мне захотелось систематизировать информацию о NoSQL решениях и о графовых базах данных, в частности.
        В ходе этого небольшого исследования, были выбраны для подробного рассмотрения СУБД, успешно применяющиеся в области Web. И, поскольку в тегах присутствует «PHP», я выбирал СУБД, которые уже можно использовать с этим языком.

        Читать дальше →
      • Как использовать секционные элементы HTML5

        Один славный малый Matt West c туманного альбиона, промышляющий фрилансом и предпринимательством, предложил нашему вниманию пост: «Как использовать секционные элементы HTML5».
        Ниже приводится его перевод.




        HTML5 предлагает набор секционных элементов, используя которые в своей разметке вы добавляете смысловую или семантическую нагрузку своим страницам, тем самым позволяя компьютерным программам лучше понимать их содержание.
        Прочитав этот пост, вы научитесь применять секционные элементы на ваших веб-сайтах. Я постараюсь объяснить, в каких случаях лучше использовать тот или иной элемент и когда лучше прибегнуть к старому доброму .
        Давайте начнем.
        Читать дальше →
      • Проблемы мотивации: работа с «выгоревшими» сотрудниками

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

        Для понимая того, почему такие люди появляются в организации, рассмотрим модель развития специалиста, построенную на параметрах «навык / мотивация». Основу для неё я взял из модели ситуационного лидерства и немного развил, исходя из практических наблюдений. Эта модель нужна, чтобы понять, на каком этапе «жизненного цикла» могут находиться на нашем проекте, и как это влияет на их мотивацию.

        Этап 1 – мало опыта, много энтузиазма (низкий навык, высокая мотивация). Это может быть молодой специалист, получивший первую работу; человек, решивший попробовать себя в новой профессии или профессионал, которого выдвинули на руководящую должность. В общем, любой из вариантов, когда человек только что пришел на новое место, очень хочет добиться успеха, но еще не понимает как это сделать.

        На этом этапе обычно находится человек, который только-только записался в спортзал: он точно решил, что будет ходить туда несколько раз в неделю, сбросит лишний вес, нарастит мускулы и уж в этот-то отпуск поедет красивым и подтянутым.

        Читать дальше →
      • Splay-деревья

        • Tutorial
        Сбалансированное дерево поиска является фундаментом для многих современных алгоритмов. На страницах книг по Computer Science вы найдете описания красно-черных, AVL-, B- и многих других сбалансированных деревьев. Но является ли перманентная сбалансированность тем Святым Граалем, за которым следует гоняться?

        Представим, что мы уже построили дерево на ключах и теперь нам нужно отвечать на запросы, лежит ли заданный ключ в дереве. Может так оказаться, что пользователя интересует в основном один ключ, и остальные он запрашивает только время от времени. Если ключ лежит далеко от корня, то запросов могут отнять времени. Здравый смысл подсказывает, что оценку можно оптимизировать до , надстроив над деревом кэш. Но этот подход имеет некоторый недостаток гибкости и элегантности.

        Сегодня я расскажу о splay-деревьях. Эти деревья не являются перманентно сбалансированными и на отдельных запросах могут работать даже линейное время. Однако, после каждого запроса они меняют свою структуру, что позволяет очень эффективно обрабатывать часто повторяющиеся запросы. Более того, амортизационная стоимость обработки одного запроса у них , что делает splay-деревья хорошей альтернативой для перманентно сбалансированных собратьев.
        Читать дальше...
      • Алгоритм Улучшенной Самоорганизующейся Растущей Нейронной Сети (ESOINN)


          Введение


          В моей предыдущей статье о методах машинного обучения без учителя был рассмотрен базовый алгоритм SOINN — алгоритм построения самоорганизующихся растущих нейронных сетей. Как было отмечено, базовая модель сети SOINN имеет ряд недостатков, не позволяющих использовать её для обучения в режиме lifetime (т.е. для обучения в процессе всего срока эксплуатации сети). К таким недостаткам относилась двухслойная структура сети, требующая при незначительных изменениях в первом слое сети переобучать второй слой полностью. Также алгоритм имел много настраиваемых параметров, что затрудняло его применение при работе с реальными данными.

          В этой статье будет рассмотрен алгоритм An Enhanced Self-Organizing Incremental Neural Network, являющийся расширением базовой модели SOINN и частично решающий озвученные проблемы.
          Читать дальше →
        • Измените свое настроение, чтобы остановить прокрастинацию

            Наверняка, каждый из нас время от времени прокрастинирует. Команда сервиса достижения целей SmartProgress всегда в поисках решения этой проблемы, и недавно мы нашли новый интересный подход. На Wall Street Journal (автор Sue Shellenbarger) в статье «To stop procrastinating, look to science of mood repair» рассказывает как победить прокрастинацию с помощью нового метода смены настроения. В этом посте хотел бы привести основные тезисы из статьи:

            Прокрастинаторы, примите к сведению: если вы уже пытались дисциплинировать себя, но все равно продолжаете откладывать все на потом, может быть, пора попробовать что-то другое. Есть новый подход: сменить свое настроение.



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

            Все чаще психологи и консультанты по тайм-менеджменту фокусируются на новой стратегии: они помогают прокрастинаторам увидеть, что попытки исправить ситуацию только мешают им и учат регулировать свои эмоции с помощью более продуктивных способов.

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

              Как случилось, что искусственный интеллект успешно развивается, а «правильного» определения для него до сих пор нет? Почему не оправдались надежды, возлагавшиеся на нейрокомпьютеры, и в чем заключаются три главные задачи, стоящие перед создателем искусственного интеллекта?

              На эти и другие вопросы вы найдете ответ в статье под катом, написанной на основе выступления Константина Анисимовича, директора департамента разработки технологий ABBYY, одного из ведущих экспертов страны в сфере искусственного интеллекта.
              При его личном участии были созданы технологии распознавания документов, которые применяются в продуктах ABBYY FineReader и ABBYY FormReader. Константин рассказал об истории и основах разработки AI на одном из мастер-классов для студентов Технопарка Mail.Ru. Материал мастер-класса и стал базой для цикла статей.

              Всего в цикле будет три поста:
              Искусственный интеллект для программистов
              Применение знаний: алгоритмы поиска в пространстве состояний
              • Получение знаний: инженерия знаний и машинное обучение
              Читать дальше →
            • Поиск маршрутов за 1 человеко-месяц

              Однажды для нашего проекта потребовался функционал прокладки маршрутов. Программистов у нас не то чтобы очень много, а скорее наоборот, поэтому мы хотели найти какое-то готовое решение, поискали и ничего хорошего не нашли.

              Данные дорожного графа у нас были, но в таком виде, что ни в одну библиотеку или какой-то middle-ware их так просто не подать. Да и middle-ware по навигации, честно говоря, мы не нашли, так чтобы просто встраивалось в нашу систему (спасибо, если кто подскажет куда посмотреть). Поэтому приняли решение сделать самостоятельно, используя по максимуму существующие библиотеки для всего.



              О процессе разработки сервиса и расскажу.
              Читать дальше →
            • Радиоуправляемый выключатель своими руками. Часть 1 — Hardware

              • Tutorial
              Этот пост — первая часть из серии рассказов о том, как можно относительно несложно сделать своими руками радиоуправляемый выключатель полезной нагрузки.
              Пост ориентирован на новичков, для остальных, думаю, это будет «повторение пройденного».


              Примерный план (посмотрим по ходу действия) ожидается следующий:
              1. Hardware выключателя
              2. Тестирование и подготовка
              3. Software выключателя
              4. «Центр управления»

              Приступим.
            • Модификация стоковых прошивок для Android. Часть 4

                Здравствуй Хабр!

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

                На прошлых скриншотах были следующие меню в моем самодельном твикере и вызвало множество приватных вопросов о реализации.

                Предпочтительный слот
                Выберите SIM карту на которой использовать передачу данных
                Уведомление о соединении
                Запретить оповещение об интернет подключении
                Автоматическая запись звонков
                Все звонки будут записаны стандартным диктофоном согласно его настройкам
                Запретить энергосбережение
                Запретить иконку энергосбережения в слайдере и статус баре
                Запретить выключатели
                Отключение в слайдере статус бара
                Читать дальше →
              • Визуализация с RGB-полоской

                  Итак, дорогие друзья, начну слегка из далека. Решил заказать с eBay из Америки недорого отладочную платку STMF4-DISCOVERY, долго ждал, хотел побаловаться с контроллером F4 серии, но через месяц на почте меня ждал облом. Вместо вкусной платки пришла натуральная хрень — RGB полоса на базе контроллера WS2801. Полоса водонепроницаемая с коннекторами и адресуемыми светодиодами по отдельности, но обо всем по порядку!

                  Первым делом надо попробовать её в деле! Приступим!

                  imageimage

                  Читать дальше →
                • Пару слов о распознавании образов

                  • Tutorial
                  Давно хотел написать общую статью, содержащую в себе самые основы Image Recognition, некий гайд по базовым методам, рассказывающий, когда их применять, какие задачи они решают, что возможно сделать вечером на коленке, а о чём лучше и не думать, не имея команды человек в 20.
                  image

                  Какие-то статьи по Optical Recognition я пишу давненько, так что пару раз в месяц мне пишут различные люди с вопросами по этой тематике. Иногда создаётся ощущение, что живёшь с ними в разных мирах. С одной стороны понимаешь, что человек скорее всего профессионал в смежной теме, но в методах оптического распознавания знает очень мало. И самое обидное, что он пытается применить метод из близрасположенной области знаний, который логичен, но в Image Recognition полностью не работает, но не понимает этого и сильно обижается, если ему начать рассказывать что-нибудь с самых основ. А учитывая, что рассказывать с основ — много времени, которого часто нет, становится всё ещё печальнее.
                  Распознать
                • Обучение OpenCV каскада Хаара

                  • Tutorial
                  На хабре уже есть несколько статей и про то, что такое каскад Хаара (раз, два, три). Есть даже одна, где затронут процесс обучения, но в отношении описанной задачи. На тему обучения есть пара неплохих статей на английском (первая, вторая, третья), но, на мой взгляд, они путанные: либо рассказывают очень мало, либо слишком много и обо всём — выделить нужную мысль сложно.
                  image
                  В этой статье я попробую показать, как обучить каскад с нуля за несколько часов, натренировав на поиск простого предмета в видеопотоке (примером будет очаровательная сова с фотографии). Все обучающие выборки и программы будут приложены.
                  Зачем всё это нужно? Каскад Хаара это один из простейших способов распознавания классов объектов с большой скоростью работы. К ним относятся лица и руки людей, номера автомобилей, пешеходы. Детектором Хаара просто находить животных в кадре (кстати, удивительно, что я не видел ещё ни одной автоматической кормушки для синиц на raspberry pi). К тому же, готовые реализации OpenCV есть под большинство существующих систем (даже для blackfin'a встречал). Всё это делает Хаара одним из самых удобных методов, позволяющих решать задачи видеообработки даже людям, которые никогда не работали с обработкой видео.
                  Читать дальше →
                • Machine Learning. Курс от Яндекса для тех, кто хочет провести новогодние каникулы с пользой

                  • Tutorial
                  Новогодние каникулы – хорошее время не только для отдыха, но и для самообразования. Можно отвлечься от повседневных задач и посвятить несколько дней тому, чтобы научиться чему-нибудь новому, что будет помогать вам весь год (а может и не один). Поэтому мы решили в эти выходные опубликовать серию постов с лекциями курсов первого семестра Школы анализа данных.

                  Сегодня — о самом важном. Современный анализ данных без него представить невозможно. В рамках курса рассматриваются основные задачи обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на глубокое понимание математических основ, взаимосвязей, достоинств и ограничений рассматриваемых методов. Отдельные теоремы приводятся с доказательствами.



                  Читает курс лекций Константин Вячеславович Воронцов, старший научный сотрудник Вычислительного центра РАН. Заместитель директора по науке ЗАО «Форексис». Заместитель заведующего кафедрой «Интеллектуальные системы» ФУПМ МФТИ. Доцент кафедры «Математические методы прогнозирования» ВМиК МГУ. Эксперт компании «Яндекс». Доктор физико-математических наук.
                  Содержание и видео всех лекций курса
                • Идентификация личности на основе данных о перемещениях (трекинга)

                    Идентификация личности на основе данных о перемещениях


                    Не так давно в сети наткнулся на занимательную статью — аналитический отчет о том, как можно практически с 95 % гарантией идентифицировать личность пользователя мобильного устройства, зная только лишь 4 точки (по сути — базовые станции), через которые он выходил на связь через определенные промежутки времени (1,5-2 часа). В чем там оказалась суть…

                    Среди научных исследований в области управления доступом на основе данных о местоположении особо стоит отметить работу группы американских и английских исследователей [1], которые провели детальный анализ данных о перемещениях примерно 1,5 млн. абонентов сотовой сети связи в течении более чем полутора лет. Задачей анализа было выявить насколько уникальными являются маршруты передвижения абонентов и возможно ли, обладая лишь только данными о пребывании абонента в определенных точках в течении некоторого времени, достаточно точно идентифицировать его личность. Результатом исследования стал вывод, что, зная всего 4 пространственно-временных точки, можно с вероятностью в 95 % идентифицировать человека.
                    Читать дальше →
                    • +17
                    • 16.4k
                    • 7
                  • OpenCourseWare

                      Недавно нам на глаза попался список ссылок на бесплатные онлайн-курсы от различных учебных заведений США. Список показался интересным, его запокетили, чтобы когда-нибудь посмотреть, что эти курсы из себя представляют. Вот, наконец-то, руки дошли.

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

                      Интересный факт: Оказывается существует целое движение — OpenCourseWare, которое началось в 1999 году в Германии, когда один из университетов разместил видео своих лекций онлайн. Вскоре и други университеты подхватили инциативу и сейчас OpenCourseWare — это достаточно популярная штука, которая представляет из себя курсы и бесплатные учебные материалы, созданные в университетах и распространяющиеся через интернет.
                      Как правило ресурсы OCW не требуют регистрации и не предлагают никаких сертификатов о прохождении. Все обучение — в качестве self-improvement.

                      Под катом список бесплатных онлайн-курсов и уроков от лучших учебных заведений
                      Читать дальше →
                      • +35
                      • 29.7k
                      • 5
                    • Bitcoin: основные принципы майнинга


                        (источник)

                        Про Bitcoin (BTC) на Хабре писали много (в последнее время даже чересчур много). Как он работает, об интересе к нему со стороны правительства и спецслужб. Биткойн не раз пытались похоронить и затем откопать назад. Даже проводили экскурсии на страусиную ферму. Но как-то, глядя на это, не складывалось целостной картины.

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