Ответы пользователя по тегу Машинное обучение
  • Как предсказание кластеризации превратить в текст?

    @dmshar
    Можно. Преобразуйте элементы списка (они у вас строковые) в строку.
    Ответ написан
    1 комментарий
  • С чего начать своё погружение в машинное обучение?

    @dmshar
    Не устаю повторять: Первое, самое главное, чему вы должны научиться ДО ТОГО, как соваться в Data Sceine - это приобрести умение самостоятельного поиска ответов на свои вопросы. Тем более, если вопросы эти - совершенно начального уровня, причем точно понятно (ну по крайней мере - если чуть чуть подумать самостоятельно), что вы абсолютно точно не первый, кто таким вопросом интересуется и ответов на него в сети должно быть много.
    Вы же гордо называете себя "программистом" - не понимаю, как сегодня можно быть программистом, если не уметь искать ответы хотя-бы в Google. Ну вот открываем браузер, вводим поисковый запрос - и ву-а-ля, ответов - на любой цвет, вкус и уровень начальной подготовки:

    https://habr.com/ru/post/668428/
    https://nuancesprog.ru/p/11226/
    https://towardsdatascience.com/first-steps-to-lear...
    https://zeh.media/znaniye/obrazovaniye/1478263-bol...
    https://www.kdnuggets.com/2021/05/guide-become-dat...
    и т.д.
    И даже на этом сайте такие темы возникают постоянно:
    https://qna.habr.com/q/1110094#answer_2111184
    https://qna.habr.com/q/1048686#answer_2021930
    https://qna.habr.com/q/1018702#answer_1983638
    и т.д.
    Что вас в этих ответах смущает настолько, что решили ими пренебречь и задать собственный уникальный вопрос?
    Вот когда проработаете хотя-бы эти материалы и что-то (вдруг!!!) останется для вас непонятным - вот тогда и будет что вам ответить действительно уникальное, чего вы не смогли найти в сети.
    Ответ написан
  • Как производить прогнозирование временных рядов, если обучающая выборка - это множество нестационарых рядов с разными параметрами распределения?

    @dmshar
    Понятно, что нестационарные ряды предсказывать гораздо сложнее, чем нестационарные. Есть разные подходы. Начиная я классики - моделей, в которых присутсвует предварительная дифференциация значения ряда - та-же ARIMA, в частности.
    Другой подход - динамическая фрагментация ряда, когда вы делаете ищете такие фрагменты, внутри которых свойства ряда сохраняются. Модификации того подхода на стрим-модели ряда (те же методы change point detection) позволяют это делать в режиме реального времени.
    Если говорить об использовании в этой задачи методов моделирования - то работают они по принципу "скользящего окна", когда по выборке за последний период делается прогноз вперед, потом прогноз сравнивается с реально приходящими данными и по ошибке прогнозирования либо продолжают использовать старую модель, либо ее перестраивают. Дальше вопрос - какую модель вы используете. И какая природа данных, с которыми вы работаете - универсально "хороших" моделей нет по определению. Тем более, что и нестационарные ряды бывают очень и очень различными, и для каждой задачи надо искать-подбирать свой подход. Многие на этом кандидатские работы делают, кстати.

    О том, что мало источников в интернете - очень не соглашусь. Конечно, в русскоязычном фрагменте их не так много, как в англоязычном - то так-же пару сотен ссылок на статьи и сайты найти можно.
    Ответ написан
    Комментировать
  • Совместимы ли Golang и Machine Learning?

    @dmshar
    Давайте разделим - мухи отдельно, а котлеты отдельно.
    Вопрос первый:
    "Совместимы ли Golang и Machine Learning?" - Ответ "да". Существуют решения для МL и на Go, и на Python, и на С# и на Java, и даже на PHP и JavaScript. А если учесть, что процентов 80 инструментов для МL реализованы на С++ то и он задействован.
    Вопрос в том, на чем чаше работают при решении задач ИИ и ML - это уже совсем другой вопрос.
    Вопрос второй:
    "можно ли мне их будет совмещать в дальнейшем, чтобы работать сразу в двух направлениях." Если под "их" вы понимаете Go и ML - то см. выше. А если "backend" и ML - скорее всего нет. Впрочем, есть такая специальность, как "Machine Learning engineer" или еще говорят "Специалист по дата-инженерии". Там могут оба навыка как-то сблизиться и где-то пересечься. Но это не чистый "backend" и не чистое Машинное обучение. Посмотрите в эту сторону.
    Вопрос третий:
    "Не знаю, что выбрать backend разработку на Golang или Machine Learning" (кстати, а тут уже вы Go противопоставили МL - это случайность?)
    Вот тут за вас никто не решит, и не стоит перекладывать ответственность на других. Посмотрите, почитайте - благо в интернете на эту тему написано столько, что ни на одном форуме вам не расскажут что-то новое. Подумайте, что вам больше нравиться, к чему больше тянет. Вообще говоря это разные сферы - одна чисто технологическая, вторая скорее статистическо-математическая, где программирование используется только как инструмент. Не факт, что вы настолько разносторонне и равномерно подготовлены, что почувствуете себя одинаково комфортно в обоих сферах. И принимайте решение. Самостоятельно! Без оглядки на советы непонятно кого, с непонятно каким опытом и образованием.
    Удачи.
    Ответ написан
    Комментировать
  • Вопрос про ансамбли нейросетей?

    @dmshar
    Начну со второго вопроса. Что вы имеете ввиду под соединением моделей с разными типами данных?
    Если вы имеете ввиду, что на вход вы подаете разные типы данных - то ответ таков: если вы сумеете оцифровать свои тесты и далее работать с ними и с числами как с цифрами - то можно. Кстати, вполне себе традиционные алгоритмы машинного обучения типа деревьев и производные от них изначально построены так, что они могут обрабатывать разные типы данных.
    Если же вы имеете ввиду, что результат моделей вы получаете в виде тестов и чисел и хотите из них строить ансамбль - то это вообще говоря странная затея - но думаю, можно попробовать использовать классический стеккинг. (опять же из машинного обучения)
    Теперь первый вопрос - книги и ресурсы. Самый лучший ресурс Гуугл где можно найти все. Но немного помогу:
    Книги:
    1. LUDMILA I. KUNCHEVA COMBINING PATTERN CLASSIFIERS
    2. Oleg Okun and Giorgio Valentini. Supervised and Unsupervised Ensemble Methods and their Applications
    3. Z.-H. Zhou Ensemble Methods Foundations and Algorithms

    Интернет-источники. Их сотни, например:
    1. https://towardsdatascience.com/a-guide-to-ensemble...
    2. https://www.analyticsvidhya.com/blog/2021/08/ensem...
    3. https://towardsdatascience.com/practical-guide-to-...
    4. https://machinelearningmastery.com/ensemble-learni...
    5. https://towardsdatascience.com/ensemble-learning-s...
    и т.д.
    Удачи.
    Ответ написан
  • Модель машинного обучения для оценки звука генератора?

    @dmshar
    Интересная задача. В разных постановках - вообще-то решаемая. (Для меня - несколько личная - еще в конце 80-ых годах прошлого столетия писал писал систему в котором по звуку определялась наличие полостей-раковин, т.е. брака - в больших литых изделиях). Сегодня акустическая диагностика - одно из не очень модных, но реально очень полезных применений машинного обучения.
    Вопрос про supervised vs unsupervised сформулирован не совсем корректно. Если вы уже накопили пару тысяч образцов записей, причем для каждой из них вам известно, соответствует она нормальному или предаварийному состоянию оборудования - тогда вопросов нет, применяем метод с обучением. Впрочем остается вопрос - а какой именно из них, но тут надо уже экспериментировать-анализировать исследовать. А вот если такой звукотеки размеченных образцов у вас нет - тогда думаем над использованием методов кластеризации (т.е. unsupervised- методов)
    Про то, стоит-ли тут использовать нейросети - вопрос дискуссионный. Не забывайте, что современные методы классификации (или кластеризации с последующей классификации) с использованием тех-же деревьев на задачах подобных вашей часто показывают точность лучшую, чем методы на основе нейросетей.
    Но в любом случае рекуррентные сети в данном случае - весьма сомнительное решение. Ведь у вас не задача предсказания, выявления аномалии во временном ряду и даже не задача динамического распознавания шаблонов (звуков) в сигнале. У вас задача простой классификации многомерных данных, представленных в виде ряда. А это как правило не предполагает глубокой корреляционной зависимости внутри данных. Более того, (на сколько могу припомнить) вашу задачу может оказаться более эффективно решать перейдя из временного в частотное представление звукового сигнала и тогда вообще данные есть ничто иное, как многомерный статичный набор значений признаков (в данном случае - частот).
    Удачи в исследовании. Будут конкретные вопросы - задавайте. Чем можем - поможем.
    Ответ написан
    Комментировать
  • Какой длины ряд для обучения нейросетей?

    @dmshar
    Как мы можем "лечить" больного, если его (ваш код) даже не видели. Что за нейронка? Самописная? Готовая? Какая архитектура? Сколько слоев?
    Но каков вопрос -
    Какой длины ряд для обучения нейросетей?
    таков и ответ:
    Чем длиннее, чем лучше.
    Ответ написан
  • Какую модель выбрать?

    @dmshar
    Если ваша оценка - это некоторая ранжированное множество значений (ну как в школе: 1, 2, 3, 4... 12 или как в вузе - F,E,D,C,B,A или как шкала эпидемической опасности "зеленая"-"желтая" - "оранжевая" - "красная") и/или хотя-бы один из ваших признаков - не непрерывное числовое значение (локация, старший группы, день недели и пр)- то выбор модели абсолютноочевиден и однозначен. Это - классификация.

    Надо (разумно-ли) - ее реализовывать самостоятельно? Ну только если очень хотите потренироваться, у вас много свободного времени и от качетства результата мало что зависит. Потому что в любом уважающем себя пакете, которые претендует на звание МL-инструмента, реализация хотя-бы одного из алгоритмом классификации имеется. В том числе и в том, на который вы ссылаетесь (php-ml).Другое дело его качество - но тут даже проверять лень, потому-как в том-же Python/Scikit-Learn есть больше десятка реализованных алгоритмов классификации (логистическая регрессия, k-ближайших соседей, опорных векторов, наивный байесовский классификатор, дерево принятия решений, random forest, AdaBoost, градиентный бустинг - может чего пропустил) качество которых тысечекратно проверено, работоспособность доказана. Выберайте, пробуйте, ищите наиболее адекватный для ваших данных. И для использования их знаний Python нужно - на самом низком уровне.
    Да, среди нейросетей есть сети, приспособленные к решению этого класса задач. Но вообще-то их (нейросети) целесообразно применять не вместо хорошо работающих алгоритмов МД, а там, где такие алгоритмы в чистом виде использовать проблематично. А в простейших случаях как у вас (число параметров - около 10, все они явно выделены, данные (могут быть) сведены в таблицу) использование нейросети - это как использование КаМАЗа для перевозки тещи на дачу - можно, но мягко говоря не целесообразно и крайне неудобно.
    Ответ написан
    Комментировать
  • Какие материалы или информацию можно изучить, чтобы решить эту задачу?

    @dmshar
    Что-то я понять не могу. "не разбираюсь в теме машинного обучения и подобного. Никогда не работала с этой темой" А откуда тогда могла взяться задача, которую вам НАДО (??) решить? Я вот тоже не разбираюсь абсолютно в химии, но понимаю, что для того, что-бы решать задачи - надо взять учебник и учить-учить-учить... и только потом браться за задачи. Причем, если задача не совсем тривиально-школьная, то вот "именно для нее" что-то изучать бессмысленно, надо наработать некоторую общую базу, а уж потом копать в нужную сторону. Или вы считаете, что машинное обучение - это настолько тривиально, что тут все по другому? И достаточно просто что-то "глянуть"? Очень "самоуверенно" (мягко говоря).

    А по существу вопроса - ну начните отсюда:
    https://ru.wikipedia.org/wiki/Машинное_обучение
    там и перечень литературы имеется.
    или отсюда
    https://ru.stackoverflow.com/questions/Книги-и-уче...
    или отсюда:
    https://ai-news.ru/2018/10/podborka_resursov_po_ma...

    А далее - по ссылкам. После примерно полугода-года упорного труда можно и к решению предложенной задачи приступать.
    Ответ написан
    Комментировать
  • Прогнозирование вне выборки. Как реализовать?

    @dmshar
    Странно, вы прочитали много книжек и статей, а вопрос задаете какой-то .... странный. А что можно прогнозировать внутри выборки? Прогнозирование - это ВСЕГДА получение значений вне вашей изначальной выборки.
    Ну, а фраза о том, что мало информации в интернете - вообще непонятная. Информации по этой теме не просто много, а чрезвычайно много.
    Ну вот, просто набрал в Google - и сразу:
    https://habr.com/ru/post/495884
    https://habr.com/ru/post/505338/

    Может проблема в том, что вы начали изучение сразу с нейросетей, не разобравшись с основами машинного обучения?
    По сути вопроса отвечаю, что-бы построить прогноз "вне выборки", надо сначала построить модель (обучить нейросеть на тренировочном датасете), потом валидировать модель (т.е. проверить работоспособность модели на тестовом датасете), а уж потом задать на вход независимые переменные (точно - момент времени, и возможно - значения других независимых переменных на этот момент времени) и модель вам должна выдать прогнозируемый результат.
    Но что-бы это лучше понять рекомендую все-таки ознакомиться с базовыми понятиями ML, включая теорию временнЫх рядов. Тогда и вопросов таких школьных в дальнейшем не будет.
    Ответ написан
    Комментировать
  • С помощью каких формул вычисляются коэффициенты многомерной линейной регрессии методом стохастического градиентного спуска?

    @dmshar
    Я понимаю, готовыми реализациями вам запрещено пользоваться. А что Google - тоже под запретом? Или его вам заблокировали?
    Придется вам помочь
    https://russianblogs.com/article/6278961862/
    https://habr.com/ru/post/467185/
    https://pythobyte.com/gradient-descent-in-python-i...
    Пока надеюсь хватит, а там и запрет снимут.
    Ответ написан
  • Как новичку в IT попасть в Machine Learning?

    @dmshar
    Странно как-то выглядит вопрос.
    Какое отношение Лутц (очень хорошая книга, кстати) или "пару Ютуб каналов" (тут качество неизвестно и скорее всего сомнительно) имеет к машинному обучению. Эта область это сначала машинное обучение, а уж потом Python, C# или что-то там другое. Поэтому вопрос поставлен некорректно - если хотите что-то связанное с "исследовательской работой," то начинать надо именно с машинного обучения. И если будете стремиться на должность, связанную с МL, то требовать будут именно это, а уж опыт с Python - в придачу. Впрочем, есть шанс заниматься не Data Sсience, а Data Engineering - но это все-таки уже программирование, а не собственно машинное обучение, ну и там как раз одного Python тоже будет маловато и копать придется в сторону Computers Engineering .

    По части "изучить дополнительно" - есть несколько неплохих книг, с которых можно начать вхождение в ML "со стороны Python":

    Ван дер Плас. "Python для сложных задач. Наука о данных и машинное обучение".
    Джоши П. "Искусственный интеллект с примерами на Python".
    Коэльо Л.П. "Построение систем машинного обучения на языке Python"
    Pашкa С. Python и машинное обучение.
    Силен Д., Мейсман А. "Основы Data Science и Big Data. Python и наука о данных".
    Шолле Ф. "Глубокое обучение на Python"
    Мюллер А. "Введение в машинное обучение с помощью Python"
    и др.

    Посмотрите, почитайте, подумайте. Решите - ваше оно или нет, и по зубам-ли вам оно.
    Ответ написан
    4 комментария
  • Как построить обучаюший набор данных для обработки процесса?

    @dmshar
    Ответить на вопрос, не зная цели которая поставлена в исследовании, невозможно.
    Ну например - "Относить отсчет сигнала к обучающему с определенной вероятностью" - можно это делать или нет зависит от того, зависит-ли ваш "сигнал" от времени, т.е. это временнОй ряд, или просто произвольные измерения некоего параметра, например, получаемые от разных объектов?
    "Фиксированную часть отсчетов сигнала отнести к обучающий" - опять-таки, для чего и какая у вас природа данных. И что значит "фиксированный" - в виде некоего числа? Или в виде процента от общего числа? И вообще, для обучения нейросети вы ее обучать собрались по единственному "сигналу", или вы наснимали этих сигналов (наборов данных) много и хотите часть из них использовать для обучения, а другую для тестирования?
    "Взять участок сигнала" - а это как-то отличается от "взять фиксированную часть отсчетов"?
    В общем без понимания задачи давать вам совет - это как врачу советовать как лечиться по телефону - как минимум непрофессионально, а часто и просто может нанести вред (в вашем случае - заставить вас в пустую потратить свои ресурсы, используя некорректные методики).
    Ответ написан
  • Почему после изменений строк в столбце и сохранения в csv - выгружаются (сохраняются) данные до изменений?

    @dmshar
    Я так понял - это такой тест на умение угадывать, что и как написано в других частях вашей программы.
    Кроме того, вы уверены, что в вашем коде отступы во внутреннем цикле именно такие, как вы нам показали?
    if row.targer.str.startswith("0"):
    old_result=row.result
    df.loc[index, "result"] = "0"+ old_result

    Или это тест на наше знание языка?
    Но допустим, что это ошибка, и две строчки внутреннего цикла все-таки смещены относительно строчки условия.
    Тогда вариантов остается достачтоно.
    1. Никаких изменений в объекте df не произойдет если в исходном объекте df изначально нет ни одной строки. А есть они там или нет - сие нам не ведомо.
    2. Условие
    if row.targer.str.startswith("0"):
    не выполняется никогда. Так это или нет - сие нам тоже не ведомо. А вы сами это проверяли?
    3. Ладно, выгружается не то, что вы ожидаете. При так небрежно и неполно приведенном клочке скрипта угадать что не так в вашем скрипте - весьма трудно. Но вы хоть сами необходимую отладку провели? Вы проверили, а перед выгрузкой в файл в самом объекте какие данные находятся "старые" или "новые"? Или вы тоже это предлагаете нам угадать?
    Ответ написан
    Комментировать
  • Можно ли вернуть в результатах бинарный код?

    @dmshar
    "можно ли для задачи возвращать байт команды? И так же их впихивать?"
    - для каких задач?
    - что такое "байт команды" в нейронной сети или в машинном обучении?
    - что такое "возвращать байт команды"?
    - куда вы их (кого?) собираетесь впихивать?
    Может вы дадите себе труд сформулировать четко и однозначно свой вопрос, что-бы на него можно было ответить?
    Ответ написан
  • Что необходимо для того чтобы по ключевым словам "надыбать" информацию?

    @dmshar
    Этот вопрос никакого отношения к МL не имеет. А относиться он к лингвистике, где есть такое понятие как "онтология" и строятся т.н. "онтологические графы.

    https://arxiv.org/ftp/arxiv/papers/1802/1802.06769.pdf -- краткое изложение
    https://ru.wikipedia.org/wiki/Онтология_(информатика) - основы
    https://intuit.ru/studies/courses/1078/270/info -- более фундаментально.

    Копайте в этом направлении. Только вот универсального решения такой задачи нет и как правило для каждой предметной области и даже для каждой небольшой части предметной области строят свою онтологическую схему. Даже в вашем примере - к "чистоте" можно отнести и "чистоту эксперимента" и "чистоту соединения", и "чистота алмаза" и пр.пр.пр.
    Ответ написан
    1 комментарий
  • Как выбрать модель машинного обучения под имеющиеся данные?

    @dmshar
    Вы что, собрались распознаватель с нуля самостоятельно писать? Очень вряд-ли. А значит, вам надо не модель подбирать, а смотреть как и какими инструментами люди такие задачу уже давно решают.
    Вот, для затравки:
    https://towardsdatascience.com/object-detection-te...
    https://towardsdatascience.com/object-detection-al...
    https://www.r-bloggers.com/2021/09/object-detectio...
    https://www.kdnuggets.com/2019/08/2019-guide-objec...
    https://habr.com/ru/post/552298/
    https://towardsdatascience.com/object-detection-wi...
    https://towardsdatascience.com/how-to-detect-objec...
    https://habr.com/ru/company/jetinfosystems/blog/498652/
    https://towardsdatascience.com/real-time-object-de...
    https://towardsdatascience.com/object-detection-si...

    Ну а далее - по ссылкам.
    Ответ написан
    Комментировать
  • Как понять какой алгоритм машинного обучения лучше подходит для задачи?

    @dmshar
    Если вы ПРОЧИТАЛИ книгу,но НЕ ПОНЯЛИ основ - то одно из двух: либо книжка была "не та", либо вы ее именно читали, но не разбирались в сути прочитанного. И надеяться на какие-то короткие статьи, в которых будет это то-ли более подробно изложено, то-ли специально адаптировано - весьма наивно.

    Совет - "не зашла" одна книга - ИЗУЧАЙТЕ (!!!) другую. Если не зайдет вторая, третья - то возможно, это "не ваше".
    Ответ написан
    2 комментария