Задать вопрос
  • Как мне в Python добавить таблицу, учитывая формулу?

    Maksim_64
    @Maksim_64
    Data Analyst
    Совершенно непонятно формулируешь вопрос.

    1. Кого считать соседями? Если пункт А находится в радиусе или на расстоянии R от пункта B, то они соседи.

    2. Земля не плоская, твоя формула евклидовой дистанции при чем здесь? для расчета дистанций есть другие специальные формулы.

    3.
    Как мне в Python добавить таблицу, которая дублирует первую таблицу, добавляет данные из второй таблицы, учитывая формулу выше.
    Реляционные операции они происходят на основе ключа или ключей. На основании чего ты тут собрался собирать. Ты можешь найти потенциально соседей для любой взятой точки. Возникает вопрос а зачем тогда вообще две таблицы их можно просто слить в одну. Возможно связь есть, а ты о ней не рассказал.

    4. По итогу из того что есть задача видится как нахождения соседей для каждой точки датасета. Я бы брут форсем, такое не решал, а использовал бы базы с approximate nearest neighbor. Построить индексы O(n log(n)), запросы O(log(n) ), ну и вся задача для каждой точки датасета O(n log(n)).

    5. Используй подходящие базы ну или хотя бы geopandas. В этих случаях все инструменты уже есть.
    Ответ написан
    8 комментариев
  • Как декомпозировать задачи, с которыми ты впервые сталкиваешься?

    Maksim_64
    @Maksim_64
    Data Analyst
    Когда не в теме умные методики и словечки не работают, только методом проб и ошибок.
    Ответ написан
  • Является ли использование разных функций активации на выходном слое нейросети плохой идеей?

    Maksim_64
    @Maksim_64
    Data Analyst
    является ли использование разных функций активации на выходном слое нейросети плохой идеей?
    Не часто используется, по сути на выходном слое у тебя будет более одного вектора, обычно они разных типов получаются, соответсвенно для каждой тебе нужно будет, своя функция потери. И общая оценка будет подразумевать оценку каждой функции потери. И ее влияния на общую систему, возможно придется вводить дополнительные веса для функций потерь. В общем рекомендую разделить архитектуру.

    ДОПОЛНЕНИЕ к ответу
    У нас по всей видимости недопонимание наблюдается.
    1. Разные функции активации у скрытых слоев и выходного слоя дело обычное. Функция активации для выходного слоя определятся задачей которую ты решаешь, например хочу интерпретировать выходной вектор как вероятности ну и там сигмоид или софт max, или еще что то. В то время как например RELU была в скрытых. Это очень обычно и очень нормально. Когда ты говоришь о выходном слое ты спрашиваешь себя что и в каком виде мне будет выдавать.

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

    NEAT тут не причем. Ты делаешь нейронку которая решает несколько разных задач, этим обусловлено несколько функций активации на выходном слое. Например я хочу в ответе увидеть матрицу, первая колонка вероятности роста падения, вторая колонка цена акции. И у меня на выходном слое будет более одной фенкции активации. Так делать плохо, надо две отдельные нейронки и все.
    Ответ написан
    4 комментария
  • Как сгенерировать промежуточные координаты?

    Maksim_64
    @Maksim_64
    Data Analyst
    import time
    l = [[392,556], [95,309], [207,192]]
    result = [item + [int(time.time() * 1000)] for item in l]
    Ответ написан
    3 комментария
  • Я и есть тот самый джун с 3мя годами опыта?

    Maksim_64
    @Maksim_64
    Data Analyst
    подавайся на любой грейд и любые требования к опыту, даже если там написано более 6 лет. Посмотри, как резюме проходит скрининг, посмотри как проходишь собесы, и там видно будет.
    Ответ написан
    Комментировать
  • Книги для изучения нейронных сетей на Python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Уже отвечал на этот вопрос, пока ничего лучше не вышло.
    Ответ написан
  • Как проверить наличие поля в JSON файле с помощью python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Объекты типа str не имеют метода get, такие методы характерны для маппингов (ключ-значение) напрмиер словарь.
    get("MiddleName") нужно проверять в другом месте, где ты ожидаешь встретить данный ключ.
    Ответ написан
    Комментировать
  • Как сравнить 2 df в Пандасе?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Если в колонке сборник (строки, числа, пропущенные значения). То это тип 'object'. Что означает python object что в свою очередь надо понимать буквально, массив состоит из python объектов.

    2. Операция сравнения двух объектов, не является однозначно трактованной операцией, в том числе и по этому в python существуют дандер методы которые позволяют переопределять операторы сравнения (вложить свой смысл что именно ты подразумеваешь по сравнением). Это я к тому что ты должен четко понимать что значит равны.

    pandas объекты поддерживают сравнение в его собственной интерпретации и поведении. Если этого достаточно
    то, все элементарно. Если сравнение используется для фильтра то такие колонки не хранят.
    df = pd.DataFrame({
        'A':[1,'a',2],
        'B':[1,'a',3]
    })
    
    df.loc[df['A'] == df['B']]

    Колонкам не обязательно быть из одного и того же фрейма, лишь бы размерность совпадала.
    Если же нужно особое понимание сравнения. То пишется функция которая принимает два массива на вход и возвращает массив булевых значений, затем этот массив используется в качестве маски, для осуществления выборки.
    Ответ написан
    Комментировать
  • По неподтверждённой информации, в нейросети Яндекса YALM-4 около 1.4 миллиардов параметров. В GPT-3 - 130 миллиардов. Насколько этот разрыв радикален?

    Maksim_64
    @Maksim_64
    Data Analyst
    Окей я не слежу за LLM от яндекса. https://github.com/yandex/YaLM-100B этому 2 года и там 100B или здесь
    https://huggingface.co/yandex тоже самое. YALM-4 вообще не слышал, и уж точно не поверю, что яндекс использует сегодня модель с 1.4B параметров.
    Ответ написан
    1 комментарий
  • Как сделать, чтобы не было возможности вызвать метод через инстанс?

    Maksim_64
    @Maksim_64
    Data Analyst
    Думаю простого способа нет в силу особенностей дизайна. Объект экземпляра класса, как и объект класса, оба имеют полный доступ к пространству имен объекта класса. По этому думаю решение довольно сложное и того не стоит.
    Ответ написан
    Комментировать
  • Как вставить строчки в exel через pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    Важно что форматы ячеек, шрифты и тд остались прежними. Это возможно сделать?
    с учетом этого pandas будет недостаточно, проще всего с использованием openpyxl это будет сделать.
    Ответ написан
    Комментировать
  • Как мне правильно развиваться в первую очередь как хороший программист, а потом уже как backend python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Я 2 года изучал Python (сам, без курсов).
    Думаю, что многого не знаю или упустил.

    Переходи к созданию проектов, они будут выявлять над чем работать, и формировать тебя как специалиста.

    Сейчас пытаюсь учить Flask, недавно закончил основы Git (очень хочу практики в команде).

    Опять таки делай проект, я бы не рекомендовал flask (fastapi вместо), но главное это сделать проект, git будет нужен если работаешь один, необязательно командой.

    В моих планах стать backend-разработчиком на Python.
    В данный момент я просто запутался, что мне изучать, что читать, где брать практику.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Скорее всего переустанавливать, удалять текущую версию. Ставить с++ сначала потом заново ставить tf.
    https://stackoverflow.com/questions/67259900/tenso...

    https://stackoverflow.com/questions/61342220/modul...

    https://learn.microsoft.com/en-us/cpp/windows/late...
    Ответ написан
    3 комментария
  • Как научиться делать ИИ?

    Maksim_64
    @Maksim_64
    Data Analyst
    Что бы не использовать готовое, а делать свое.

    1. Сильные математические знания, которые позволят читать научные стать или хотя бы подходящую литературу, по RL например Reinforcement Learning, second edition An Introduction by Richard S. Sutton and Andrew G. Barto. Это главная базовая литература.

    2. Сильные скилы в программировании определенные алгоритмы очень сложны.

    3. Очень много времени.

    4. Вычислительные мощности.

    В легких для чтения статьях рассматриваются, отдельные компоненты, и их применения, а не ИИ с нуля.
    Ответ написан
    3 комментария
  • Как объединить две таблицы в pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    pd.merge(левая таблица, правая таблица, left_on='CELL',right_on='GeranCellId ', how=method)

    где метод left, right,inner, outer, cross. Это типы джойнов.
    merge

    Ну и выбери нужные колонки, например. для левой таблицы тебе не нужны BSC и LAC, если ты по правой будешь джойнить, тебе эти колонки оттуда нужны. Выбирать нужные колонки и ставить их в желаемом порядке делают c помощью loc. фрейм.loc[:,[колонка1, колнка2, итд]]
    Ответ написан
    Комментировать
  • Почему моё решение неправильное?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну так первый ответ 1/2, и второй 1/5.
    Мы имеем дело с условной вероятностью. Когда мы имеем дело с условной вероятностью мы спрашиваем. Каким образом произошедшее событие изменяет пространство выборки?

    P(A|B) = какова вероятность, что выпало четное число с учетом того что выпавшее число кратное 5. Есть всего два кратных 5 числа (это 10 и 5) такой у нас стало пространство выборки, из это пространства мы спрашиваем какова вероятность что число четное у нас один удовлетворяющий условию ответ 1/2

    P(B|A) = какова вероятность, что выпало число кратное 5 с учетом того что выпавшее число четное. Есть 5 четных чисел (это 2,4,6,8,10) такой у нас стало пространство выборки, из это пространства мы спрашиваем какова вероятность что число кратное 5 у нас один удовлетворяющий условию ответ 1/5
    Ответ написан
    Комментировать
  • Как преобразовать вложенные словари в объекты с типами для API-обёртки?

    Maksim_64
    @Maksim_64
    Data Analyst
    Задачка не маленькая, и попыток ее решить ты не предоставил. Есть вот так вот - хочу вот так вот, и все.
    Могу посоветовать книга Fluent Python глава 22 Dynamic Attributes and Properties.
    В ней как раз на примере вложенного json объяснено предельно подробно, как решать подобные задачи.
    Ответ написан
    Комментировать
  • Как очистить оперативную память с python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Python не позволяет работать с памятью напрямую. Очистка происходит сборщиком мусора, когда количество ссылок на объект равно нулю. Например когда ты используешь del ты удаляешь ссылку на объект, то есть счетчик ссылок - 1. и когда он равен нулю, то произойдет полное удаление объекта из памяти.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Не помешало бы, пример несколько строк из фрейма которые не сортируются.
    2. Обратно возвращать в строку не обязательно.
    3. Методы чтения имеют параметр parse_dates для того что бы строковое представление даты перводить в тип данных datetime64
    вот небольшой примерчик
    (
        pd.DataFrame({
            'string_dates':['17.08.2024','15.08.2024','20.09.2024'],
            'values':[10,100,1000]
        })
        .assign(
            dates=lambda x: pd.to_datetime(x['string_dates'],format='%d.%m.%Y')
        )
        .sort_values(by='dates')
    )
    как видишь все сортируется, обрати внимания на типы данных. Колонку которая используется для сортировки можно дропнуть, ну или создать ее что называется "на лету".
    Ответ написан
    Комментировать