Существует множество подходов и алгоритмов, которые можно использовать для машинного обучения. Разные задачи требуют разных подходов, и производительность алгоритмов различается в зависимости от решаемой задачи. На него влияют различные факторы, такие как доступные данные и обобщаемость обучающих данных по сравнению с прогнозируемыми данными. Выполненные действия предназначены для сравнения того, как разные модели работают, когда дело доходит до классификации, чтобы создать лучшую модель для классификации операторов как SQL-инъекций или нет.
Введение
Различные алгоритмы работают по-разному в зависимости от доступных данных и цели проекта. К одним и тем же данным применяются разные алгоритмы с разными подходами, чтобы определить, какая модель работает лучше, и выяснить причины. Цель состоит в том, чтобы проработать шаги, связанные с подготовкой данных, выбором модели, обучением модели и оценкой модели, чтобы создать более эффективные модели машинного обучения.
Код сравнивал различные алгоритмы классификации, чтобы определить, какие операторы лучше всего классифицируются как SQL-инъекции или нет. Используемый код и окончательная модель были реализованы с помощью Scikit Learn. Это связано с важностью выбора лучшей модели при разработке приложения машинного обучения.
Подготовка и анализ данных
Во время создания и оценки модели семь различных типов моделей оценивались на предмет их производительности на предоставленных данных, а именно: линейный дискриминантный анализ (LDA), стохастический градиентный спуск (SGD), алгоритм k-ближайших соседей (k-NN), случайные леса, два Наивные байесовские модели и модель машины опорных векторов. Были выбраны разные модели, поскольку они представляют собой методы классификации из разных категорий, например. LDA является линейным, а k-NN и случайные леса основаны на методах кластеризации и дерева решений соответственно.
Различные алгоритмы были обучены и протестированы с использованием одного и того же набора данных. Это гарантирует, что результаты сопоставимы, а различия не связаны с разными наборами данных. Затем каждая точность модели была сопоставлена с названием модели. Был использован метод удержания, при этом данные были разделены на наборы данных для обучения, тестирования и проверки.
Сначала был проведен EDA, чтобы лучше понять данные, и результаты выглядят так:
Затем данные были обработаны для подготовки к созданию модели, и результаты выглядят следующим образом:
После создания наборов данных для обучения, тестирования и проверки модели сравнивались по показателям их производительности, в частности по точности. Результаты следующие:
Затем производительность различных моделей была построена для всех моделей, и результаты были такими, как показано:
Интерпретация результатов
Из результатов видно, что SGD работает лучше, чем другие модели. Это связано с тем, что различные функции взаимодействуют сложным образом, но, вероятно, будут иметь одинаковые эффекты, например. как устроены n-граммы в предложениях. Наивный байесовский алгоритм работает лучше, чем случайный лес, несмотря на то, что это нелинейный алгоритм, демонстрирующий силу простых алгоритмов Наивный байесовский алгоритм даже при работе с нелинейными данными или когда события не являются независимыми. Это показывает важность экспериментов в развитии машинного обучения.
Чтобы получить доступ к записной книжке и данным, свяжитесь со мной или свяжитесь с нами по адресу https://tech-espace.firebaseapp.com.
Спасибо за ваше время и оставайтесь с нами.
NB: заметил, что скриншоты не так актуальны, как код, исправляю это.