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

    Сергей Паньков, Отлично, правильно логические на то и логические (что бы тестировать логически) а по битовые что бы тестировать оба операнда. Что же меня ждет явное повторение булевых и побитовых операций в чистом 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. И пробуйте учитесь. Дальше без меня.
    Написано
  • Как повысить точность модели машинного обучения?

    Kind_Man, Так ну хорошо, для начала давайте все сделаем по человечески, и заодно исключим ошибки в pandas коде.
    import pandas as pd
    import numpy as np
    from sklearn.pipeline import Pipeline
    from sklearn.compose import ColumnTransformer
    from sklearn.preprocessing import StandardScaler, OneHotEncoder
    from sklearn.model_selection import train_test_split
    from sklearn.ensemble import RandomForestClassifier
    
    X = df.drop(columns=['Status'])
    y = df['Status']
    numeric_features = [" ",..]
    categorical_features = ["",..]
    # Вот мы создаем Pipeline's для наших трансформаций, пока по одной на каждую часть но это для начала
    numeric_transformer = Pipeline(
        steps=[("scaler", StandardScaler()),]
    )
    
    categorical_transformer = Pipeline(
        steps=[
            ("encoder", OneHotEncoder(handle_unknown="ignore")),
        ]
    )
    
    preprocessor = ColumnTransformer(
        transformers=[
            ("num", numeric_transformer, numeric_features),
            ("cat", categorical_transformer, categorical_features),
        ]
    )
    наш финальный пайп где мы собрали трансформеры который имеет поведение модели.
    clf = Pipeline(
        steps=[("preprocessor", preprocessor), ("classifier", RandomForestClassifier(random_state=42))]
    )
    
    #теперь когда мы создали план действий делим данные
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    clf.fit(X_train, y_train)
    print("model score for training set: %.3f" % clf.score(X_train, y_train))
    print("model score for testing set: %.3f" % clf.score(X_test, y_test))


    Вот это правильная организация для вашей проблемы (здесь из коробки он где надо применит transform а где надо fit_transform) в общем код верный просто для не опытного человека может выглядеть необычно, что оно выдаст по метрикам вот так? теперь мы так же можем если нужно еще каких нибудь трансфомеров добавить в наш numerical и categorical трансформеры.
    Это вместо всего вашего кода весь pandas выкидываем.
    Написано
  • Как повысить точность модели машинного обучения?

    Kind_Man, так значит type и network там больше двух значений и одна не больше другой то есть OneHotEncoder, а остальные это ordinal если там 1 или 0 то они уже закодированы. Так?
    Написано
  • Как повысить точность модели машинного обучения?

    Да в трансформациях ошибка. Те что np.log не имеет смысла. У нас не происходит обучения на тренировочном сете. Уберите это и все что численные StandardScalerom трансформируйте. Сам трансофрмер вы применили "правильно" в кавычках потому что весь pandas код ужасный, так pandas не пишут, но что касается трансформера он у вас РАБОЧИЙ.
    X_train[numerical_cols]=minMax_scaler.fit_transform(X_train[numerical_cols])
    X_test[numerical_cols]=minMax_scaler.transform(X_test[numerical_cols])

    вот это я имею ввиду по исполнению конечно так не пишут но он РАБОЧИЙ. все что np.log вообще уберите.
    и замените трансформер. StandardScaler в который все ваши чиленные переменные впихнете.

    По категориальным у вас там что? много категорий, где одна не больше другой? расcкажите что там?
    Написано