Pull to refresh

Comments 15

Интересно, спасибо за статью!
При поиске полезных ресурсов, тоже находил фактически только на английском, поэтому вопрос:
попадалось ли что на русском, достойное внимания?
(Лично не находил, но может ваш опыт более успешен)
Если честно, я на русском языке материалы не искал. Беглый гуглинг показал, что есть перевод на русский язык цикла статей с Медиума, который я указал в конце статьи. Добавил ссылку на перевод туда же.
Вот бич любой хайповой технологии — гигантский разрыв между уровнем знаний от «вводных статей for beginners» и уровнем знаний, необходимых для успешного и эффективного применения технологии в реальных задачах.
Лет 10 назад можно было купить книжку PHP5+MySQL+JQuery, склеить куски плохого и непонятного кода в сайт и даже продавать кому-то эти навыки. А теперь всё то же самое, но про ML, Deep Learning и прочий Data Science. Вот только, когда хочешь уйти от уровня «установили питон, импортнули sklearn, обучили модель, посмотрели точность», то открывается бездна информации. Т.е. сегодня ты в эйфории от точности своего классификатора предложений, а завтра ты по несколько раз перечитываешь каждый абзац какой-нибудь каноничной книжки, типа The Elements of Statistical Learning, изо всех сил вспоминая все прогулянные пары матана, линала и матстата и силясь уложить этот фундамент в своей голове. И разрыв настолько огромен, что писать про простоту ML — это злостное введение в заблуждение.
Что, конечно, не отменяет того факта, что с помощью ML изредка можно с минимумом усилий всё-таки получить ограничено работоспособную функциональность, и она даже может иметь какую-то ценность.
ИМХО, конечно.
Полностью с вами согласен. Если копнуть чуть глубже, то небходимо прочитать и усвоить неимоверное количество информации, которая достаточно непроста для восприятия. Именно это и подтолкнуло меня к использованию Scikit-learn вместо Tensorflow, который требует более глубокого понимания предмета. Пробелы в знаниях в области математики и статистики отпугивали меня от того, чтобы начать изучать тему, но вот такая простая демка дала запал продолжать копаться.
Если не трудно могли бы вы порекомендовать книги по данной теме, кроме уже упомянутой? Буду очень благодарен.
Можно начать с замечательной серии статей от сообщества ODS; там же найдете примеры кода и ссылки на источники.

Рекомендую курс Machine Learning от Стенфорда на Coursera.

Чтобы что-то советовать, нужно самому хорошо в этом разбираться) Я могу лишь сказать, какие источники мне понравились:
— курс лекций Воронцова по Машинному обучению www.youtube.com/playlist?list=PLJOzdkh8T5kp99tGTEFjH_b9zqEQiiBtC
— канал Основы Анализа Данных www.youtube.com/channel/UCLk-Oih8VlqF-StidijTUnw
— если хороший английский (а я не знаю, как без него можно заниматься ML), то канал Den Lambert с его лекциями по эконометрике www.youtube.com/channel/UC3tFZR3eL1bDY8CqZDOQh-w
— опять же, если хороший английский, то лекции MIT OpenCourseWare по всему тому, что забылось со времён вуза: линал, матан, матстат.
— с книгами сложнее. очень много книг сделаны по принципу «пробежимся по верхам с примерами на R/Python». есть неплохие, они позволяют быстро познакомиться с библиотеками. но если хочется что-то более фундаментальное, то это либо огромные талмуды про один конкретный подход (типа 1000 чтраниц про Deep Learning или 1000 страниц про регрессию), либо очень абстрактные книги (как указанная выше ESL), либо опять же всё по верхам. Мне понравилась книжка Питера Флаха «Machine Learning: The Art and Science of Algorithms That Make Sense of Data». Есть на русском от ДМК-Пресс.

И да, ниже правильно упомянули сообщество ODS, у которого есть слак канал с кучей информации и отзывчивыми пользователями. Туда же сообщество machinelearning.ru.
Подпишусь под каждым словом. Полное осознание того, где мне в итоге пригодилось бы столько знаний по линейке (и не только), которыми меня пичкали в ВУЗе 15 лет назад, пришло совсем недавно, когда я обратил внимание на ML. Пытаюсь наверстать и освежить в памяти, но тяжко, очень. Хоть и действительно инетерсно.
Понимаете, проблема новичков ML не в том, чтобы разобраться как скачивать, устанавливать и подключать Scikit-learn/Tensorflow/новая модная либа, а именно в этом моменте:
В данном мы будем использовать алгоритм логистической регрессии.

Т.е. на данный момент написано, отлажено и выложено в открытый доступ огромное количество качественных библиотек. Появляются каждый день новые, клевые. Без понимания сути алгоритмов затык у начинающего произойдет именно в этот момент — какой алгоритм выбрать, какие параметры поставить, как понимать результаты?
UFO just landed and posted this here
Да, прямо во время генерации датасета, сразу приписивал 0 или 1:

def generate_random_emails_pure(nb):
    return [[get_random_name(letters) + '@' + get_random_domain(domains), "0"] for i in range(nb)]

def generate_random_emails_malicious(nb):
    return [[get_random_name(letters) + '@' + get_random_domain(domains) + get_random_injection(injections), "1"] for i in range(nb)]

def generate_random_injections(nb):
    return [[get_random_injection(injections), "1"] for i in range(nb)]

def main():
    emails = generate_random_emails_pure(20000)
    malicious_emails = generate_random_emails_malicious(20000)
    pure_injections = generate_random_injections(10000)

Повторюсь, что данные были сгенерированы самостоятельно, только потому что было невозможно найти сет разнообразных SQL инъекций. Можно было взять за основу готовый лист имейлов, но все те что я находил усиленно избегали специальных символов в локальной части адреса, хотя по определению любой из этих символов "!#$%&'*+-/=?^_`{|}~" может в ней присутсвовать.
UFO just landed and posted this here
Кстати, задача расстановки пропущенных запятых в русском тексте может быть решена с помощью ML? Текст этого поста как-то навеял…
Я правильно понимаю, что в Ваш датасет входят данные с sql injection и данные без sql запросов? То есть Вы не классифицируете нормальные sql запросы и инъекции?
Да все правильно. Модель проводит анализ данных, которые пользователь вводит в поле email, и если во входных данных присутствуют следы SQL Injection, то сигналит об этом, чтобы можно ответить котнрмерами на атаку.
Различать обычный SQL запрос и вредоносный не было моей целью.
Sign up to leave a comment.

Articles