Задать вопрос
  • Где учить нейросети 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, потому что в этом нет никакого смысла.
    Ответ написан
    Комментировать
  • В чем логика решения задачи Флавия?

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Не очень понятно, а что не понятно. Передается объект класса в функцию, ты зачем назвал параметр функции func а передаешь туда объект класса. Вот здесь result = func(*args, **kwargs) ты инициализируешь экземпляр класса, затем возвращаешь его да и все, MyClass у тебя стала функцией которая возвращает экземпляр класса. Ну добавь там чего нибудь например.
    def f():
        return 100
        
    def decor(func): 
        def _wrapper(*args, **kwargs):
            result = func(*args, **kwargs)
            result.complex_calculation = f
            return result
        return _wrapper 
    
    class MyClass:
        def complex_calculation(self):
            return 42
    
    MyClass = decor(MyClass)
    
    my_obj = MyClass()
    
    print(my_obj.complex_calculation())

    Твой метод вернет, не 42, а 100. Или объяви метод какой-нибудь которого нет.
    Ответ написан
  • Можно ли предсказывать несколько признаков одной моделью нейронной сети?

    Maksim_64
    @Maksim_64
    Data Analyst
    Конечно можно. Это называется Multitarget Classification или Mixtarget classification.
    Смотри в целом. Тип скрытого слоя + Конфигурация размерностей последнего слоя + подходящая функция активации + подходящая loss функция позволяет конфигурировать практически все что угодно.

    Гугли neural networks Multitarget Classification, это не посредственно то что ты ищешь.
    Например вот https://towardsdatascience.com/predicting-mixed-ta..., Но лучше гугли сам. И приходи с более конкретными вопросами, может надо будет помочь сконфигурировать слои правильно например или препроцессинг сделать.
    Ответ написан
    Комментировать