• Как привести выборку в нормальное распределение?

    @dmshar
    "Я вот хочу проверить две группы Т-Тестом" - хотеть можно что угодно. Но вот к исследованию данных это не имеет никакого отношения. Если у вас данные не подчиняются нормальному закону распределения, то использовать t-критерий Стьюдента крайне нерационально. Для таких случаев есть другие тесты, из группы непараметрических. Их много. Можно начать с теста Вилкоксона-Манна-Уитни, и/или критерия Колмогорова-Смирнова. Их стандартные реализации есть в scipy.stats. Впрочем, как и кучи других методов, которые могут применятся в таких случаях.
    Ответ написан
    Комментировать
  • Работа с многочленами без sympy?

    @dmshar
    Можете, если корректно опишете и программно реализуете алгоритмы ваших действий. А по сути - сами реализуете какие-то функции из sympy.
    Ответ написан
    Комментировать
  • Строю прогноз курса биткоина, использую линейную регрессию. Но прогнозные значения получаются одинаковыми. В чем ошибка?

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

    @dmshar
    А что мы сравниваем? Одни комп - быстрее, новее, мощнее, с видеокартой но дороже. Второй соответственно менее мощный, медленнее, без видеокарты, но дешевле.
    Есть деньги- берите более новый, нет денег- на первое (и долгое) время вполне обойдетесь более дешевым продуктом.
    Успех в изучении машинного обучения в первую очередь определяется не мощностью используемого компьютера, а мощностью мозгов его обладателя.
    P.S. Впрочем, у вас же уже есть один ноутбук:
    Почему на новом ноутбуке тачпад может иногда игнорировать нажатия?
    зачем вам еще один?
    Ответ написан
    6 комментариев
  • Каким образом отсеивать данные массива с последовательными, но иногда повторяющимися данными в потоке?

    @dmshar
    Более запутано описать ваше пожелание наверное было-бы трудно.
    Что означает "каким-то образом сохранить прошлое значение a, чтоб его прогнать через эту сортировку". Одно "прошлое"? Или каждое "прошлое"? Зачем его сохранять, если оно пришло, вы его "прогнали через сортировку" и пошли принимать следующее? У вас каждую секунду приходит один элемент массива a, или вот все четыре элемента и составляют единое "новое значение"? Вам надо сохранять значение a или результат сортировки?

    В общем, если у вас поступают данные и вы их хотите сначала все накопить, а потом "прогнать через сортировку", то создавайте список, куда будете складывать свои поступающие значения, а потом, после накопления полного массива входных данных, циклом проходить по этому массиву и делать свою сортировку.
    Если вы очень хотите обрабатывать данных по мере поступления, то - прочитали данные, отсортировали и в результирующий список поместили уже отсортированный результат в качестве.
    Если же вы имели ввиду что-то другое, то сформулируйте свой вопрос более четко и однозначно.
    Ответ написан
  • Подключение другого репозитория к другому на Python - будет ли так работать? Или как правильно?

    @dmshar
    Ну, вообще-то конструкция
    if (условие):
        import модуль1 as m
    else:
        import модуль2 as m

    синтаксически корректна.
    А вот корректно (и целесообразно-ли) то, что вы понаписали в конструкции from - разберетесь надеюсь сами.
    Ответ написан
    Комментировать
  • Как прибавить несколько месяцев с помощью datetime?

    @dmshar
    Ни непосредственно месяца, ни непосредственно года задать с помощью timedelta нельзя, и это понятно. Год может быть 365 и 366 дней, а месяц - 28,29,30 и 31.
    Тем не менее обойти это можно. Ниже один варинат на чистом datatime, а остальные - с привлечением других библиотек.
    Показываю на примере года. Думаю, с месяцем разберетесь сами по аналогии
    import datetime as dt
    from dateutil.relativedelta import relativedelta
    import pandas as pd
    d1=dt.datetime(2021, 5, 16)
    print ('d1==',d1)
    d2=d1.replace(year=d1.year+1)
    print ('d2==',d2)
    d3=d1+relativedelta(years=1)
    print ('d3==',d3)
    d4=d1+pd.DateOffset(years=1)
    print ('d4==',d4)

    Результаты:
    d1== 2021-05-16 00:00:00
    d2== 2022-05-16 00:00:00
    d3== 2022-05-16 00:00:00
    d4== 2022-05-16 00:00:00
    Ответ написан
    1 комментарий
  • Как реализовать модель данных для формирования размерной сетки?

    @dmshar
    Вопрос очень интересный, но извините, не для форума. Просто не для этого формата: ответить на три абзаца не получиться, писать научный трактат сюда - бессмысленно.

    Кроме того, готового решения и нет, тут надо экспериментировать. Общее направление конечно понятно - машинное обучение, классификация и кластеризация. А вот окончательный выбор метода (или - скорее всего - последовательности методов) и "модели" - требует достаточно глубокого анализа.

    Не очень понимаю, последнюю вашу фразу. Готовые решения - лично мне неизвестны. Ну, если задаться целью то может быть где-то что-то можно найти, но скорее всего - для людской одежды, так что адаптировать все равно придется и не слабо. Поэтому использовать можно любые библиотеки машинного обучения. Наиболее традиционно - из экосистемы Python. Там есть много чего, что из чего придется самому скроить окончательное решение.

    В общем - проект интересный. Появятся конкретные вопросы - задавайте, будем рады помочь.
    Ответ написан
    1 комментарий
  • Как проставить все точки на графике python?

    @dmshar
    В matplotlib есть модуль ticker. В нем есть метод MultipleLocator.
    А в самом matplotlib есть методы set_major_locator и set_minor_locator.
    Комбинируя их вы получаете возможность не просто управлять метками по осям, а еще и двумя классами меток - главными (например - через 10), и минорными (ну, например, через 2, 1 или 0.01 - как захотите).
    Хотел привести пример, но поскольку вы не дали себе труда привести (как того - и не зря - требуют правила этого сайта) минимально воспроизводимый фрагмент кода, что-бы в него можно было встроить ответ на ваш вопрос - мне писать все с начала для вашего примера тоже лень. Поэтому просто подскажу, что решение ваше будет выглядеть примерно вот так:

    import matplotlib.ticker as ticker
    ax.xaxis.set_major_locator(ticker.MultipleLocator(2))
    Ответ написан
    Комментировать
  • Нейросеть для прогнозирования неисправности, какую выбрать?

    @dmshar
    То, что вы написали - это отдельная ветвь на пересечении технической диагностики (в вашем случае скорее всего вибродиагностики) и современного машинного обучения. Называется Predictive maintenance.
    (Вы пишете "P.S. Возможно описал не столь понятно но идея вроде передана." - по приведенным ответам подозреваю, что большинство таки не поняли о чем речь. Если кому интересно, ознакомление можно начать, например, вот отсюда:
    https://towardsdatascience.com/how-to-implement-ma...).
    На самом деле, направление очень перспективное с точки зрения и экономической целесообразности и практического применения. Скажу по секрету - когда-то мне пришлось делать анализ литературы по этой теме и видел проекты, которые приносили миллионы и не рублей прибыли (помню, что в заказчиках были Caterpillar, Shell, Boing и пр. монстры). И литературы и интернет-источников - очень много. Другое дело, что использование нейросетей - это не самый пожалуй перспективное направление в этой проблеме, просто потому, что часто традиционные методы машинного обучения дают типа деревьев решений дают более эффективные решения. ​
    Кроме указанного поискового запроса, если заходить со стороны именно методов машинного обучения можно и с использование запросов типа "Anomaly Detection", "Novelty detection", "Сhange points detection".
    Ну и отдельной "строкой" - несколько примеров использования сетей глубокого обучения именно в задачах, близких к вашей (просто из того, что сейчас под рукой)
    https://www.researchgate.net/publication/341615540...
    https://www.sciencedirect.com/science/article/pii/...
    https://comtradedigital.com/wp-content/uploads/201...
    Удачи в исследованиях. Будут конкретные вопросы - задавайте.
    Ответ написан
    Комментировать
  • Какая ошибка в коде?

    @dmshar
    А причем тут неправильный код, когда у вас неправильная формула? Формула (и соответствующие код) для расчета сложных процентов выглядит следующим образом:

    base=100
    interest=0.1
    years=1
    repayment=base*(1+interest)**years
    print(repayment)


    Ну, или если очень хочется в виде функции, тогда так:
    def deposite(base,years,interest=0.1):
        return base*(1+interest)**years
    
    print(deposite(100,1)


    И никаких циклов тут не нужно.
    Ответ написан
    Комментировать
  • Как автоматически распознавать диаграммы?

    @dmshar
    Зачем браться за задачи, по которой вы не в состоянии нагуглить информации, при условии, что информации этой в сети - выше крыши. Ну вот прямо с сегодняшней ленты Хабра - что бы не далеко ходить:
    Обнаружение объектов с помощью YOLOv3 на Tensorflow 2.0
    И такой информации в день по три статьи! А у вас все гораздо проще, чем распознавание произвольных объектов. Берете - ИЗ ЭТОЙ СТАТЬИ ИЛИ ИЗ СОТНИ ПОДОБНЫХ - , настраиваете (вернее - упрощаете до вашего простейшего объекта - круговой диаграммы), обучаете на собранном вами датасете - и получаете то, что вам надо.
    Обучить его тому "из какого сервиса сделан скрин" - это следующая задача. Принцип остаётся тем-же, только вот настройку придется проводить более тонкую, да обучающий датасет немного другой собирать.
    Мой совет - начинайте с простого. Разберетесь - и вторую задачу решите легче.
    Ответ написан
    Комментировать
  • Какие темы с дискретной математики актуальны в нейросетях?

    @dmshar
    Вот тут уже отвечали на подобный вопрос. И кажется - даже на ваш вопрос. Но вы так ничего и не поняли. Жаль.
    Изучение матан?
    Ответ написан
    Комментировать
  • Мой exe файл скомпилированный с помощью pyinstaller не работает на другом пк. В чём проблема?

    @dmshar
    Ну, например, что "на другом пк" установлена неожиданная версия операционной системы. Или нет файла Data Base. Или вообще там стоит 486 процессор, потому и "медленно запускается".
    А вообще странная просьба "поставить диагноз" не видя пациента.
    Ответ написан
    Комментировать
  • Как предотвратить распространение платного ПО третьими лицами?

    @dmshar
    Ну там всякие там Microsoft да MathWorks, которым это не "трудновато", борются э этим явлением уже лет 30 и никак не могут побороть. А вы хотите и что-бы деньги получать и что-бы было не трудновато. Весьма амбициозно.
    Кстати, а вы планируете со своих продаж платить роялити разработчикам Python и других библиотек, которыми вы пользовались при разработке?
    Ответ написан
    1 комментарий
  • Как перевести многомерный массив numpy в одномерный?

    @dmshar
    A = np.arange(0, 15).reshape(5, 3)
    B=A.ravel()

    или так:
    D=A.flatten()

    Стесняюсь спросить - а что просто открыть учебник нынче запрещено? Или хотя-бы в Google заглянуть?
    Ответ написан
    9 комментариев
  • Работа с датами в pandas?

    @dmshar
    Если вам уж очень кортит сделать скрипт исправление конкретной ошибки - то можете использовать один из вариантов:
    df['С'] = [s.replace('..','.') for s in df['A']]
    либо:
    def func(x):
        return x.replace('..','.')
    df['B']=df['A'].apply(func)


    Результат:


    /
            A           B           С
    0  25.05..2001  25.05.2001  25.05.2001
    1   25.06.2001  25.06.2001  25.06.2001
    2   25.43.2004  25.43.2004  25.43.2004
    3   05.02.2005  05.02.2005  05.02.2005
    4   27.02.2008  27.02.2008  27.02.2008
    Ответ написан
    Комментировать
  • Как можна найти сумму дипазона?

    @dmshar
    А что вы подразумеваете под "суммой елементов в диапазоне B," если B - у вас последовательно принимает ОДНО значение из ряда четных чисел от 2 до 50:
    Ответ написан
    Комментировать
  • Как найти пересечение строки и столбца таблицы?

    @dmshar
    Если вы поместили вопрос под тегом Python, то и ответ будет касаться этого языка.
    В Python есть чудесная библиотека Pandas - в аккурат для представления ваших данных.
    Если бы дали себе труд привести в вопросе - как того требуют (и не зря) правила сайта - не картинку, а набранную вами табличку (хотя-бы в EXCEL) я бы дал себе труд написать код, как такие данные "укладываются" в DataFrame. А раз нет - ну разберетесь сами, куда смотреть я сказал.
    После того, как DataFrame создан значение на пересечении столбца и строки ищется элементарно, в одну команду, например так:
    df.ef[(df.Свыше==65) & (df.До==80)]
    Ответ написан
    Комментировать
  • Как сделать так чтобы функция выполнялась при условии выполнения прошлой?

    @dmshar
    А что, у вас есть мультипроцессинг? В Python, как и в любом другом языке программирования, если не предпринять специальных усилий и вызвать две функции последовательно, то вторая будет выполняться после окончания работы первой.
    Ну вот и вызывайте вашу функцию отправку фото после вызова функции отправки текста.
    Ответ написан
    Комментировать