• Здравствуйте, проект вылетает при запуске на Python, что делать?

    @dmshar
    Что-делать, что-делать... Ловите его, что-бы не вылетал.
    Вы свой вопрос прочтите-ка.
    Что вылетает, в какой момент вылетает, что при этом сообщает вам? Какая операционка? Какая версия Python? Какие версии используемых модулей? Какие логи? Вся эта информация у вас есть, но вы наверное считаете что это форум экстрасенсов, которые способны угадать ответы на эти вопросы сами? А вам даже структурировать свой код как следует лень?
    Ну если эта программа "This program was created by @ded_sec_" - то обратитесь к этому загадочному ded_sec_ , пусть он вам ответит. Форум-то тут причем?
    Ответ написан
    Комментировать
  • Как запустить сайд-проект при основной работе?

    @dmshar
    Ваш пример - просто демонстрация того, что собственный проект это НЕ перспективы, НЕ независимость, и НЕ круто. Собственный проект - это в первую очередь целеустремленность, ответственность и квалификация. Очевидно, что это все есть далеко не у всех. Правильнее сказать - это есть у очень не многих.
    Ответ написан
    1 комментарий
  • В чем ошибка в работе цикла for?

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

    a = int(input())
    s = set()
    for i in range(a):
        b = input()
        if b not in s:
            s.add(b)
            print('НЕТ')
        else:
            print('ДА')
    Ответ написан
    Комментировать
  • Совместимы ли 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
    Напоминаю, в словаре ключи не упорядочены.
    Ваш elem - это список, первый и единственный элемент которого при первом проходе цикла равен [{'key1': 'KARA', 'key2': '10'}]. Идем дальше. elem[0] - это уже словарь {'key1': 'KARA', 'key2': '10'}. У которого не может быть элемента elem[0][0]. Вот и получаете заслуженную ошибку.
    Аналогичный анализ для json2 надеюсь вам самостоятельно провести труда не составит.
    Все это прекрасно видно в менеджере переменных, умение пользоваться которым - один из основных навыков при проведении отладки любой программы.
    Совет выучить структуры Python перед тем как писать программы с ними - вам коллеги уже дали раньше. На постоянных подсказках - программирование не выучить.
    Ответ написан
    Комментировать
  • Нужно ли вкратце конспектировать материал из книги по програмированию?

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

    @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
    А вот так не быстрее будет?
    (Пример специально усложнил)

    lst=[5, 3, 0, 2, 0, 3, 8, 2, 9, 7, 0, 0,7,1, 5, 3]
    
    l=[i for i,v in enumerate(lst) if v == 0]
    m_l=[]
    for i,ls in enumerate(lst):
        m=len(lst)
        for j in l:
            if m>abs(i-j):
                m=abs(i-j)
        m_l.append(m)
    print (m_l)


    Результат:
    [2, 1, 0, 1, 0, 1, 2, 3, 2, 1, 0, 0, 1, 2, 3, 4]

    Если надо еще ускорить - можно порождать список m_l сразу, т.е.
    m_l=[len(lst)]*len(lst)
    и
    m_l.append(m)
    заменить на
    m_l[i]=m
    За счет статики работы с списком должно бы получиться еще быстрее.
    Ответ написан
    2 комментария
  • Модель машинного обучения для оценки звука генератора?

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

    @dmshar
    Что это за дивный оператор:
    data = dict
    Может все-таки
    data = dict()

    А вообще-то совет - сначала Python выучить, потом ботов писать. Тогда не придется за детскими вопросами на форум бегать.
    Ответ написан
    1 комментарий
  • Почему при скачивании CSV файла переписываешься?

    @dmshar
    Метод обработки "w" - это ПЕРЕЗАПИСЬ всего файла. Вызывая with open("1data_sit.csv", "wb") as file внутри цикла вы каждый раз удаляете то, что ранее (на предыдущей итерации) в файле было записано. Хотите ДОзаписывать - используйте "a".
    Ответ написан
    Комментировать
  • Стоит ли изучать Нейросети?

    @dmshar
    Вопрос: "есть ли смысл начать их изучать если знания по математике такие маленькие? "
    Варианты ответов:
    1. Раз знания математики "такие маленькие" изучать нейронные сети не получиться, займтесь чем нибудь другим.
    2. Раз знания математики "такие маленькие" - подтяните знания математики и постепенно начинать изучать нейросети.

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

    Те, кто действительно хотят учить что-то самостоятельно - берут и ищут в Гуугле. И на первой же странице находят:
    https://habr.com/ru/company/plarium/blog/505458/
    https://ai-news.ru/2018/10/podborka_resursov_po_ma...
    https://ru.stackoverflow.com/questions/678970/Книг...
    https://www.analyticsvidhya.com/blog/2019/10/mathe...
    https://www.kdnuggets.com/2020/06/math-data-scienc...
    https://towardsdatascience.com/the-roadmap-of-math...
    Ответ написан
    2 комментария
  • Какую базу данных нужно использовать для ИИ?

    @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
    Дело не в реализации.
    Быстрая сортировка она действительно "быстрая" в случае частично-упорядоченных массивов (которые в реальных задачах могут встречаться не реже, чем полностью неупорядоченные). Причем для корректного исследования не достаточно взять фиксированное количество элементов, а необходимо выполнить сравнения при разном N. И вообще, в O()-нотации, это не столько о времени конкретного выполнения, сколько о том, как изменяется (растет) время выполнения алгоноитма в зависимости от N.

    Вопрос обсуждается в интернет в огромном количестве статей. Ну например:
    https://habr.com/ru/post/274017/
    https://works.doklad.ru/view/w4c2OLj2iMk.html
    Ответ написан
    Комментировать
  • Как увеличить на 1 топ-5 самых больших значений в колонке DataFrame?

    @dmshar
    А не хотите попробовать сначала прочитать что-нибудь по Pandas, а потом задавать вопрос? Иначе так и будете за каждой запятой на форум с вопросами бегать.
    Я же вам уже все написал:
    df_new = df.sort_values(by=['qty'], ascending=False)
    df_new.qty.loc[:4]=df_new.qty.loc[:4]+1
    Ответ написан
    Комментировать
  • Как перебрать первые 10 строк в DataFrame и увеличить значение в них на 1?

    @dmshar
    "Можно ли в Pandas менять значение полей в цикле?" - можно. Но в вопросе, который стоит а заголовке - это не надо.
    Мне лень набивать большой ДатаФрейм, поэтому вот вам сокращенный пример. В датафрейме 10 строк, меняем первый столбец в первых пяти строках.

    print (df)
    df.A.loc[:4]=df.A.loc[:4]+1
    print (df)


    Датафрейм до манипуляции:
    .   A  B
    0  1  2
    1  2  4
    2  3  6
    3  4  8
    4  5  0
    5  1  2
    6  2  4
    7  3  6
    8  4  8
    9  5  0


    Датафрейм после манипуляции:
    .   A  B
    0  2  2
    1  3  4
    2  4  6
    3  5  8
    4  6  0
    5  1  2
    6  2  4
    7  3  6
    8  4  8
    9  5  0


    Подстроить под свои данные надеюсь сможете сами.
    Ответ написан
    2 комментария
  • Какие материалы или информацию можно изучить, чтобы решить эту задачу?

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

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

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