Существует множество подходов и алгоритмов, которые можно использовать для машинного обучения. Разные задачи требуют разных подходов, и производительность алгоритмов различается в зависимости от решаемой задачи. На него влияют различные факторы, такие как доступные данные и обобщаемость обучающих данных по сравнению с прогнозируемыми данными. Выполненные действия предназначены для сравнения того, как разные модели работают, когда дело доходит до классификации, чтобы создать лучшую модель для классификации операторов как SQL-инъекций или нет.

Введение

Различные алгоритмы работают по-разному в зависимости от доступных данных и цели проекта. К одним и тем же данным применяются разные алгоритмы с разными подходами, чтобы определить, какая модель работает лучше, и выяснить причины. Цель состоит в том, чтобы проработать шаги, связанные с подготовкой данных, выбором модели, обучением модели и оценкой модели, чтобы создать более эффективные модели машинного обучения.

Код сравнивал различные алгоритмы классификации, чтобы определить, какие операторы лучше всего классифицируются как SQL-инъекции или нет. Используемый код и окончательная модель были реализованы с помощью Scikit Learn. Это связано с важностью выбора лучшей модели при разработке приложения машинного обучения.

Подготовка и анализ данных

Во время создания и оценки модели семь различных типов моделей оценивались на предмет их производительности на предоставленных данных, а именно: линейный дискриминантный анализ (LDA), стохастический градиентный спуск (SGD), алгоритм k-ближайших соседей (k-NN), случайные леса, два Наивные байесовские модели и модель машины опорных векторов. Были выбраны разные модели, поскольку они представляют собой методы классификации из разных категорий, например. LDA является линейным, а k-NN и случайные леса основаны на методах кластеризации и дерева решений соответственно.

Различные алгоритмы были обучены и протестированы с использованием одного и того же набора данных. Это гарантирует, что результаты сопоставимы, а различия не связаны с разными наборами данных. Затем каждая точность модели была сопоставлена ​​с названием модели. Был использован метод удержания, при этом данные были разделены на наборы данных для обучения, тестирования и проверки.

Сначала был проведен EDA, чтобы лучше понять данные, и результаты выглядят так:

Затем данные были обработаны для подготовки к созданию модели, и результаты выглядят следующим образом:

После создания наборов данных для обучения, тестирования и проверки модели сравнивались по показателям их производительности, в частности по точности. Результаты следующие:

Затем производительность различных моделей была построена для всех моделей, и результаты были такими, как показано:

Интерпретация результатов

Из результатов видно, что SGD работает лучше, чем другие модели. Это связано с тем, что различные функции взаимодействуют сложным образом, но, вероятно, будут иметь одинаковые эффекты, например. как устроены n-граммы в предложениях. Наивный байесовский алгоритм работает лучше, чем случайный лес, несмотря на то, что это нелинейный алгоритм, демонстрирующий силу простых алгоритмов Наивный байесовский алгоритм даже при работе с нелинейными данными или когда события не являются независимыми. Это показывает важность экспериментов в развитии машинного обучения.

Чтобы получить доступ к записной книжке и данным, свяжитесь со мной или свяжитесь с нами по адресу https://tech-espace.firebaseapp.com.

Спасибо за ваше время и оставайтесь с нами.

NB: заметил, что скриншоты не так актуальны, как код, исправляю это.