Торкнути лопатою

Першим кроком буде зайти на офіційний сайт TensorFlow і прочитати ML для початківців.

TensorFlow — це команда хакерів Google і найпопулярніша бібліотека ML, яка підтримує Python, Java, C ++ і Go.

Крім того, є Scikit-learn – ще одна бібліотека для ML, орієнтована на Python. Ключовими перевагами цієї бібліотеки є значна кількість готових алгоритмів. Існує підручник для визначення мови з текстом, написаним за допомогою Scikit-learn.

Отже, як приклад, поставимо таку мету – навчити модель визначати наявність SQL-ін’єкції в текстовому рядку.

Перш за все Набори даних Go

Різновид класифікаційного завдання – це коли алгоритм після отримання даних визначає конкретні категорії.

Функції називаються записами, у яких алгоритм шукатиме шаблони.

машинне навчання

Мітка називається категорією, до якої належать певні функції. Важливо пам’ятати, що вхідні дані можуть мати кілька ознак, але лише одну мітку.

Для цього завдання ми використаємо алгоритм навчання під наглядом. Це означає, що під час навчання алгоритм отримуватиме як функції, так і мітки.

За допомогою ML збір даних є пріоритетом №1 у вирішенні будь-якої проблеми.

Візьміть файл CSV із трьома типами даних: випадкові електронні листи (20 тис.), випадкові електронні листи з SQL-ін’єкціями (20 тис.) і чисті SQL-ін’єкції (10 тис.).

Тепер слід прочитати дані бенчмарку. Функція повертає аркуш X, який містить об’єкти, аркуш Y, який містить мітки для кожного об’єкта, і аркуш label_names. Останній просто містить текстове визначення для міток, яке необхідно для зручної обробки результатів.

Далі слід розділити дані на навчальні та тестові набори. Щоб функція cross_validation.train_test_split () була оптимальною, вона перетасує записи та поверне нам чотири набори даних — два навчальні та два тестові для функцій і міток.

Потім ми ініціалізуємо об’єкт векторизатора, який посимвольно зчитує передані дані, об’єднує їх у N-грами та переводить у числові вектори, які здатні сприймати алгоритм ML.

Подача даних

Наступним кроком є ​​ініціалізація конвеєра та передача його раніше створеному векторизатору та алгоритму, які ми будемо використовувати для аналізу нашого набору даних. Ось так виглядає алгоритм логістичної регресії.

Модель готова до обробки даних. Тепер ми передаємо навчальні набори функцій і міток у наш конвеєр, і модель починає навчання. У наступному рядку ми пропустимо набір тестів функцій через конвеєр, щоб отримати кількість правильно вгаданих даних.

Якщо ви хочете знати, наскільки модель правильна для прогнозування результатів, ви можете порівняти припущені дані та тестовий аркуш міток.

Точність моделі визначається значенням від 0 до 1 і може бути переведена у відсотки. Ця модель повертає правильну відповідь у 100% випадків. Звичайно, використовуючи реальні дані, досягти такого результату буде нелегко, а завдання відносно просте.

Останнім штрихом є збереження моделі у навченому вигляді, щоб її можна було використовувати без повторного навчання в будь-якій іншій програмі Python. Ми серіалізуємо модель у файл pickle за допомогою вбудованої функції Scikit-learn:

Невелика демонстрація використання серіалізованої моделі в іншій програмі.

На виході ми отримаємо такий результат:

Як бачите, модель впевнено визначає атаки SQL-ін’єкції.

Перші кроки в машинному навчанні

Висновок

У результаті ми маємо добре навчену модель для визначення SQL-ін’єкцій. Теоретично, ми можемо вставити його у бекенд. Крім того, у разі ін’єкційних атак планується перенаправити всі підроблені запити, щоб приховати всі можливі вразливості.

Це перші кроки у сфері машинного навчання. Наша пристрасть до машинного навчання та штучного інтелекту не випадкова, оскільки одне з наших рішень, наприклад LS Intranet уже містить їхні розумні алгоритми. Щоб дізнатися більше про нашого штучного помічника для корпорацій, прочитайте цю копію.

Сподіваємося, ті, кого програмування лякає, знайдуть цей матеріал цікавим і надихнуться почати власну подорож машинного навчання.

Leave a Comments

Your email is safe with us.
*
*

Demo Request


    This is your first step to a new level of effective collaboration and productivity







     

    ×
    Order Request


      This is your first step to a new level of effective collaboration and productivity







      Please select a pricing plan




      ×
      Become a Partner


        We're always looking for a new opportunities, so Microsoft Partners from all over the world are welcomed for partnership negotiation.







        Yes, subscribe me to LS Intranet Newsletters

         

        ×
        Basic Plan Widgets

         

        Menu Photos
        News Feed Anniversaries
        Slider Blogs
        Idea Box Rewards
        Surveys Jobs
        Upcoming events Birthdays
        Newcomers  

        More about Tools, Widgets, and Modules

        ×
        Basic Plan Modules

         

        Advanced Search

        Team Sites

        Branches

        Single Settings Page

        Alerts

        Department Sites

        Document Repositories

         

        More about Tools, Widgets, and Modules

        ×
        Request Download White Paper





          ×

          Thank you for your interest in seeing an LS Intranet demo — Leading AI and Bot Enabled Modern Intranet

          An LS representative will contact you shortly to schedule your demo day/time. Can’t wait? You can choose your own schedule here

          ×
          Demo Request







             

            ×
            Запит демо


              Це ваш перший крок до нового рівня ефективної співпраці та продуктивності







               

              ×
              Запрос демо


                Это ваш первый шаг к новому уровню эффективного сотрудничества и производительности.







                 

                ×
                Віджети базового плану

                 

                Меню Фотографії
                Стрічка новин Ювілеї
                Слайдер Блог
                Банк ідей Нагороди
                Опитування Вакансії
                Майбутні події Дні народження
                Новачки  

                Докладніше про інструменти, віджети та модулі

                ×
                Модулі базового плану

                 

                Розширений пошук

                Сайти команд

                Відділення

                Єдина сторінка налаштувань

                Оповіщення

                Сайти відділів

                Сховища документів

                 

                Докладніше про інструменти, віджети та модулі

                ×
                Замовлення продукту


                  Це ваш перший крок до нового рівня ефективної співпраці та продуктивності







                  Виберіть тарифний план




                  ×
                  Виджеты базового плана

                   

                  Меню Фотографии
                  Лента новостей Юбилеи
                  Слайдер Блог
                  Банк идей Награды
                  Опросы Вакансии
                  Предстоящие события Дни рождения
                  Новички  

                  Подробнее об инструментах, виджетах и модулях

                  ×
                  Модули базового плана

                   

                  Расширенный поиск

                  Сайты групп

                  Ветви

                  Одна страница настроек

                  Оповещения

                  Сайты отделов

                  Репозитории документов

                   

                  Подробнее об инструментах, виджетах и модулях

                  ×
                  Заказ продукта


                    Это ваш первый шаг к новому уровню эффективного сотрудничества и производительности.







                    Пожалуйста, выберите тарифный план




                    ×