• Возможно ли сделать нейросеть, предсказывающую рост и падение криптовалюты?

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

    Можно ли сделать нейросеть которая всегда будет предсказывать рост и падение с точностью больше 50 процентов. Нет нельзя.

    Можно ли сделать нейросеть которая в течении какого то промежутка времени будет предсказывать рост и падение свыше 50 процентов. Да можно при чем можно сильно больше 50 процентов.

    Почему так? Нейросеть выучит определенные паттерны на прошлых данных. Но они не постоянны, например разные факторы влияют в разное время на поведение рынков. В количественных финансах есть такое понятие как черный лебедь (black swan). Например алгоритмы таково не предскажут, далее чем больше не стабильность тем хуже алгоритмы будут предсказывать, почему так? Да потому что во времена не стабильности, прошлые знания не только обесцениваются, но и вовсе могут вести к ошибочным результатам.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Не очень мне понятно в чем проблема.

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

    2. глянь вот это https://medium.com/analytics-vidhya/labeling-an-un... (открывается с впн)

    3. сделай кластерный анализ и потом каждому кластеру присвой свою категорию.

    4. Надо помнить, что иногда бывают случаи что даже в big tech присваивают labels ручками. Да посмотри объявления все они нанимают просто людей видео смотреть (например) и затем его в определенную категорию классифицировать и т.д. То есть при подготовке тренировочных датасетов в качестве "разметчика" категорий принимают участие люди.

    Имей ввиду, в ML нельзя задать детерменистическое поведение. Твоя функция активации на последнем слое переведет полученные значения в интервал от (0,1) при чем не 0 не 1 в него не войдут Ну и эти цифры будут использоваться как вероятности при классификации. У тебя будет вектор длинной количество категорий который складывается в 1 (100%). то есть например втрое значение 0.3 это 2 категория 30%. Ну и соответсвенно, он будет выбирать максимальное значение брать его индекс и это и будет категория. Но там никогда не будет значения со 100% или 0%. То есть те катеогории которые нельзя классифицировать он будет иногда ошибаться и классифицировать.
    Ответ написан
  • Какой ИИ есть для отслеживания бизнес-процессов?

    Maksim_64
    @Maksim_64
    Data Analyst
    Конечно же нет.
    1. Open source в широком смысле этого слова модели должны иметь широкую аудиторию.

    2. Что значит какая либо метрика у компании проседает, проседает относительно чего (это медианная/ средняя метрика по индустрии), проседает относительно самих себя или может какая то более сложная метрика и т.д. Когда мы говорим "проседает" мы должны дать этому определение.

    3. В целом ваш вопрос находится в сфере ответственности DA/DS. Построить интерпретируемую модель (нейронные сети таковыми не являются). Определить степень важности каждого отдельно взятого признака (ваших метрик), И затем запускать тесты на этой модели задаваясь вопросом отклонение по какой то из метрик это дело случая, это рост и все хорошо или же она "просела" и надо что то с этим делать.
    Ответ написан
    3 комментария
  • Где учить нейросети python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Пока что посмотрел про линейные и полиноминальные регрессии
    слово регрессия может упоминаться в контексте вида задач машинного обучения, чьей главной особенностью является непрерывность зависимой переменной. Задачи регрессии можно решать как средствами классического ML так и нейронными сетями. Так и в контексте алгоритмов. полиномиальная регрессия, простая регрессия, авторегрессия и т.д. Так вот скорее всего судя по твоему вопросу, не с какими нейронными сетями ты не знакомился, а просто посмотрел какие то алгоритмы классического ML.

    Где и как изучать, это долгий путь. Что бы понимать принцип нейронных сетей. Нужна Линейная алгебра и Одномерное и Многомерное исчисление (Multivariable Calculus). Что бы понимать что происходит, ты должен уметь дифференцировать и знать что такое оптимизация функции. Этому нельзя научится прочитав статью.
    Либо ищи книги материалы по Линейной Алгебре и Одномерному и Многомерному Исчислению (Дифференцирование Интегрирование функции (одной, многих переменных)) на русском. Либо если знаешь английский (что я бы назвал обязательным требованием для IT любого направления уровня специалист). На khan academy есть курсы которые восполнят требования со стороны математики (Algebra1, Algebra 2,Precalculus, Calculus AB, Caluclus BC, Multivariable Calculus, Linear Algebra). Если с этим материалом будет все комфортно, то дальше покупаешь книгу по deep learning. И не испытываешь не каких проблем по пониманию материала. Во время обучения натаскиваешь чистый python, что бы мог читать чужой код, и не испытывать проблем при работе с библиотеками. И подучиваешь необходимы библиотеки из ML стека.
    Ответ написан
    3 комментария
  • Обучение модели машинного обучения прерывается без ошибки. Что может быть причиной и как это решить?

    Maksim_64
    @Maksim_64
    Data Analyst
    Я тоже читал эту книгу, класс книга. В colab запускал? У тебя там не заглушены сообщения об ошибках или предупреждениях? Ну а так остается только экспериментировать попробуй learning rate ему поменять. Попробуй optimizer поменять. Например увеличил вдвое batch_size, увеличь вдвое и learning rate. Скорее всего схождения не происходит, точнее происходит но слишком медленно, ну и видимо, notebook подвисает или там какая нибудь остановка предусмотрена. Одназначно увеличивай learning rate (линейно с увеличением batch), после того как в colab попробуешь, конечно.
    Ответ написан
  • Error in glimpse(d): could not find function "glimpse"?

    Maksim_64
    @Maksim_64
    Data Analyst
    В принципе если ты установил dplyr. (install.packages("dplyr")). Затем загрузилlibrary(dplyr). То все должно работать, только что проверил у меня все работает. Если нет то проверяй установку R, может что то устаревшее, конфликты, с R иногда бывают проблемы.
    Ответ написан
  • Стоит ли читать лутца в 2023?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ты должен искать тот путь который будет работать для тебя. Важно не вот книга "А" лучше чем книга "Б". А в какой момент времени (твой текущий уровень, мотивация, конечная цель, индивидуальные предпочтения и т.д.) Ты читаешь книгу "А" или книгу "Б". Может быть стоит читать эту книгу, может стоит читать статьи, может быть стоит почитать что-то в контексте применения python в той области где ты собираешься его применять и т.д. Самообразование - это не набор определенных действий почти одинаковый для всех - а твой индивидуальный путь.

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

    Я бы не искал единственную книгу, как способ обучится.
    Ответ написан
    Комментировать
  • Можно ли обучить нейросеть на книгах?

    Maksim_64
    @Maksim_64
    Data Analyst
    Можно при чем во всех случаях. Если пишешь с нуля обучать можно на чем угодно, в том числе закодировать тексты в векторную форму и обучать, но это очень сложная задача, и книг по какой то специфике будет недостаточно, а самое главное это безумно дорого. По этому можно использовать уже предтренирванную языковую модель и тюнить ее для создания текстов в контексте специфических знаний (книг в определенном стиле). Это направление для решения задачи.
    Ответ написан
    Комментировать
  • Сегментации изображения, термограммы. Какой способ выбрать?

    Maksim_64
    @Maksim_64
    Data Analyst
    Это так не работает. Нужно наблюдать процесс машинного обучения, метрики, на тренировочном сете на валидационных наборах. Потом VGG это предтренированные модели. Ну сделай весь процесс сам с kmeans (используй scikit-learn) и сравни результаты. А так полный список методов и как с ними работать. https://scikit-learn.org/stable/modules/clustering... Там же и все метрики для кластеризации, как сравнивать. Да и лучшие практики. Вообще сайт scikit-learn куда больше чем просто документация.
    Ответ написан
    Комментировать
  • Как нарисовать гистограмму?

    Maksim_64
    @Maksim_64
    Data Analyst
    Мы строим диаграммы (гистограмма это разновидность диаграммы), для того что бы иметь какое то полезное представление о данных, диаграмма должна о чем то "говорить". О чем же мне должна рассказать твои диаграмма (приложенное фото), я не знаю. Гистограмма показывает плотность распределения номинальную или относительную. То есть номинальную зеленых шариков у меня 10, красных 5, а белых один, относительную в виде пропорций то есть 10/16, 5/16, 1/16. Где 16 это общее количество элементов. Это дискретный кейс, известный как bar chart. Также есть непрерывный кейс, например значения наши от 0 до 1 или -3 до 3. Мы разбиваем на интервалы известные как "bins" и считаем количество номинальное или относительное в каждом интервале. Давай пример сообразим.
    zero_ones = np.random.choice([0,1], 100, p = [0.3,0.7])
    unique, counts = np.unique(zero_ones, return_counts=True)
    unique_strings = [str(digit) for digit in unique]
    plt.bar(unique_strings,counts, edgecolor='black')
    plt.show()


    Мы сгенерировали 100 нулей и единичек с вероятность 30% иметь 0 и 70% иметь 1 (для примера). Посчитали из массива и смотрим посредством графика на распределение данных.
    Пример два
    X = np.random.normal(0,1,1000)
    plt.hist(X, edgecolor='black', bins=50)
    plt.show();

    Мы сгенерировали выборку 1000 значений из гаусового распределения с параметрами среднее 0 и стандартное отклонение 1. Разбили на 50 интервалов и посчитали количество в каждом интервале.
    Вот это гистограммы. Они рассказывают о плотности распределения.
    А то что у тебя это не гистограмма. Что у нас по оси индексы, что по оси y 1 или 0. Какие то индексы пропущены, там и пробелы. В гистограммах по оси 'x' у тебя уникальные значения, а по оси 'y' либо номинальное либо относительное количество.
    Ответ написан
    Комментировать
  • Как сделать чтобы на атрибут users ссылались не отдельно, а вместе?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну код ты поленился, редактировать, а ответов хочешь. Во первых используй атрибуты класса, а не экземпляра класса. Во вторых переопределять __del__ плохая идея (который ты кстати с ошибкой написал __dell__). Ты ожидаешь что del вызывает __del__ нет это не так. del понижает количество ссылок на один на объект и в случае если их стало 0 то произойдет вызов. Например
    class A:
        def __del__(self):
            print('Hello')
           
    a = b = A()
    del(a)
    del(b)
    Удалили ссылку, но есть еще одна и вызова __del__ не происходит. Только, когда ссылок 0 и сборщик мусора сделал свою работу произойдет вызов. Или второй пример.
    class A:
        def __del__(self):
            print('Hello')
    a = A()
    a = 4
    Я вообще del не вызывал, а __del__ вызвался. del не вызывает __del__. Так что заводи, счетчик, как атрибут класса и его увеличивай на один при создании экземпляра класса или понижай определи ему метод delete_user какой-нибудь.
    Ответ написан
    Комментировать
  • Является ли цена за проект неадекватно завышенной?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Ценообразование - привязано, ко времени, месту и обстоятельствам. Один и тот же пирожок стоит в булочной одну сумму, а в аэропорту другую.

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

    3.
    я бы себя оценил где-то в 1500р/час
    Это фантазии, не важно во сколько, ты себя оцениваешь. Твой труд стоит столько - сколько за него готовы заплатить на рынке труда. Если ты вообще на нем представлен, если ты не находишься на рынке, то стоимость твоего труда 0, и уровень твоей экпертизы не важен. Важно не то, как ты себя оцениваешь - а как тебя оценивает рынок.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Какой именно график, интересует? Я не знаю что ты читал, но построить элементарно. matplotlib, seaborn, например.
    import matplotlib.pyplot as plt
    import numpy as np
    a = np.array([2, 2, 2, 1, 2, 1, 1, 2])
    unique, counts = np.unique(a, return_counts=True)
    unique_strings = [str(digit) for digit in unique]
    plt.bar(unique_strings, counts)
    plt.show();
    А так заходишь в галерею matplotlib и просто берешь кокретные примеры.
    Ответ написан
  • Как сравнивать два текста и находить между ними сходство средствами python?

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

    А ты уверен, что тебе нужно сравнение двух текстов? Выглядит как на вход текст за тем он его сопоставит с определенным действием. То есть задача на классификацию с текстом, то есть у тебя есть набор действий labels (1,..n) и есть разный текст который нужно классифицировать в одну из групп, ну и затем просто выполнить код (действия) который наступает в случае (1,..n). Tensorflow + keras гуглить text classification, там есть все что нужно, основная возня будет закодировать при чем именно входные данные, сам target там one-hot-encoding и он там из коробки есть. В общем это довольно обычная задача, полно туториалов.

    Если же речь идет именно о сравнении двух текстов, то тут все на много сложнее. Во первых тут нужно определить критерий их "похожести", определить способы кодировки, в остальном принцип будет метрика "дистанция" там обычно начинают с cosine similarity. Библиотеки как scikit-learn так tensorflow+kears ну и конечно же NLTK для этого используют. Возни будет больше в разы по этому посмотри а не можешь ли ты сгруппировать то есть пользователь вводит текст и нужно его сопоставить (1,..n).

    Что бы разобраться конкретно какие вопросы перед тобой станут, как кодировать, какие виды похожести (similarity), рекомендую вот этот большой гайд, https://www.newscatcherapi.com/blog/ultimate-guide.... Ну а делал бы я лично все это дело на tensorflow+keras.
    Ответ написан
    1 комментарий
  • Как исправить данные ошибки Python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну смотри, как тебе помочь в слепую на этом коде я не знаю, у меня нету возможности дебажить. Смотри,

    1. Ты создаешь словарь summary, где ключи это элементы массива cats, а значения pandas фреймы, (Нормальный ход, так делают).

    2. Затем ты обращаешься к ключу сначала словаря, а затем выбираешь подсет фрейма и меняешь его. Подсет фрейма надо выбирать методом loc[index, column]. Посмотри в документации. Key Error может , как ключи словаря давать, так и индексы фрейма тоже key error могут давать, если их там нет.

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

    4. CountVectorizer это scikit-learn посмотри там examples, они там супер, рассмотри так же использование Pipeline, на чистом pandas весь процесс не пишут. То есть всю последовательность трансфлормаций собирают в Pipeline, ты в своем коде еще не дошел до тестового сета, но применит трансформации на тестовых данных сам при чем правильно, если все свои трансформации чейнить в Pipeline.
    Ответ написан
  • Как достать с pdf файла (с ссылки на pdf)?

    Maksim_64
    @Maksim_64
    Data Analyst
    Для таких задач тебе нужно спарсить этот pdf в pandas фрейм. Тогда твоя задача доставать из этой таблицы любые данные становится весьма тривиальной (В худшем случае несколько строк кода). Можно создать фрейм и используя твою библиотеку PyPDF2, но я предпочитаю tabula мощный парсер pdf таблиц (и он их парсит в фрейм по умолчанию), там возится особо не придется. https://tabula-py.readthedocs.io/en/latest/ там обрати внимание, нужно будет java поставить.

    Гугли pdf table to pandas dataframe. И вперед вручную перебирать таблицы не нужно. Есть подходящие инструменты, которыми ты можешь и быстро и легко осуществлять выборки любой сложности.
    Ответ написан
  • Почему не дополняются значения в return?

    Maksim_64
    @Maksim_64
    Data Analyst
    это не обычное сложение, а сложение и присваивание self._balance += amount эквивалентно. self._balance = self._balance + amount. Ты можешь потенциально использовать такую форму с := (walrus) оператором. и код будет выглядеть вот так
    return (self._balance := self._balance+ amount) скобки здесь обязательны. С обычным присваиванием так нельзя.

    Отредактировано ошибочка вышла Мы не можем использовать walrus оператор, с атрибутами экземпляра класса. Кстати, это интересно, он выдает SyntaxError: cannot use assignment expressions with attribute. Я ожидал, что это будет NameError. Вот уже удивительно, век живи век учись.
    Ответ написан
    9 комментариев
  • Как в одну строчку сосчитать сумму произведения ключей и значений?

    Maksim_64
    @Maksim_64
    Data Analyst
    sum(float(key.value)*value for key,value in self._testes.items())


    или если хочешь в Decimal ответ то убери float.
    Ответ написан
    1 комментарий
  • Как скачать видео на YouTube с помощью python3. 9 bs4?

    Maksim_64
    @Maksim_64
    Data Analyst
    Что значит спарсит видео по ссылке? beatifulsoup парсит html и xml. Что бы качать видео c ютуба средствами python, есть специальная библиотека pytube. https://pytube.io/en/latest/
    Ответ написан
    2 комментария
  • Появились уже нейросети для анализа или создания электронных схем?

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

    Сколько аудитории будет, у подобной нейронной сети, ответ не много. По этому если такие решения существуют, они не open source, потому что в этом нет никакого смысла.
    Ответ написан
    Комментировать