• Как создать нужную функцию?

    @dmshar
    Надо, чтобы:
    "на вход принимала данные c файла ".
    "В принципе не обязательно чтоб принимала функция что-то, нужно как-то сделать чтоб она просто открывала файл, читала данные из файла ну и обрабатывала по той обработке"

    Т.е. вы просто не знаете как открыть файл и прочитать данные? И как создать функцию? И не даже не понимаете, что о таком пишут в любом учебнике/сайте/видеоуроке? Круто!

    И даже не имеете представления, что такое находится в один клик в Гуугле? Такое сегодня бывает?

    И вам абсолютно не интересно самостоятельно найти ответ на школьно-элементарный вопрос, но хочется, что-бы кто-то это сделал за вас? Фантастика! А зачем тогда даже начинать садиться за программирование?

    Ну вот, помогу вам. Работа с файлами при программировании на Python

    И еще. Python создание функций
    Ответ написан
    Комментировать
  • Не могу скормить датасет нейросети?

    @dmshar
    Первый же ответ по запросу в Гуугл дал ответ:
    "Warning: The tf.contrib module is not included in TensorFlow 2. Many of its submodules have been integrated into TensorFlow core, or spun-off into other projects like tensorflow_io, or tensorflow_addons. For instructions on how to upgrade see the Migration guide."
    Ответ написан
    Комментировать
  • Как реализовать распределение вероятностей в зависимости от значений?

    @dmshar
    Если считать, что в формулировке вопроса присутствует ошибка (см. комментарий выше), то естественно напрашивающийся ответ следующий:

    1. Считаем сумму всех элементов. Получаем некое S.
    2. Для каждого элемента вашего массива s[i] считаем p[i]=s[i]/S.
    (3. Если в массиве присутствуют одинаковые элементы, их значения p[] складываем.- Пункт связан с неполной формулировкой задания. Нужен он или нет - разбирайтесь сами.)

    Ясно, что сумма всех p[i] равна 1.
    Ясно, что значение p[i] прямо пропорционально значению s[i].
    Ответ написан
  • Как определить коэффициент влияния погоды?

    @dmshar
    Во-первых. "Влияние" одного параметра на другой может быть оценен с помощью коэффициента корреляции. В данном случае - скорее всего - коэффициента корреляции Присона.
    Во-вторых, "влияние" одного параметра на другой может быть выявлено в виде регрессионной модели.
    Коэффициент корреляции просто покзывает, можно ли ПРЕДПОЛОЖИТЬ, что параметры между собой связаны. Регрессионный подход пытается строить модели. Но что-бы эта модель была адекватной, т.е чтобы с ее помощью можно было действительно что-то предугадывать, на данные должны быль наложены более серьезные ограничения. Выполняются-ли они на ваших данных - надо проверять.
    Другое дело, что в реалии все намного сложнее. Данные у вас (предположим) объем продаж в зависимости от реальной температуры в этот день. А строить модели вы собираетесь по прогнозу. И это вовсе не одно и тоже. И - если подходить серьезно -гораздо сложнее прямой задачи.
    Ну и кроме того, не забывайте, что ваши данные скорее всего имеют еще и сезонную составляющую, причем слово "сезонный" тут может иметь значение и 7 дней, и 30 дней и 365 дней. И если все делать "по взрослому" - то тут уже начинают работать модели временнЫх рядов.
    Ответ написан
    Комментировать
  • Какой раздел статистики решает задачу идентификации?

    @dmshar
    Конечно, статистика этим не занимается. Решение вашей задачи - типичная задача классификации (диагностирования) из области Machine Learning. А уж там "по метсу" -надо подбирать наиболее адекватный подход - Метод ближайших соседей, Деревья решений, нейросети и пр.- на сколько хватит сил, ресурсов и энтузиазма.
    Библиотеки Python -Sklearn, Scipy, в первою очередь. Полезете в нейросети - Tensorflow, Keras, Pytorch
    Ответ написан
    Комментировать
  • Как удалить определённый элемент в массиве?

    @dmshar
    Я так понял, вы желаете из массива удалить сразу ВСЕ заданные элементы, например - все нули. Их количество заранее неизвестно.
    Тогда вот так

    al=[0,1,2,0,3,2,0,2]
    al=[x for ind,x in enumerate(al) if x!=0]


    Ответ:

    Out[12]: [1, 2, 3, 2, 2]


    Ну, а если вдруг, почему-то надо только через del, тогда вот так:

    for i in [ind for ind,x in enumerate(al) if x==0][::-1]:
            del al[i]
    Ответ написан
    9 комментариев
  • Есть бесплатные DLP системы?

    @dmshar
    Класс. Хотим защитить нашу корпорацию, причем не простую маленькую конторку, а большую фирму, раз нужна DPL, но денег жалко, пусть кто-нибудь потратит на разработку свои кровные, а мы с удовольствием ее используем.

    Ну вот вам один вариант - https://mydlp.com/ -у них вроде community-версия была бесплатной.

    Или вот: https://code.google.com/archive/p/opendlp/ - посмотрите, может есть и более свежая версия.

    Есть еще kicki -dler. которую анонсируют как "бюджетную альтернативу DLP-системы"

    А вот тут https://habr.com/ru/post/275035/ описывают, как сделать "DLP система своими руками" - куда уж дешевле. Кстати, если сделаете вдруг сами - станете вы ее раздавать за бесплатно всем желающим?
    Ответ написан
    Комментировать
  • Python цикл for?

    @dmshar
    Какой-то странный вопрос. "Складывание" происходит по законам арифметики. Цикл for выполняется столько раз, сколько у вас оказалось ингредиентов в dish.
    Обнуление Веса "weight " - расположено явно не там, где ему место - а место ему ДО оператора for. Цикл for выполняется столько раз, сколько у вас оказалось ингредиентов в dish.
    Для каждого ингредиента к значению текущего веса прибавляется вес добавленного продукта, причем для того блюда - пиццы или салата, которое вы задали.
    Ответ написан
    1 комментарий
  • На вход подаются два числа, отличных от нуля. Как вывести второе число со знаком первого?

    @dmshar
    Получаем знак первого числа. Например - сравнением с нулем.
    Проверяем знак второго числа.
    Если знаки различны - знак второго числа меняем на противоположный.
    Если знаки одинаковы - ничего не делаем.

    Если без if - бред конечно, но тем не менее, тогда так:

    a=-27
    b=12
    sig1 = (a > 0) - (a < 0)
    sig2 = (b > 0) - (b < 0)
    a1=(sig1*sig2)*a
    Ответ написан
  • Как переквалифицироваться на специалиста в сфере ИБ?

    @dmshar
    Все элементарно.
    Для того, что-бы стать специалистом по Информационной Безопасности, надо для начала стать специалистом по Информационным технологиям. Вот с этого и начните.
    А как - выбирать вам. Варианты
    - Второе образование, начиная с бакалавра. Самый прямой путь.
    - Самообразование - практически с нуля. Все думают, что ну им то это по силам. Ага. Ну попробуйте. Потом расскажете, как каком месяце у вас кончился запал.
    - Курсы. Не сильно отличается от второго, а при отсутствии базы - еще и в худшую сторону.

    По большому счету, второй и третий варианты могут и должны рассматриваться как дополнение к первому. Без первого ни в одну серьезную контору вас не возьмут. Как бы гениальны вы ни были - просто потому, что в некоторых "бумажках" (смотри ниже), такое требование прописано напрямую.

    Правда, в ИБ есть одна роль - составление всякого рода бумажек, выверка регламентов, проверка на соответствие законам и подзаконным актам, наконец - последующая проверка соответствия реалий этим бумажкам. ИТ-специалисты эту работу ненавидят лютой ненавистью, но вот вам с вашим базовым юридическим она может подойти. Попробуйте устроиться в какую-нибудь гос.контору или банк на такую должность. Если, коненчо, это "греет".
    Ответ написан
    6 комментариев
  • Не работает парсер, что делать?

    @dmshar
    Если для вас "запустил парсер, он на работает" это "караул" и причина бежать на форум - можно посоветовать одно: бросайте программирование, это занятие не для вас.
    Ответ написан
    Комментировать
  • Как подсчитать количество операций при работе алгоритма сортировки?

    @dmshar
    Открою вам маленький секрет, который вам должны были рассказать на первой же лекции по теории алгоритмов. Если вы возьмете тот-же массив, перетасуете его и еще раз отсортируете, то велика вероятность того, что получите ответ, отличный от 28.
    И вам наверняка говорили, что O(n) - это вовсе не время и даже не количество операций, которые надо выполнить. На самом деле О - нотация показывает как изменяется количество выполнимых операций при соответствующем увеличении входных данных.
    Соответственно O(n) говорит, что с ростом объема количество операций растет (примерно) линейно, а O(n^2) - растет (примерно) квадратично.
    Если хотите удостовериться - надо проводить такой эксперимент. Берете набор данных на Х элементов, 100000 раз его тасуете и 100000 проводите сортировку. Получаете некоторую усредненное число повторений A. Потом берете набор данных на 2Х элементов и повторяете процедуру. Получаете усредненное количество операций В. И смотрите, в каком отношении находятся В и А. Вот это и есть грубая оценка О(.).
    Ответ написан
    9 комментариев
  • Как продолжить своё развитие в python-e?

    @dmshar
    Если прочитав первый том Лутца, вы не можете решить, нужен-ли вам второй - то скорее всего вам не нужен ни второй том Лутца, ни Python.
    Ответ написан
    Комментировать
  • Какие существующие IDS (системы обнаружения вторжений) используют нейронные сети?

    @dmshar
    Использование ANN в IDS на сегодняшний день в большей степени носит экспериментальный характер. Есть множество научных работ где пытаются нащупать соответствующие решения. Что-до готовых систем - я не думаю, что IDS доступные для широкой публики будут включать что нейросети, что другие ML-решения ни сегодня, ни завтра, ни в будущем. Закрытые и корпоративные системы - вполне и они уже потихоньку имеются и используются. Так происходит потому, что как только вы сделаете такое решение общедоступным, ценность его упадет до нуля. Это примерно то-же самое, что на поле боя открыть схему своей обороны. Добаьвте сюда то, что называется Adversarial Machine Learning и развитие этого направления буквально в последние два-три года. Поэтому каждый строит свою оборону и бережет ее описание как самую ценную коммерческую тайну.

    Кстати, некоторые модули МL встроены даже в Splunk. Но именно как инструмент, а не как решение, т.е. бери, сам пиши свои решения и применяй, если хочешь. Кроме того, с моей точки зрения и по информации, которой обладаю, системы на основе статистических и DataMining подходов на сегодняшний день дают гораздо больший шанс получить позитивный результат и используются гораздо шире, чем системы на основе использования нейросетей.

    Есть и проблемы, связанные со сложностью самой предметной области. Найти аномалии в трафике, а тем более - в поведении пользователей оказалось намного сложнее (и - по моему мнению - интереснее), чем разработать полуигрушечные решения для рекомендательных торговых систем, систем предсказания валютных котировок или забавные, но малополезные "системы обнаружения людей без масок". Но менее пафосно и модно. Поэтому даже постов в блогах и на сайтах по тематике не так уж много. Кроме того, решение в этой сфере не удается "опереть" на один какой-то метод, как это часто имеет место в других ПО - а значит они должны быть более комплексными и сложными, а специалисты работающие тут - иметь гораздо более широкий научный кругозор, специализироваться на целом спектре методов Machibe Learning, а в добавок - еще и неплохо разбираться в инфобезопасности как таковой. Т.е. с налета тут ничего не сделать от слова "совсем", эффектных картинок не получится. А значит шума вокруг - намного меньше.

    Есть и другие проблемы. Некоторые из них неплохо проанализированы в одной из последних работ (2019 год) что мне попадались на эту тему, которую можно найти по названию "Machine Learning in Cyber-Security - Problems, Challenges and Data Sets", первый автор - Idan Amit. Тут и принципиальное отсутствие обучающих датасетов и много чего еще. Если интересно - нагуглите.

    Впрочем, нельзя сказать, что книг и другой научной информации по тематике совсем нет. Мой личный список только книг на эту тему (не про нейросети, и именно про Machine Learning in CyberSecurity в разных аспектах) - содержит около 25 титулов, правда на русском только одна, достаточно не новая и по качеству оставляющая желать много лучшего (рекламировать не буду). А количество статей - переваливает за две сотни, и это только те, что мне показались полезными.

    Ну вот как-то так. Не уверен, что удовлетворил ваше любопытство, но надеюсь, что пищу для самостоятельного размышления - дал.
    Ответ написан
    3 комментария
  • Задача: Как из ограниченного количества чисел найти те, из которых можно составить вводимое число?

    @dmshar
    Полный перебор. С возможным окончанем иттерации при превышении текущей суммы заданного числа.
    Ответ написан
    8 комментариев
  • Разумно ли начало it-карьеры с Data Science & ML?

    @dmshar
    В вашем вопросе мне видится две стороны. Попробую ответить.

    Сторона 1. "Имею высшее техническое образование, денег не хватает, хочу больше (вполне нормальное - с моей точки - зрения желание), слышал, что в IT легко можно хорошо заработать (почти неправда! ), хочу стать программистом". В такой постановке вам придется конкурировать с десятками тысяч джунов, которые к тому же имеют образование не по загадочному "rocket science", а по вполне конкретному "computer science" и смежным специальностям, а следовательно конкуренцию с ними у вас большой шанс, увы, проиграть. Таких желающих даже на этом форуме - по десятку в неделю пишут посты, их становится все больше, а реальная потребность рынка близка - или даже перешла - точку насыщения. И если бы на этом было все в вашем вопросе - я бы не стал даже отвечать, ибо порядком надоело.

    Но! В вашем вопросе была и
    Сторона 2. "Имею высшее техническое образование, неплохую мат. подготовку, интересует анализ данных". Многие представляют себе проекты в DataScience - как "написал обращение к функции (или вызвал нейросеть), она мне все обсчитала (любую фантазийную задачу) выдала результат, я его сунул заказчику, он обомлел от счастья и отсыпал мне кучу бабла". К счастью, в реалии это вовсе не так. Для того, что бы заниматься DS надо знать (и любить!!) математику, теорвер, статистику и смежные дисциплины и быть готовым постоянно совершенствоваться в них (почему-то мне кажется, что у вас тут все в порядке) , знать программирование (да, без этого увы, нельзя - но вы готовы это наверстывать) и обладать экспертизой и серьезным пониманием процессов в той или иной предметной области. А вы - насколько я понял - есть специалист по технической диагностике. И вот тут у вас ОГРОМНОЕ преимущество. Перед теми, кто видит лишь маркетинговый антураж и по сути понимает DS как "котики направо - собачки налево".
    Дело в том, что применение DS в промышленных и производственных сферах - это не так модно и красиво, как "распознать лицо на фотке", или "распознавание рукописного текста с телефона", но поле применения огромное - от АЭС до Интернет-сетей, от точного земледелия до медицинских приборов. Просто даже не буду переводить: A Machine Learning Approach to Detect Industrial Plant Faults, Detection in mechanical structures problems using extreme value statistics, Condition Monitoring, Predictive Maintenance Opportunities, Predictive and Prognostics of Industrial Equipment, Prognostics and Health Monitoring in Complex Engineering Sysytems, Machine Learning Algorithms for Intrusion Detection System и т.д . За этими задачами реальное будущее применения ИИ и DS. И непаханое поле деятельности - до пенсии точно хватит. А специалистов DS, с компетенцией в соответствующей сфере - огромный дефицит. И тут у вас 10 корпусов преимущества перед другими конкурентами. И даже перед теми, кто заканчивал по чистой "Data Science". Кстати - как я могу судить по своим наблюдениям - не только внутри страны, но и на мировом рынке труда.

    Поэтому мой совет - все-таки определитесь со своей целью. Я бы советовал двигаться по второму пути. Как конкретно - это другой вопрос, который можно обсуждать уже дополнительно и отдельно, исходя их ваших реальных стартовых позиций и желаний.
    Удачи!
    Ответ написан
  • Разобраться в задачке по терверу?

    @dmshar
    Ответ написан
    Комментировать
  • Как повторять цикл?

    @dmshar
    Да по разному можно.
    Можно задавать глобальную переменную.
    a = 0
    def new():
        global a
        for line in range(2):
            print(a)
            a +=1
    
    new()

    0
    1


    Можно передавать как параметр, например так:
    a = 0
    def new(a):
        for line in range(2):
            print(a)
            a +=1
    new(a)

    0
    1


    А вообще, это описано в любом учебники по Python. Читать не пробовали?
    Ответ написан