Задать вопрос
  • Python cоздание переменной с значением генерируемой переменной?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну если ты только изучаешь python, зачем тебе pandas. Код не надо править его нужно выкидывать.

    a) Ты хочешь прочитать каждый xlsx файл в отдельный фрейм, это нормально. Создаешь пустой список и складываешь в него фреймы.
    dfs = []
    for filename in fileanmes:
        df = pd.read_excel(filename)
        dfs.append(df)

    где filenames твои пути для xlsx файлов.

    б) Задача не ясна. На сколько я понял у этих файлов разные имена колонок и надо выбрать общий для всех набор.

    from functools import reduce
    import numpy as np
    
    df1 = pd.DataFrame({
        'A':[1],
        'B':[2]
    })
    
    df2 = pd.DataFrame({
        'A':[1],
        'C':[2]
    })
    
    df3 = pd.DataFrame({
        'A':[1],
        'D':[2]
    })
    
    dfs_column_names = [df1.columns, df2.columns, df3.columns]
    print(reduce(np.intersect1d, dfs_column_names))
    Вот так ты можешь найти общие колонки у любого количества фреймов.
    Естественно тебе не нужно хардкодить список с колонками прям в первом цикле заноси не только фрейм в список, но и в другой список заноси его колонки потом вне списка сохрани общий набор колонок как я привел в примере.

    Ну и я так понимаю в дальнейшем ты собираешься выбрать по уникальным для всех фреймов колонкам и собрать все в единый фрейм. pd.concat(dfs). Где dfs это список фреймов, с едиными колонками. То есть предварительно, ты как я показал нашел common_columns. и затеам dfs=[df[common_columns] for df in dfs]. И затем конкатенируешь.
    Ответ написан
    4 комментария
  • Как редактировать данные на лету при импорте из файла?

    Maksim_64
    @Maksim_64
    Data Analyst
    читай сначала pandas'om по частям. Затем решай проблему с данными или пропускай плохие строки или применяй к ним свою функцию, которая поможет растолковать что является делимитром в определенной строке и записывай ну или в базу тем же pandas'om или в csv файл и затем импортируй его в базу уже.

    читать по частям pandas

    import pandas as pd
    chunksize = количество строк
    for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
        # подправляешь свой фрейм

    Каждый chunk это фрейм, если у тебя будут проблемы с делимитром он выдаст ошибку. Твоя задача написать код который это дело поправит, pandas имеет очень мощный I/O функционал. https://pandas.pydata.org/docs/user_guide/io.html По ссылке найдешь доки не только насчет ошибок при чтении csv файлов, но и как писать в базу, метод to_sql. Он имеет параметр имя таблицы, соедениение и if_exist, так вот в if_exist поставишь append. То есть каждый твой подправленный кусок файла он будет складывать в таблицу в базе.
    https://pandas.pydata.org/docs/reference/api/panda...
    Ответ написан
    Комментировать
  • Ошибка NameError: name 'np' is not defined?

    Maksim_64
    @Maksim_64
    Data Analyst
    Попробуй установить если не установлен numpy и импортировать его import numpy as np
    Ответ написан
    Комментировать
  • С чего начать изучение мат анализа?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если с английским, как ты указал полный порядок. Потрать год на бесплатные курсы с Khan Academy. И у тебя не будет проблем с пониманием мат анализа. При чем начать ты можешь с того места с которого тебе нужно, возможно, я этого не знаю у тебя есть пробелы с алгебраическими преобразованиями, возможно со сведении проблемы к математическому виду (например дана задача) составить уравнение и решить. Я не видел подобного качества курсов. Там есть все precalculus, calculus AB, calculus BC, algebra, linear algebra. Самое главное коротенькие 5-10 минут видео и наверное больше тысячи упражнений. Это хорошая инвестиция времени и она послужит тебе хорошую службу в дальнейшем. https://www.khanacademy.org/ Зарегестрируйся, и начни со своего уровня. Не посредственно мощнейшее введение в мат анализ это calculus AB, calculus BC, multivariable calculus, linear algebra. Но по скольку ты сейчас в 9 классе начинай не с них, а со школьной программы там она есть, увидишь courses и там математика с первого класса, ты со старших начни, не пропусти algebra 1 и algebra 2, geometry и trigonometry. Что выгодно отличает это обучение, ты решишь сотни задач где дана проблема ты ее сначала сводишь к математическому виду, и затем решаешь. А не сухое манипулирование формулами. Так помимо математики ты научишься ее применять.
    Ответ написан
    1 комментарий
  • Почему Выдает ошибку, Python?

    Maksim_64
    @Maksim_64
    Data Analyst
    def init(self, master): Вот здесь ты определил метод экземпляра класса init. А хотел переопределить конструктор экземпляра класса, то есть def __init__(self, master): Отсюда при попытке создания экземпляра класса app = ManageApp(root) он говорит что параметров быть не должно, потому что конструктор экземпляра класса остался пустым.
    Ответ написан
    2 комментария
  • Нейросеть без библиотек. Как можно реализовать?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну ищи примеры и от них отталкивайся. Если нетворк будет состоять из одного скрытого слоя, то обратное распространение ошибки (backpropagation) не сложно. А вот если из нескольких то подсчет градиента будет происходить при помощи chain rule - это сложно реализовать.

    Слой из параметров функция активации и выходная размерность.
    Внутри слоя activation_fumction(dot(A,W) + b). где A - это входная матрица, W это изначально случайно инициализированная матрица весов с количеством рядов равных количеству колонок в матрице А и количеством колонок равных (output_size) параметр у слоя, размерность. то есть например A(10,3) то W должно быть (3,m) где m это то что ты укажешь в параметре выходная размерность каждого слоя. Та размерность которую ты получаешь на выходе после каждого слоя (10,m) в данном случае, b- вектор, с подходящей размерностью просто выполнить по элементное сложение, так же инициализируется случайно. Ну и dot - математическое умножение матриц.

    Model нетворк, это коллекция слоев, имеет методы compile где ты указываешь loss функцию, то что ты будешь минимизировать, ну и наблюдаемые метрики. также имеет метод fit где ты не посредственно, обучаешь, имеет параметры batch (какими частями ты будешь подавать на вход (количество рядов в матрице)) количество эпох (сколько итераций по каждому batch), ну и данные не посредственно.

    В целом ищи гайд. Так тут все сложно объяснить, и это сильно зависит сколько слоев. backpropagation на нескольких слоях это реально самый сложный момент. И он реально сложный.
    Ответ написан
  • Как удалить уникальные дубли?

    Maksim_64
    @Maksim_64
    Data Analyst
    читаешь оба файла в pandas фрейм. Затем сравниваешь, заменяешь, применяешь regex или все что тебе захочется.
    для сравнения псевдо код будет такой. df1['колонка'] == df2['колонка']. Для замен да все что угодно методы, replace, where и т.д. В общем решай pandas'ом а там будут проблемы, сообрази игрушечный фрейм маленького размера, и приходи с ним поможем. Читать файл функцией read_excel.
    Ответ написан
    Комментировать
  • Как перевести бинарный STL-файл в массив Numpy?

    Maksim_64
    @Maksim_64
    Data Analyst
    Я облазил интернет и особо ответа на вопрос не нашёл

    https://pypi.org/project/numpy-stl/
    Ответ написан
  • Возможно ли сделать нейросеть, предсказывающую рост и падение криптовалюты?

    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 комментариев