Ответы пользователя по тегу Алгоритмы
  • Знаете ли вы ещё подобные проекты?

    @dmshar
    Таких проектов - с открытым исходным кодом в том числе - достаточно много в сети. Вы бы предварительно рассказали, что именно вы считаете "интересным" проектом. Например, то что я увидел, мне интересным не показался.
    Ответ написан
    6 комментариев
  • С чего начать изучать алгоритмы?

    @dmshar
    Нужно понять, кем вы стремитесь стать - кодировщиком или разработчиком.
    Если кодировщиком - то выучили язык и бегом - по готовому, кем-то составленному ТЗ - писать программы и деньги зарабатывать.
    Если разработчиком - то без знания алгоритмов вам не обойтись. Вы сами должны будете уметь хотя-бы из имеющихся реализаций выбрать наиболее подходящую или эффективную. А возможно и модифицировать их именно с учетом конкретного приложения. А "рядом" с алгоритмами обычно изучаются структуры данных - без них разработчику (а не кодировщику) - тоже никак.
    Этап изучения языка - это база. Другое дело, что учить "голый" язык бывает скучновато. И это обучение "разбавляют" всякими простенькими задачами -в том числе из области алгоритмизации. Ну, к примеру, поиск максимального элемента в массиве, или простейшие сортировки. Но это не более, чем база. Хотя многие почему-то гордо считают, что это и есть изучение "алгоритмов и структур данных".
    А этап изучения алгоритмов - это уже более высокая ступень совершенствования в профессии.
    Но и изучаются эти две дисциплины по-разному. Изучение языка - это как в школе. Многие вещи надо помнить наизусть. Вы не будете за синтаксисом каждого оператора лазить в Google. Знания языка, умение кодить - это как навык, который должен срабатывать даже во сне. А вот алгоритмы и структуры данных изучаются уже действительно на уровне понимания. Необходимо не запоминать, но понимать, какие они есть, когда они могут оказаться полезными, в чем отличие одного от другого. А при случае - суметь задать умный (!!!) вопрос Google и в море "шлакоответов" найти - и главное понять - правильный.
    Что-до книг. Кормен и Лейзерсон для новичка, действительно, сложноват.
    Но во-первых, есть его "прямая адаптация": Бхаргава А. - Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих - 2017. То же самое, но проще.
    Во-вторых, тот же Кормен написал еще одну книгу: Кормен Алгоритмы. Вводный курс. Вот ее можно уже рекомендовать и для новичка.
    Кроме того, могу порекомендовать сайты, с вполне доступными материалами:
    algolist.manual.ru
    aliev.me/runestone
    И в сети - если совсем лень - есть сегодня куча неплохих видеокурсов. Так что - удачи.
    Ответ написан
    Комментировать
  • Как определить ближайшие точки на плоскости путем хеширования?

    @dmshar
    Вообще-то в приведенной статье приведена несколько другая формула.
    (Floor(pos.x / cellSize) * 73856093) ^ (Floor(pos.y / cellSize) * 19349663) ^ (Floor(pos.z / cellSize) * 83492791)
    Вы не находите, что операция "^" несколько отличается от операции "+"?
    Ответ написан
  • Как подготовить базу для нейронный сети?

    @dmshar
    А вы прочитали хоть одну книгу, статью, да просто страничку в интернет про нейронные сети, как они устроены, как работают? Или вы решили "переизобрести велосипед" ?
    Судя по вопросам - не читали. Вот с этого и рекомендую начать.
    Про базу данных - ответ примерно тот-же. Попробуйте начать с того, что-бы разобраться, а как вообще можно хранить информацию в компьютере. Это написано на первых страницах любой книжки по программированию.
    Про "ngram" - это вообще какая-то загадочная фраза. Хоть знаки препинания расставьте, что-ли.
    Ответ написан
    2 комментария
  • Какой используется метод для обнаружения аномалии в случайной последовательности?

    @dmshar
    Эх, поздно увидел вопрос - не тот тег вы ему дали.
    Тут уже напридумывали-насоветовали такого.... В то время, как задача у вас абсолютно классическая, хорошо изученная, описанная и даже в учебники включенная. Другое дело, что и методов ее решения много - в зависимости от особенностей данных с которыми вы работаете.
    Называется то, что вы хотите сделать - "поиск аномалий во временных рядах". По этой фразе гуглится легко. Для входа в тему можно начать, например, вот отсюда:
    https://dyakonov.org/2017/04/19/поиск-аномалий-ano...
    или вот отсюда
    https://www.datascience.com/learn-data-science/fun...
    Есть и более серьезные описания. Если заинтересует - подскажу.
    P.S. Забыл сказать - правильные теги для вашего вопроса - "Машинное обучение", "Data science", "Математическая статистика", "Data mining", ну, может еще с большой натяжкой - "Нейронные сети".
    Ответ написан
    Комментировать
  • Как подобрать 5 рандомных чисел если есть только срерднеарифметическое этих чисел?

    @dmshar
    Извините, но вынужден вставить ложку дегтя в вашу бочку меда.
    Дело в том, что операция "восстановления по среднему" - абсолютно бессмысленна семантически. Т.е. "восстановленные" данные нельзя использовать ни для какого анализа. Категорически и абсольютно.
    Другими словами, реальные "прошлые" данные с которыми можно работать и извлекать из них осмысленную информацию - ну например, смотреть, как они изменяются во времени - как было среднее, так и осталось. Все восстановленные данные для такого - и никакого другого анализа - не годятся. Любая такая попытка - явная фальсификация.
    Тогда вопрос - а зачем их "восстанавливать"? Честнее просто указать -"данные недоступны".
    Ответ написан
    Комментировать
  • Какие методы машинного обучения применить?

    @dmshar
    Ту задачу, которую вы пытаетесь решить, можно отнести к классу задач пространственно-временной (гео)статистики, в частности - пространственно-временной интерполяции. Что-то есть на русском, гораздо больше информации на английском. Гуглите по словосочетанию "spatio-temporal interpolation".
    Для R можно начать, например, вот отсюда
    r-video-tutorial.blogspot.com/2015/08/spatio-tempo...
    Задача, сразу предупреждаю, не из простых.
    Ответ написан
    Комментировать
  • Есть ли в R пакеты, содержащие следующие алгоритмы?

    @dmshar
    Все находится в один клик.
    Ну например.
    Алгоритм светлячков:
    https://cran.r-project.org/web/packages/metaheuris...
    Алгоритм пчелиного роя:
    https://cran.r-project.org/web/packages/ABCoptim/A...
    Алгоритм муравьиной колонии - даже несколько реализаций:
    https://cran.r-project.org/web/packages/evoper/evo...
    https://cran.r-project.org/web/packages/irace/irace.pdf
    Дальше - не интересно. Надеюсь, справитесь самостоятельно.
    Ответ написан
    1 комментарий
  • Где можно почитать про методы сравнения алгоритмов анализа данных?

    @dmshar
    Уточните вопрос.,
    "Алгоритмы анализа данных" вовсе не то же самое, что "алгоритмы принятия решений".
    В свою очередь, анализ данных - весьма обширная область, включающая и Machine Learning, и Data Minimg, и статистические алгоритмы, и ставшие супермодными нынче нейронные сети. В каждом разделе по несколько десятков только основных алгоритмов.
    Внутри одной группе алгоритмы можно сравнивать по области применимости, по вычислительной сложности, по мощности, по многим другим специальным параметрам.
    Поэтому, если хотите более конкретного ответа - уточните, что именно вас интересует и как вы собрались эти алгоритмы сравнивать.
    Ответ написан
  • Как по-простому определить наличие кластеров во временных данных?

    @dmshar
    Если делать все "как надо", то первым делом надо ответить на вопрос - распределение выборки отличается от равномерного или нет. Если отличается - то тогда можно идти дальше - искать кластеры, или выяснять, какое у выборки (а через нее - и у генеральной совокупности) распределение в действительности, и т.д. По большому счету, в дальнейшем даже выбор метода кластеризации, если его делать "правильно", должен зависеть и от результат этого этапа в том числе. Если-же не отличается - ну тогда и так все ясно, дальнейших исследований не требуется. Не забудьте после применения критерия проверить значимость полученных результатов, что-бы понимать, на сколько им можно доверять.

    Для определения "равномерности" выборки существуют ряд специальных критериев, наиболее распространенный из которых - т.н. критерий Шермана. Вычислительно простой и статистически мощный. (Существуют и другие критерии, но оптимальный выбор конкретного критерия - это уже тема более глубокого анализа).

    И еще хочу обратить ваше внимание, что кластеризация временнЫх рядов (именно рядов!) - это немного другое, чем просто кластеризация значений этих самых рядов (по сути, не отличающееся от кластеризации статических данных). Разные цели и разные методы.
    Ответ написан
    2 комментария