Задать вопрос
  • Как отфильтровать массив столбца датафрейма Pandas без выноса их в отдельный столбец?

    Maksim_64
    @Maksim_64
    Data Analyst
    Решений миллион.
    1. написать функцию для работы с питон списком, которая будет будет возвращать, True,False.
    2. Применить один из многочисленных методов фильтрации.

    Например
    df = pd.DataFrame({
        'userID':[25,188,79],   
        'goalsID':[[1,2,4,5],[3,6],[1,9]]
    })
    (
        df.loc[lambda x:x['goalsID'].apply(lambda x: 3 in x)]
    )
    Ответ написан
  • Как преобразовать тип данных столбца в Pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    Преобразование типов здесь не при чем.

    вот здесь ты print(df[['market_cap'] > 0])
    Ты выполняешь операцию не с массивом а со списком. Списки ['market_cap'] > 0 такого не поддерживают. Если ты хотел выбрать подсет фрейма где капитализация больше нуля то пропустил df еще один.

    print(df[df['market_cap'] > 0])
    Ответ написан
    1 комментарий
  • Как предсказать отработку сетапа на бирже?

    Maksim_64
    @Maksim_64
    Data Analyst
    Это задача на классификацию?

    Да. Так как у тебя таргет дискретный [Стоплосс, Профит, Безубыток,Таймаут]

    Как подойти к задаче?
    брать и делать, так появятся более конкретные вопросы. Если абстрактно, нейронная сеть это механизм трансоформации данных, у тебя есть входные данные вложенный массив, на языке математики тензоры определенного порядка, если геометрические трансформации например скалярное произведение матриц (тензоров второго порядка), есть желаемый результат вектор из 4 значений которые можно интерпретировать как вероятности, есть функции потерь которые сравнивает "некая трансформация данных" была полезна уменьшила функцию потерь или нет, есть механизм настройки матрицы весов который позволяет понимать как увелечение или уменьшение определенного значения внутри вектора отражается на функции потерь.

    Какие слои и структуры?
    Рекурентная нейронная сеть, функция активации relu, кроме последнего слоя там softmax или что типа того что бы можно трансформировать вывод в вектор вероятностей.

    Для обучения планирую скармливать нейронке например 1000
    Без понятия тюнинг гиперпараметров, а batch size это один из параметров которые тюнятся, делаются после с наблюдением поведения других метрик на тренировочном и тестовом сете.

    Надо ли как то предобрабатывать эти свечки или можно скармливать как есть OHLCV?
    Надо препроцессинг для time series необходим их много гугли, но однозначно надо.
    Ответ написан
    Комментировать
  • Как узнать, что диапазон находится в пределах нормы отклонений?

    Maksim_64
    @Maksim_64
    Data Analyst
    Колебаний относительно чего? пусть будет некое число x0. pandas псевдокод будет такой
    s - Series с временными диапазонами
    x0 - относительно чего колебания
    ((x0 - s).abs() <= 3).mean() * 100 Это количество в процентом отношении значений которые отклоняются от x0 в пределах +-3 секунд
    Ответ написан
    Комментировать
  • Как исправить: TypeError: bad operand type for unary ~: 'type'?

    Maksim_64
    @Maksim_64
    Data Analyst
    Применяешь где то оператор ~ к типу который не поддерживает его.
    Либо ты в том месте ожидаешь другой тип, данных, ну либо попробуй заменить битовое отрицание, на логическое not (глупость, в комментарии меня поправил Vindicar ). ~ - инвертирует побитовое представление числа, в случае если специальным методам он не был переопределен для кастомных объектов. not- делает bool и затем инвертирует значение.
    Ответ написан
  • Почему предсказания дерева решений не совпадает с ожиданием?

    Maksim_64
    @Maksim_64
    Data Analyst
    А почему ты решил, что вероятности должны совпадать с твоей реализацией.
    predict_proba из scikit-learn не в коем случае не считает вероятности а калибрует их. И он вполне может это делать плохо.

    DecisionTreeClassifier в принципе не является детерминистическим, результаты могут отличаться (не обязательно, но могут.
    Ответ написан
  • Как стартовать в аналитике "гуманитарию"?

    Maksim_64
    @Maksim_64
    Data Analyst
    Все "узкие" позиции для входа в IT это всегда тяжело. На такие специализации, как правило нет джунов или к ним требования и опыт и все остальное.

    1. Английский
    2. Python
    3. статистика, теория вероятности, ML стек в python.
    4. Учится по книгам.
    5. Пробоваться всюду, работу своей мечты потом, найдешь, спустя годы.
    Ответ написан
    2 комментария
  • Как решить проблему с could not convert string to float?

    Maksim_64
    @Maksim_64
    Data Analyst
    Что значит не обрабатываешь, вот
    print(df.replace('?',np.nan).astype(float) Здесь во все фрейме делаешь замену а потом весь фрейм пытаешься привести к типу данных float.

    Работай с "числовым подсетом датафрейма".
    или заведи отдельную переменную приведи подсет к флоатам и потом группируй. Типа такого
    df_ = df.loc[:,[nuimeric_column1,numrec_column2]] = df.loc[:,[nuimeric_column1,numrec_column2]].replace('?',np.NaN).astype(float)
    и затем группируй и т.д.

    Или хочешь чейнить, используй assign рассматривай все колонки по отдельности, при сложныех манипуляциях, которые требуют индивидулаьного подхода, к каждой колонке по отдельности так делают.
    (
        df.assign(
            numeric1=lambda x: x['numeric1'].replace('?',np.NaN).astype(float),
            numeric2=lambda x: x['numeric2'].replace('?',np.NaN).astype(float)
        )
        .groupby('Category')
        .agg(['mean','median'])  
    )
    Ответ написан
    Комментировать
  • Нейронные сети - как правильно подсчитать производную функции?

    Maksim_64
    @Maksim_64
    Data Analyst
    Статьи не смотрел. Производную ты посчитал верно.
    66acd9cb2b432300911281.png
    На графике ошибка. Нету в этой точке такого значения производной. Градиентный спуск это про оптимизации нахождение минимумов или максимумов. Если использовать формулу аппроксимации, f(x0)' = (f(x0) - f(x0-h)) / h, где h - это маленький шаг, то в зависимости от того на сколько он мал, мы будем стремится к значению -2.01.
    По этому откуда там -7 я понятия не имею.
    Ответ написан
    Комментировать
  • Вложенный class (в котором функции) в другой class не видит self?

    Maksim_64
    @Maksim_64
    Data Analyst
    Есть методы экземпляра а есть методы класса. Не могу представить не одного полезного применения такой конструкции но формально вот так.
    class A:
        def __init__(self):
            self.test = 'test'
        class B:
            @classmethod
            def test(self):
                return A().test
    print(A().B.test())
    Но код совершенно, бесполезный, точнее сказать абсурдный лучше бы ты привел простенький пример, что ты пытаешься сделать, было бы больше толку.
    Ответ написан
  • Jupiter lab (Jupiter notebook) это изолированная среда или нет?

    Maksim_64
    @Maksim_64
    Data Analyst
    Могут в изолированной могут в общей, это все равно что спросить я пишу код в vscode куда будут устанавливаться пакеты.

    Если ты ставил анаконду то по умолчанию создается base окружение которое опять таки по умолчанию активировано и установка происходит в него. Если ты просто установил jupyter notebook то он может быть запущен в том числе и на "default"ом python.
    Ответ написан
    2 комментария
  • Неочевидное поведение расчетов на Python pandas, как такое получается?

    Maksim_64
    @Maksim_64
    Data Analyst
    x - значение ячейки в лямбде, то есть (x*q1/q0) это выполняется для каждого значения a2, где x - это каждое значение a2. (синий кейс) Во втором же случае нормальная замена на 95 квантиль любого значения ячейки а2 которое больше 95 квантиля. (красный кейс)
    Ответ написан
    1 комментарий
  • Является ли жизненно необходимым пройти курсы по бизнес-анализу для того чтобы достичь уровня стажера?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Корреляция между пройденными курсами и трудоустройствам чуть больше нуля, и то только потому что корреляция еще не означает причинно следственную связь. Знаменитый учебный пример на эту тему корреляция между продажами мороженного и нападением акул, на одном из пляжей, с ростом продаж мороженного акулы нападали чаще, естественно два этих события не как не связаны между собой, просто сезон купаний акулы нападают чаще и мороженое покупают чаще.

    Так и с курсами человек может интересоваться IT пройти курсы и потом получить работу и думать что между курсами и трудоустройством есть причинно следственная связь. Но он получил бы ее и без них.

    2. Все что всякая аналитика особенно без хард скилов (программирование) начальный уровень, крайне тяжело зайти, серьезная доля рынка это те кто внутри IT переходит в это направление, а на них смотрят по другому.
    Ответ написан
    Комментировать
  • Как исправить код?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ты пытаешься делать выборку среза с заполнением. new_arr = arr[1:-3, 4:-2] = arr1 глупость, это так не работает.

    arr = np.ones((10,10), dtype = np.int8)  
    new_arr = arr.copy()
    new_arr[0, :] = 0                   
    new_arr[:, :4] = 0                  
    new_arr[:, -2:] = 0                 
    new_arr[-3:, :] = 0                 
    print(new_arr)
    Или если хочешь короче я исходил из твоего кода, то можно вот так.
    new_arr = np.zeros((10, 10))
    new_arr[1:7, 4:-2] = 1
    Так короче, и правильнее но мы не много нарушаем условие задачи. Мы заполняем единицами выбранный срез.
    Ответ написан
    Комментировать
  • Где вы берете статистические данные?

    Maksim_64
    @Maksim_64
    Data Analyst
    Специалист который занимается, ответами на данный вопрос называется продуктовый аналитик. Основная их работа это выдвижение гипотез в условиях недостаточности данных. Иными словами сведение к математическому виду определенного утверждения.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Формально для все таких ситуаций, стратегия всего одна это сведение на каком то из раундов к четному количеству. Определенным игрокам обычно дают преимущество, то есть они вступят в турнир не с начального раунда.

    Такие турниры бывают и на самом высшем уровне, c нечетным количеством участников при игре на выбывание, и принцип тот же участники с наиболее высоким рейтингом вступают позже. Пример Кубок мира фиде 2021 в Сочи. У женщин было 103 участника.

    Ну а вот в буквальном смысле как это происходило составление пар в турнире, есть статья из википедии Кубок мира по шахматам среди женщин 2021

    Обрати внимание у некоторых участников есть вместо пары Bye (автоматически проходит в следующий тур).
    Ответ написан
    Комментировать
  • Как сменить стэк?

    Maksim_64
    @Maksim_64
    Data Analyst
    Непонятно, как можно работать java разработчиком n-лет и так формулировать вопрос. Стаж коммерческой разработки он общий. Остальное это твои навыки которые, тебе возможно придется подтверждать на собеседовании.

    Присутствие всякой ерунды или не связанных с реальностью требований в вакансии не редкость, на это никто внимания особо не обращает (если только в негативном смысле, что бы сразу отсеять компанию). Все решается на собеседованиях.
    Ответ написан
    Комментировать
  • Какие могут быть возможные причины изменения ответа LLM на один и тот же запрос?

    Maksim_64
    @Maksim_64
    Data Analyst
    Дообучение - не происходит. Кроме новых релизов. Никакого лайф дообучения не существует.

    LLM - должен имитировать интеллект, по этому он перефразирует один и тот же по смыслу ответ.

    В тех случаях, когда LLM дает по смыслу другой ответ , то она это может делать по ряду причин:
    1. Ранг источника на котором она формирует ответ, изменился понизился

    2. Она может хранить историю этот пользователь уже задавал этот вопрос и потом задает его снова и снова, "значит ответ не устраивает".

    3. LLM может получать лайф оценки на свои ответы, у каждого разработчика есть команды людей которые выставляют оценки ответам LLM, и она может получить низкую оценку и начать искать другой ответ, но это не имеет ничего общего с дообучением.

    Дообучение - это очень дорого.
    Ответ написан
  • Почему yfinace не выводит данные за последние два года? Я так понимаю, это связанно с нынешней ситуацией в мире, можно ли обойти?

    Maksim_64
    @Maksim_64
    Data Analyst
    Потому что компания российская. Поменяй тикер на не российскую компанию и будет выводить. Для российских используй другие библиотеки. Например https://github.com/mbk-dev/moex
    Ответ написан
  • БД (хранилище) для документов с GUI, ранжированием и поиском. Какие фреймворки или готовые решения есть?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. pandas для манипуляций с данными и построения пайплайна.
    2. nltk + scikit-learn для работы с текстом (ранжирования, трансформации в векторное пространство, алгоритмы сравнения для различных метрик и т.д)
    3. plotly+dash (для веб интерфейса с возможностью собрать красивый фронт на python (react, html, css) на все это есть python обертка) + dash bootstrap components коллекция крутых готовых компонентов.

    Примеры готовых качественных веб приложений Галерея код есть на гитхаб, там же найдешь.

    БД тоже подсоединяется без проблем, примеры в документации. Вообще очень упрощая dash это способ превратить модели машинного обучения в веб приложение. Со всеми сопутствующими потребностями.
    Ответ написан
    Комментировать