Задать вопрос
  • Почему условие выполняется не корректно?

    Сергей П, Нет, я не то что бы спорить зачем есть логические операторы и их надо использовать в первую очередь, а если есть какие то причины требующие побитовые то только тогда побитовые, я согласен с вами, потенциальный эффект логического оператора ну например False AND some_function() если функция скажем не валидная должно быть исключение а вместо исключения у нас будет False, это негативный сценарий на позитивный указали вы, мы избегаем лишних вызовов функций. Полностью согласен.

    Буду честен я использовал побитовые машинально, потому что основной код который пишу это pandas а там вместо логических используются побитовые. Но я не должен машинально использовать, а должен понимать, что делаю, python мой основной язык. По большему счету мне ПОВЕЗЛО, что код не имеет побочных эффектов. Повезло, это не профессионально и не куда не годится.

    Я вечерком открыл побитовую арифметику и не нашел потенциальных побочных эффектов. Где у нас могут проблемы (как мне думается) если мы вылетим где то из 0 или 1. например 10 & 9 он вернет 8, почему потому что в результате побитового умножения мы мы получим 8 (сначала в бинарном представлении) ну и он конвертирует в целое число 8. Ну и такие кейсы это не то что мы хотим. Но за счет того что любой критерий это True или False то есть 1 или 0, я не увидел не каких кейсов где это будет иметь непредсказуемое поведение.

    В любом случае спасибо за дискуссию, лучше лишний раз что то повторить и разобраться.
  • Почему условие выполняется не корректно?

    Сергей, Почитал , немножко разочарован (с ваших слов я ожидал, что что-то серьезное упустил) побочный эффект как раз таки имеет логический оператор, собственно вы этот эффект и предлагали изначально использовать что бы не производить лишние вычисления. По битовое AND (&) он берет бинарное представление целого числа далее a_i * b_i для бинарного представления числа. По битовое OR (|) например a_i + b_i - (a_i * b_i). Бинарное представление True ->1, False ->0, то любая операция даст на выходе 1 или 0, как и ожидается.

    False, True являются подклассом int. 0, 1 соответственно. ,бинарная форма 0 -> 0 , бинарная форма 1 -> 1. Откуда тут взяться побочным эффектам.
  • Почему условие выполняется не корректно?

    Сергей Паньков, Не ну насчет критериев, понятно надо вводить критерий сложности. Хотя бы что то вроде этого. Энтропия = log_2(Количество возможных символов^длинна пароля). Ну и сравнивать, оптимизимировать, относительно желаемых условий и т.д.
  • Почему условие выполняется не корректно?

    Сергей Паньков, Отлично, правильно логические на то и логические (что бы тестировать логически) а по битовые что бы тестировать оба операнда. Что же меня ждет явное повторение булевых и побитовых операций в чистом python. Спасибо надо устранять, я так ошибаться не должен.
  • Почему условие выполняется не корректно?

    Сергей Паньков, А вот это уже аргумент, вы правы. В моем случае, когда дизайн подразумевает при любом раскладе вычисление всех критериев, странно использовать побитовое AND, надо использовать логическое AND, раз уже все посчитано, так пусть полностью выполняет выражение, а не если слева False то стоп, если True идем дальше. Согласен. Надо было мне в этом моменте быть внимательно, привык в pandas использовать ПОБИТОВЫЕ операторы и влепил. Ну это не оправдание, в этом моменте вы правы.
  • Почему условие выполняется не корректно?

    Сергей Паньков, Смотрите, я вас понял прекрасно, что вы имеете ввиду. Вы мне говорите, что я зря посчитал критерии, потому что в булевом выражение например простейшем (False & .. ) то что справа никогда не будет выполнено, так как python уже поймет, что выражение False, как результат происходят лишние вычисления критериев, в моем коде они то все вычисляются (А если держать их функциями и вставить функции в булевое выражение, питону надо будет вызовет, не надо будет не вызовет). Оптимизация ли это конечно оптимизация.

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

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

    Ну а мнение, всегда ценно (критическое ценно вдвойне) . Спасибо.
  • Почему условие выполняется не корректно?

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

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

    Bzikol, Ну API ботов я не знаю, вопрос был как работают с google sheets. Все манипуляции табулярных данных посредством pandas, остальное это коннекторы что бы удобно отправлять фрейм (упрощенно таблицу) в google sheets.
  • Как увеличить точность предсказаний?

    U235U235, Лучше бы автор вопроса да и вы объяснили бы что такое точность 70% в регрессивной задаче.
    В нём есть поля в качестве входных данных и поле целевой переменной. Данные - обычные числа float.
    То есть у нас и X и y непрерывные и это задача регрессии. 70% процентов может быть у задач классификации. (у задач регрессии другие метрики R2 score, MSE, RSME и.т.д) И пусть алгоритм будет например логистическая регрессия (он решает задачи классификации y ДИСКРЕТНЫЙ. На самом деле в ТЕОРИИ и только в ТЕОРИИ и линейная регрессия может быть использована для задач классификации (на практике этого не делают).

    Слово регрессия в названии алгоритма - не одно и тоже, как проблема регресиии.
    Автор говорит и X y у меня float нам нет дело до X он может быть любым, а вот y то НЕ дискретный. Значит это проблема регрессии. Откуда тогда 68-70% должно быть R2 score, MAE или RMSE.

    Я не стал заострять на этом внимание в ответе, так что бы автор начал что то делать КОНКРЕТНОЕ, и появились КОНКРЕТНЫЕ вопросы.

    Что же касается вашего заявления

    И самое главное, не факт, что все это поможет.
    ну там где есть вариативность 100% гарантии конечно нет, не одни метод статистического анализа или машинного обучения не гарантирует 100% результата. Если же мы опустим сто "процентность" то поможет, и еще как поможет.
  • Почему не обновляет значение переменной при перезапуске скрипта BS4?

    Виталий Яковлев, Это не является тривиальной задачей, так что задавайте это отдельным вопросом. Это можно делать через JavaScript, либо если использовать python то нужно использовать эмуляторы браузеров типа selenium и потом уже bs4.
  • Почему pandas выдает ошибку?

    newPsevdonim, Я не против, если ошибка на этом и закончилась, пусть все остается ответ не только вы читать будете, у кого то причина этой же ошибки будет в другом, и ему дополнение что я написал, задаст направление в ее решении.
  • Catboost почему строит график зеркально?

    juiwas_morori, Хорошо, вы просто упомянули ROC кривую у себя в вопросе. Понятно здесь количество итераций на оси x и точность классификации на оси y. Ну и наблюдаем мы конвергенцию. Сложно сказать, что не так. Если бы поведение просто различалось, можно было бы подумать на параметр random_state, но здесь явно какая то ошибка.
  • Как разбить временной столбец на интервалы?

    Поясните, как должен выглядеть новый столбец, там категориальные переменные утро. обед, вечер, ночь. То есть вы хотите создать маппинг? например если в колонке time время 07:00:00 то в новой колонке записывается утро, так?
  • Catboost почему строит график зеркально?

    Обратите внимание на шкалы ваших осей так быть не должно. Вы что то не то делаете это не ROC. У вас должны быть шкалы от 0 до 1. А у вас хаос какой то Истинно-положительный от 0 до 0.11 или 0 до 3 на первом а ложно положительный в тысячах на обоих. Надо сначала с этим разбираться.
  • Как создать список на два элемента с заполнением None?

    Speakermen, Скриншоты, кода не разрешены по этому удалите. А вот относительно фрейма, я выскажусь, вы создали колонку price, так вот это колонка у вас грязные данные. Потому что вы не сможете запускать на них операции статистические, если в файл писать что это за колонка такая будет. Еще раз в мире данные это называется dirty. То есть это не должно быть в таком виде, вам нужно две колонки, или более если размер каждого кортеда не два как у вас а более. Или по своему реорганизуйте. Или я предложу вам создать сначала отдельный фрейм для price
    df = pd.DataFrame(data=listPrices, columns = ['Price1','Price2'])

    потом сджоинить его с основным вашим фреймом
    например либо
    pd.concat([main_df,df],axis=1,ignore_index=True)
    либо
    pd.merge(main_df,df)
    где main_df это ваш основной. Либо иначе поработатйте (напрмер можно str.split()) вот как его применять https://pandas.pydata.org/docs/reference/api/panda..., но иметь такую колонку как у вас = иметь проблемы с ней в будущем.
  • Как создать список на два элемента с заполнением None?

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

    Ну он перезаписывается, да и все. У вас mode='w' стоит поменяйте на 'a', что бы он добавлял в файл.
  • Как повысить точность модели машинного обучения?

    Я достаточно, вам времени уделил, более того сформировал вам шаблон, что бы вы на нем могли учится и эксперементировать. Внутри, каждго из
    numeric_transformer = Pipeline(
        steps=[("scaler", StandardScaler()),]
    )
    
    categorical_transformer = Pipeline(
        steps=[
            ("encoder", OneHotEncoder(handle_unknown="ignore")),
        ]
    )

    Может быть более одного трансформера, просто добавляете кортеж состоящий из имени (придумываете его сами и самого трансформера) гуглите sklearn numeric transformers и соответственно categorical transformenrs. И пробуйте учитесь. Дальше без меня.