Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Перевірені методики IBM Business Analytics: Класифікація текстів з використанням IBM SPSS Modeler

  1. Серія контенту:
  2. Цей контент є частиною серії: Перевірені методики IBM Business Analytics
  3. призначення
  4. застосовність
  5. винятки
  6. допущення
  7. огляд
  8. Постановка завдання і підхід до її вирішення
  9. Архітектура і розробка системи
  10. Архітектура та проектування
  11. Малюнок 1. Архітектура рішення для класифікації текстів на базі методу SVM
  12. Розробка рішення на базі процесу CRISP-DM
  13. розуміння завдання
  14. розуміння даних
  15. Таблиця 1. Загальна схема вхідних даних для будь-якого класифікатора текстів
  16. Таблиця 2. Приклад вхідних даних про дефекти програмного забезпечення
  17. Попередня обробка даних
  18. Малюнок 2. Модуль вибору ознак включає токенізатор термінів, за яким слід набір фільтрів для відбору...
  19. Таблиця 3. Фрагмент списку загальних ключових слів
  20. Малюнок 3. Фрагмент матриці ознак, згенерованої з даних про дефекти програмного забезпечення
  21. Малюнок 4. Потік SPSS Modeler для створення SVM-класифікатор
  22. оцінка
  23. Малюнок 5. Конфігурація вузла Analysis для відображення середньої точності, згрупованої по піднаборі
  24. Малюнок 6. Приклад виведення для модуля вибору ознак і генерування векторів ознак
  25. Малюнок 7. Вибір файлу векторів ознак в якості вхідних даних для побудови SVM-моделі в SPSS Modeler
  26. Налаштування параметрів генерування і вибору ознак
  27. Налаштування параметрів побудови SVM-моделі
  28. Малюнок 9. Параметри для побудови SVM-моделі з використанням вузла SPSS
  29. вибір параметрів
  30. Таблиця 4. Оптимальна конфігурація набору параметрів для досягнення найкращої середньої точності
  31. Таблиця 5. Загальна точність запропонованої системи, отримана з вузла Analysis, для прикладу даних...
  32. Ресурси для скачування

Наша взаимовыгодная связь https://banwar.org/

Перевірені методики IBM Business Analytics

Серія контенту:

Цей контент є частиною # з серії # статей: Перевірені методики IBM Business Analytics

http://www.ibm.com/developerworks/analytics/practices.html

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Перевірені методики IBM Business Analytics

Слідкуйте за виходом нових статей цієї серії.

призначення

Програмне забезпечення для інтелектуального аналізу допомагає знаходити неочевидні, приховані закономірності у великих наборах даних. У зв'язку зі стрімким зростанням обсягів текстової інформації класифікація текстів стала одним з ключових методів організації текстових даних. Класифікатори на базі методу опорних векторів (Support Vector Machines, SVM) з поданням текстових даних у вигляді набору слів (Bag-of-Words, BoW) демонструють високу ефективність класифікації в плані точності результатів і можливості узагальнення. Основними проблемами класифікації є витяг ознак і вибір параметрів SVM для досягнення найвищої ефективності. У статті пропонується загальна структура для створення класифікаторів текстів на базі IBM SPSS Modeler і Java без використання предметно-орієнтованих словників.

У статті розповідається про створення системи класифікації текстових документів із застосуванням методу SVM і пропонується детальний опис проектування і реалізації такої системи з використанням IBM SPSS Modeler і Java. Крім того, демонструється застосування цього рішення для класифікації даних про дефекти програмного забезпечення, яка підтримує процеси інтелектуальної розробки програмних продуктів. На закінчення описуються етапи проведення експерименту і отримані результати.

застосовність

Описаний в статті проект розроблений з використанням ПЗ IBM SPSS Modeler 16.

винятки

У документі не представлена ​​докладна інформація про кожен описаному елементі і не наводяться покрокові інструкції. Метою документа є надання загального огляду проекту та опис деяких використовуваних аналітичних методів.

допущення

Передбачається, що читач знайомий з IBM SPSS Modeler і має досвід програмування на мові Java.

огляд

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

Важливим застосуванням класифікації тексту в розробці програмного забезпечення є ортогональна класифікація дефектів (Orthogonal Defect Classification, ODC) [1] , Що є перевіреним методом аналізу і виправлення дефектів програмного забезпечення. Однак ODC вимагає текстового опису дефектів для їх коректної класифікації. Одним з підходів є класифікація дефектів вручну, але подібний підхід, безумовно, непридатний до значних обсягів даних про дефекти, тому виникає потреба в механізмі класифікації, що дозволяє автоматично розподіляти наступні опису дефектів по попередньо визначених категорій для виконання відповідних дій.

В даний час існує безліч методів класифікації текстів, включаючи дерева рішень, застосування правил і метод опорних векторів (Support Vector Machines, SVM) [2] . Останній виявився більш ефективним, ніж інші методи. У даній статті описується структура для створення класифікатора, що дозволяє класифікувати текстові дані про дефекти, а також можливості її узагальнення для застосування до інших типів текстових даних [3] .

Опис пропонованого рішення викладено в двох статтях - основної та додаткової, посилання на яку наведено в розділі «Завантаження». Основна стаття має таку структуру:

Додаткова стаття містить деталі алгоритмів і формул, що використовуються в рішенні, а також допоміжний матеріал.

Постановка завдання і підхід до її вирішення

У цьому розділі наведено формальне визначення розглянутої задачі і загальний підхід до її вирішення. Є набір навчальних записів xi, де i приймає значення від 1 до l (кількість навчальних записів). Кожен запис xi є вектором ознак, які мають розмір k. З кожним записом xi пов'язана мітка yi, де i приймає значення від 1 до m (кількість визначених класів). Класифікація може розглядатися як функція відображення yi = f (xi), яка кожної вхідний записи зіставляє один з визначених класів. Завдання створення класифікатора полягає в оцінці функції (класифікатора) f *, яка забезпечує максимальну середню точність класифікації. Точність класифікації для кожного класу - це відношення кількості коректно класифікованих записів (f * (xi) = f (xi)) до загальної кількості записів в класі. Середня точність обчислюється для всіх визначених класів.

Для класифікації текстів необхідно перетворити кожну вхідну текстову запис в вектор ознак, щоб отримати можливість побудувати класифікатор. Це буде детально продемонстровано в наступному розділі в темі Попередня обробка даних .

Архітектура і розробка системи

Для вирішення завдань інтелектуального аналізу даних і інтелектуального аналізу використовується стандартний процес CRISP-DM (Cross Industry Standard Process for Data Mining) [13] . У цьому розділі представлені архітектура класифікатора текстів із застосуванням методу SVM і принцип її розробки на базі процесу CRISP-DM з використанням Java і IBM SPSS Modeler.

Архітектура та проектування

На малюнку 1 показана архітектура рішення, що включає три основних компоненти:

  1. Попередня обробка даних - цей компонент забезпечує попередню обробку вхідних текстових даних для генерування векторів ознак на базі моделі Bag-of-Words [3] .
  2. Побудова і оцінка моделі - цей компонент забезпечує побудова моделі класифікації на базі згенерованих векторів ознак. Набір вхідних векторів ознак поділяється на піднабори training (навчання), test (тестування) та validation (перевірка). Поднабор training використовується для початкової оцінки SVM-моделі класифікації. Поднабор test використовується для більш точного налаштування початкових параметрів. Поднабор validation використовується для визначення ефективності моделі.
  3. Репозиторій даних - цей компонент забезпечує зберігання даних, що використовуються в рішенні, і управління ними. Є два основних типи даних - вхідні дані і згенеровані вектори ознак, а також допоміжні дані, які використовуються в компоненті попередньої обробки даних.
Малюнок 1. Архітектура рішення для класифікації текстів на базі методу SVM
Перевірені методики IBM Business Analytics   Серія контенту:   Цей контент є частиною # з серії # статей: Перевірені методики IBM Business Analytics   http://www

Проектування пропонованого рішення має дві мети:

  1. Узагальнення. Генерування і вибір ознак не залежить від будь-яких предметно-орієнтованих словників. Кожен термін у документі розглядається як ознака, що використовується при класифікації. Крім того, для моделі класифікації обраний метод SVM, який забезпечує краще узагальнення, ніж інші методи класифікації, і дозволяє уникнути перенавчання (overfitting). Це важливо при класифікації текстів, оскільки згенеровані вектори ознак зазвичай бувають розрідженими, що підвищує ймовірність перенавчання.
  2. Модульність. Компоненти цього рішення можна легко модифікувати і / або замінювати. Наприклад, розробник може при необхідності додавати або видаляти фільтри при виборі ознак. Для побудови моделі класифікації розробник може замінити SVM на будь-який інший метод класифікації, який використовує модель Bag-of-Words [3] , Такий як k-NN (K-Nearest Neighbours, метод k найближчих сусідів) або дерева рішень.

Розробка рішення на базі процесу CRISP-DM

Як і в будь-яких інших проектах з інтелектуального аналізу даних, стандартним процесом для розробки є CRISP-DM. У цьому розділі наведені завдання з розробки архітектури рішення (див. Малюнок 1) на базі процесу CRISP-DM. Детально описується процес розробки і наводяться рекомендовані методики для досягнення найкращих результатів.

Спочатку коротко обговоримо основні етапи процесу CRISP-DM:

  • розуміння завдання
  • розуміння даних
  • Попередня обробка даних
  • моделювання
  • оцінка
  • розгортання

У представленому тут проект етап попередньої обробки даних розробляється в середовищі Java, етапи моделювання та оцінки розробляються в SPSS Modeler, а репозиторій даних розробляється з використанням простих електронних таблиць Excel.

розуміння завдання

Метою проекту є створення системи класифікації нових текстових даних на основі визначеного набору класів. Ця система повинна працювати без будь-яких предметно-орієнтованих словників. Вхідними даними є набір забезпечених мітками текстових записів.

розуміння даних

Далі наведені формальний опис моделі вхідних даних, опис функцій полів в створенні класифікатора і приклад очікуваних даних.

Вхідними даними є таблиця забезпечених мітками записів з наступними полями:

  • Ідентифікатор - унікальний ідентифікатор кожного запису.
  • Текстові дані - текстові дані, з яких беруться ознаки для створення класифікатора.
  • Клас записи - використовується як мітка для кожного запису для створення класифікатора.

У таблиці 1 показана схема вхідних даних для будь-якого класифікатора текстів.

Таблиця 1. Загальна схема вхідних даних для будь-якого класифікатора текстів

Ідентифікатор Текстові дані Клас записи 1 T1 y1 I T2 yj L T3 ym

У таблиці 2 наведено приклад вхідних даних про дефекти програмного забезпечення.

Таблиця 2. Приклад вхідних даних про дефекти програмного забезпечення

Ідентифікатор Опис R_Trigger 42797 See this in regression run can not reproduce it.
03.06.25 JOB37915 + DFHKE0030 - Abend DC4 / AKEX in Program DFHS2PP Entry Point 00000000_28F34DB8.
03.06.25 JOB37915 + DFHKE0040 - Instruction Address: 00000000_01855F9E Offset in Program FFFFFFFF ... l_coverage 42803 It's not possible to build the BSF stream because two modules DFHADWB0 and DFHADDRM build with RC = 4. This is ... l_build 42323 I built an ICM to parse a schema that contains optional dateTime attributes.
on mapping level 2.2 I believe it provides a string representation but at level 3.0 CICS tries ... l_developer_test

Поле Опис в таблиці 2 відповідає полю Текстові дані в таблиці 1, а поле R_Trigger, яке представляє клас дефекту програмного забезпечення, описаний в цьому записі, відповідає полю Клас записи в таблиці 1.

Попередня обробка даних

Оскільки для створення класифікатора текстів планується використовувати метод Support Vector Machines, необхідна попередня обробка текстових даних, щоб перетворити їх в набір векторів ознак на базі уявлення Bag-of-Words [3] . Іншими словами, кожна текстова запис Ti буде перетворена в вектор xi = (x1, x2, ..., xij, ..., xik), де xij - це витягнутий термін. Як буде показано далі, кожен витягнутий термін відповідає ознакою, який буде використовуватися для створення і виконання класифікатора документів. Етап попередньої обробки можна розділити на два етапи:

  1. Вибір / скорочення ознак
  2. генерування ознак

Вибір / скорочення ознак

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

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

Токенізатор термінів

Для вилучення всіх можливих термінів з текстових даних в нашому випадку використовується простий токенізатор, в якому роздільниками є прогалини. Для простоти пропонована реалізація буде грунтуватися на термінах, що складаються з одного слова. Але після застосування токенізатора до реального документу виникає проблема отримання великих наборів ознак (що включають тисячі елементів) для кожного документа. В контексті методів класифікації ця проблема називається «прокляттям розмірності» (curse-of-dimensionality) [4] . Прокляттям - тому що в міру збільшення кількості ознак (нагадаємо, що кожен витягнутий з документа термін відповідає ознакою) час побудови моделі зростає експоненціально. Тому необхідні ефективні методи вибору з вхідних даних найбільш значущих термінів без істотної втрати інформації і подальшого негативного впливу на точність класифікації. Ось чому для створення класифікатора необхідний вибір ознак.

Фільтр мінімальної частоти документів

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

Фільтр загальних термінів

Будь-який текст містить загальні терміни, які не є предметно-орієнтованими і мають низьку дискримінаційну здатність для розподілу записів за категоріями. Ми використовуємо список з 5000 найбільш вживані слова та / або лем, взятих з найбільшого і збалансованого корпусу американської англійської мови Corpus of Contemporary American English, що включає 450 мільйонів слів [5] . У таблиці 3 показаний фрагмент списку термінів, які використовуються нами в фільтрах.

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

Загальні слова The Be And Of A Do Go They ...

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

  • Вхідні дані можуть бути не чистими. Наприклад, слово enough (досить) вважається загальним ключовим словом, але в зв'язку з помилками або іншою причиною виникнення помилок в даних воно може виглядати як enoug, enogh, enougth і т. Д. Такі слова пройдуть через фільтр, що небажано.
  • Загальні слова зберігаються в вихідному репозиторії як леми і можуть з'являтися у вхідних текстових даних як морфологічні варіанти. Наприклад, слово produce (виробляти) є загальним терміном, але може з'являтися в формах produced, product, producing і т. Д. Безпосередній пошук не дозволяє видаляти такі варіанти.

Інтуїтивне рішення для цих двох проблем полягає в тому, щоб видаляти з тексту будь-яке слово, яке схоже якомусь слову в списку загальних термінів, а не просто збігається з ним. Для реалізації цього підходу необхідно спочатку визначити міру схожості двох слів. В даному випадку для оцінки схожості кожного витягнутого терміна з елементами в списку загальних слів використовується нормалізована міра схожості Левенштейна [6] [7] . Фільтри загальних термінів відкидають термін, якщо його показник схожості з будь-яким загальним терміном перевищує задане граничне значення. Після виконання цього фільтра більшість загальних термінів, що з'являються як леми або морфологічні варіанти, або навіть введених з друкарськими помилками, повинні бути видалені. Більш детальна інформація про це фільтрі приведена в розділі 1.1 додаткового документа, доступного для завантаження в кінці цієї статті.

Фільтр приросту інформації

Після видалення загальних слів необхідно витягти терміни, які найбільш корисні для класифікації текстів. Корисність означає найвищу дискримінаційну здатність для віднесення містять такі терміни документів до правильного класу. Для оцінки дискримінаційної здатності в даному випадку використовується приріст інформації (information gain, IG) кожного терміна, або ентропія. IG-фільтр працює наступним чином: для кожного терміна, що надходить з попередніх фільтрів, обчислюється IG, а потім вибирається співвідношення з термінів, які мають найвищі значення IG. Більш детальна інформація про це фільтрі приведена в розділі 1.2 додаткового документа, доступного для завантаження в кінці цієї статті.

Фільтр загальних слів поміщений перед фільтром приросту інформації з наступних причин:

  • Загальні терміни визначаються як слова, які найбільш часто зустрічаються в більшості документів англійською мовою, тому зрозуміло, що їх коефіцієнт приросту інформації в будь-якому випадку буде низьким.
  • Складність обчислень визначається як O (ldk), де l - це кількість записів в навчальних даних, d - це кількість термінів (розмірність векторів ознак), k is - це кількість класів. Застосовуючи фільтр загальних термінів перед IG-фільтром, можна значно зменшити значення d, що скорочує час виконання IG-фільтра.

інші фільтри

Залежно від області застосування додаються інші фільтри. Наприклад, в даному експерименті з даними про дефекти доданий фільтр для видалення числових токенов (повністю складаються з цифр).

генерування ознак

Тепер, после Вибори поднабора термінів, найбільш корисних в контексті класіфікації, для шкірного запису є набір Ознака (нагадаємо, что КОЖЕН срок розглядається як ознака). Наступний кроком є ​​обчислення важлівості кожної ознака в кожному документі. У нашому випадку показником важливості ознаки є добре відома статистична міра Term Frequency-Inverse Document Frequency (tf-idf). Оскільки для кожного запису є вектор ознак, така сукупна структура даних іноді називається матрицею ознак (згадайте, що матриця - це група векторів). Більш детальна інформація наведена в розділі 1.3 додаткового документа, доступного для завантаження в кінці цієї статті.

Після обчислення показників tf-idf для всіх термінів / ознак в навчальних даних генерується матриця ознак, що має наступну структуру:

  • Кожен рядок представляє запис - в нашому випадку кожен запис є документом з унікальним ідентифікатором.
  • Кожен стовпець представляє унікальний ознака / термін.
  • Кожна клітинка в матриці має значення tf-idf для конкретного терміна (відповідного стовпчика) в конкретному документі (відповідному рядку).

На малюнку 3 показаний фрагмент матриці ознак, згенерованої з даних про дефекти в програмному забезпеченні. Ця матриця використовується при побудові SVM-моделі для класифікації документів. Наприклад, на малюнку 3 виділена комірка, що відноситься до запису з ідентифікатором 8219 і ознакою dfhke003 (витягнутий термін), яка включає коефіцієнт важливості цієї ознаки для цього документа - показник tf-idf має значення 15,8488.

Малюнок 3. Фрагмент матриці ознак, згенерованої з даних про дефекти програмного забезпечення

моделювання

Після перетворення даних в модель Bag-of-Words можна без втрати спільності переформулювати розглянуту задачу в наступну задачу бінарної класифікації: є набір записів з векторами ознак xi, які необхідно розподілити по класах yi = {- 1,1}. В SVM потрібно знайти гіперплоскость, яка найкращим чином розділяє елементи даних на два класи. Більш детальна інформація наведена в розділі 1.4 додаткового документа, доступного для завантаження в кінці цієї статті.

На малюнку 4 показаний потік SPSS Modeler для побудови та оцінки SVM-моделі, призначеної для класифікації текстових документів. Потік включає вузли для читання векторів ознак, поділу вхідних записів, побудови моделі і оцінки моделі.

Малюнок 4. Потік SPSS Modeler для створення SVM-класифікатор

Вузол Input Data призначений для читання CSV-файлу, який містить таблицю векторів ознак, що згенерувала з використанням модуля попередньої обробки даних. Вузол Filter використовується для видалення будь-яких непотрібних полів, таких як ідентифікатор запису, який зазвичай забирається, оскільки не використовується в моделюванні. Крім того, в прикладі з даними про дефекти після застосування фільтрації деякі маркери з'являються, але вони не мають ніякого значення в предметної області, тому видаляються. Зверніть увагу, що в вузлах Data Audit фільтрація скоротила кількість полів з 2896 до 2881.

Вузол Partition розділяє дані на три групи - training, test і validation (навчання, тестування і перевірка). При створенні будь-якої моделі класифікації рекомендується розділяти вхідні дані на такі групи. Поднабор training використовується для побудови моделі з заданими параметрами і оцінки (первісної) її внутрішніх коефіцієнтів. Поднабор test використовується для тестування точності класифікації з метою налаштування параметрів навчання моделі, її повторного побудови та оновлення її внутрішніх коефіцієнтів для підвищення точності. Поднабор validation використовується для оцінки точності класифікації нових даних. Поднабор validation не впливає на процес побудови моделі безпосередньо (як дані для навчання) або опосередковано (як дані для тестування), тому визначення точності на базі поднабора validation є хорошим методом оцінки ефективності застосування побудованого класифікатора до нових Непомічені даними.

Вузол Type вказує роль кожного поля. Всі поля з витягнутими ознаками позначаються як Input (вхідні дані) для навчання класифікатора, а поле Category відзначається як Target (результат) для використання в якості поля класу для кожного запису.

Category_SVM - це вузол побудови SVM-моделі з використанням витягнутих ознак як вхідних даних і поля Category як результату (відповідно до конфігурації вузла Type). Ми використовує режим Expert для отримання більшого контролю при налаштуванні параметрів класифікатора. Основною проблемою буде вибір кращого набору параметрів для отримання максимально можливої ​​точності. У розділі Налаштування експерименту і вибір параметрів демонструється вибір параметрів і описується, як налаштувати значення для SVM-моделі.

оцінка

Вузол Analysis в потоці SPSS Modeler використовується для оцінки ефективності моделі шляхом порівняння передбаченого значення класу з вихідним класом для кожного поднабора (training, test і validation). Він показує середню точність моделі при її застосуванні до кожного піднаборі. Точність класифікації для кожної категорії обчислюється як відношення кількості коректно класифікованих записів до загальної кількості записів в цій категорії. Середня точність обчислюється для всіх категорій.

У розділі Налаштування експерименту і вибір параметрів детально описується настройка експерименту і наводяться результати визначення точності, показані в вузлі Analysis. На малюнку 5 показано конфігурація вузла Analysis для відображення середньої точності класифікації для всіх категорій, згрупованої для кожного поднабора. Зверніть увагу, що в поле Separate by partition поставлена позначка, щоб розділяти результати визначення точності по піднаборі training, test і validation. Це дозволить вибрати найкращі значення параметрів і уникнути проблеми перенавчання. Перенавчання виникає в тому випадку, коли точність є дуже високою на піднаборі для навчання і тестування і дуже низькою на піднаборі для перевірки. Це означає, що модель стає прив'язаною до даних для навчання і тестування і не є достатньо загальної для класифікації будь-яких нових вхідних даних.

Малюнок 5. Конфігурація вузла Analysis для відображення середньої точності, згрупованої по піднаборі

розгортання

Розгорнемо наше рішення як інтеграцію процесів між Java-програмою для попередньої обробки даних і потоком побудови моделі з SPSS Modeler. Більш докладний опис файлів, що згадуються в цьому розділі, наведено в розділі 2 додаткового документа. Компоненти для попередньої обробки даних розгортаються як окрема Java-програма, що генерує файл векторів ознак в форматі CSV (Comma Separated Values), потім цей CSV-файл використовується як вхідні дані в потоці SVM-класифікатор.

Java-програма для попередньої обробки даних має наступні залежності: commons-lang3-3.3.2.jar [8] , javacsv.jar [9] , jxl.jar [10] . Ці бібліотеки можна завантажити, скориставшись відповідними посиланнями в розділі «Ресурси». Для використання модуля попередньої обробки виконайте наступні дії:

  1. Відредагуйте файл конфігурації config.properties, вказавши шляхи вхідних і вихідних файлів, а також параметри для фільтрів вибору ознак. У файлі конфігурації міститься документація для кожної змінної. У наступному розділі буде детально описаний вибір параметрів.
  2. Завантажте зазначені вище бібліотеки і збережіть їх в каталог SVM_FV_Gen_lib, який знаходиться в тому ж каталозі, де розміщена програма генерування векторів ознак SVM_FV_Gen.jar.
  3. Запустіть SVM_FV_Gen.jar командою java -jar SVM_FV_Gen.jar config.properties.
  4. У вихідному каталозі, заданому у файлі конфігурації, будуть створені CSV-файли зі згенерували векторами ознак. Для цих файлів використовується наступна угода про іменування (див. Рисунок 6):
    fv_textField_ <заголовок стовпчика з текстовими даними> _nfrac_ <значення частки IG> _commSim_ <порогове значення для схожості з загальними словами> _minDF_ <мінімальний поріг частоти документів> _removeAllDigits_ <значення прапора для видалення числових токенов> .csv
Малюнок 6. Приклад виведення для модуля вибору ознак і генерування векторів ознак

Згенерований файл векторів ознак відправляється в потік SPSS Modeler для побудови SVM-моделі. Модель будується з використанням створеного нами потоку наступним чином:

  1. В SPSS Modeler відкрийте потік SVM_Stream.str.
  2. Виберіть необхідний файл векторів ознак для вузла Input Data, як показано на малюнку 7.
    Малюнок 7. Вибір файлу векторів ознак в якості вхідних даних для побудови SVM-моделі в SPSS Modeler
  3. Запустіть потік кнопкою Run. Згенерує зліпок моделі (nugget) з ім'ям Category_SVM (див. Малюнок 8).
    Малюнок 8. Запуск будівника SVM-моделі

Налаштування експерименту і вибір параметрів

Описана в статті система має параметри, які можна розділити на дві основні групи:

  • параметри генерування і вибору ознак,
  • параметри побудови SVM-моделі.

Налаштування параметрів генерування і вибору ознак

Ці параметри конфигурируются в файлі config.properties. Нижче наведено перелік параметрів з описами.

  • inputDataFileName - шлях до вхідного файлу .XLS, який містить текстові записи для створення класифікатора;
  • commonTermsListFilePath - шлях до файлу .XLS, який містить список загальних ключових слів для етапу фільтрації в модулі вибору ознак;
  • minTermDocFreqThr - порогове значення мінімальної частоти документів для кожного терміна для проходження через фільтр;
  • logFilePath - шлях файлів журналів;
  • idFieldColHeader - заголовок стовпця, що містить ідентифікатори записів;
  • textFieldColHeader - заголовок стовпця, що містить текстові дані, які використовуються для створення класифікатора;
  • categoryFieldColHeader - заголовок стовпця, що містить класи для класифікації (в нашому прикладі це категорія кожного запису, що представляє дефект програмного забезпечення);
  • commonKeywordSimilarityThresholdVals - список значень, розділених комами, для фільтра видалення загальних термінів; при зменшенні порогового значення фільтр стає більш консервативним і видаляє більше термінів, які виглядають загальними;
  • splitter - символ, який використовується для поділу значень у файлі конфігурації (в нашому прикладі кома);
  • fractionTopNumTermsIGvals - список значень частки обраних термінів для найбільшого приросту інформації;
  • commonKeywordSimilarityThresholdVals - список значень параметра порогового значення для фільтра загальних термінів;
  • minTermDocFreqThr - параметр для фільтра частоти документів;
  • removeAllDigitsTerms - прапор для визначення потреби у видаленні термінів, що містять тільки цифри;
  • outFeaturesVectorsDir - вихідний каталог для генерування векторів ознак.

Налаштування параметрів побудови SVM-моделі

Для побудови SVM-моделі з використанням згенерованих векторів ознак сконфігуріруем набір параметрів в режимі Expert, як показано на малюнку 9 і описано далі.

Малюнок 9. Параметри для побудови SVM-моделі з використанням вузла SPSS

Важливими параметрами для побудови SVM-моделі є наступні:

  • Stopping criteria (Критерії зупинки). Це різниця між розрахунковими внутрішніми коефіцієнтами SVM-моделі після кожної ітерації оптимізації в SVM з використанням алгоритму Sequential Minimal Optimization (SMO). Збільшення цього параметра буде підвищувати точність, збільшуючи час побудови моделі.
  • Regularization parameter (C) (Параметр регуляризації). Цей параметр вказує вагу для суми помилок в SVM в цільової функції для оцінки оптимальної гіперплощини в SVM (див. Документ в розділі «Завантаження» для отримання додаткової інформації). Він встановлює баланс між помилкою на навчальному наборі (в межах вибірки) і відступом. Наприклад, при збільшенні параметра C метод SVM визначає гіперплоскость таким чином, що елементи навчання стають ближче до кордонів класифікації і розділяє відступ зменшується, що може призводити до неправильної класифікації нових елементів поблизу кордонів (тобто до перенавчання). При зменшенні параметра C метод SVM стає більш консервативним, оскільки відступ збільшується і помилку класифікації навчальних елементів присвоюється меншу вагу. Іншими словами, збільшення C підвищує точність на навчальних даних, але може привести до перенавчання.
  • Kernel type (Тип ядра). Функція ядра використовується для нелінійного зіставлення конкретного вектора ознак з простором вищої розмірності, при якому підвищується лінійна разделяемость даних при збільшенні витрат на обчислення. Типовою функцією ядра є поліноміальна ступеня d радіально-базисна функція від гамма радіусу. Для отримання додаткової інформації про використання ядер в SVM ознайомтеся зі статтею [14] в розділі ресурси .

вибір параметрів

При виборі параметрів ми використовуємо простий підхід на базі полурешетчатого пошуку для визначення найкращого набору параметрів. Як уже згадувалося, критерієм оцінки для виконання гратчастого пошуку є загальна середня точність на піднаборі даних для тестування - тобто метод побудови моделі оцінює початкові внутрішні коефіцієнти моделі з використанням поднабора для навчання, перевіряє і настроює параметри моделі на базі поднабора для тестування. Цей підхід призводить до кращої точності і виключає проблеми перенавчання.

Ми припускаємо, що параметри (C, Kernel function і Stopping criteria) не корелюють, тому використовуємо наступний метод пошуку параметрів:

  1. Початкові налаштування параметрів (за замовчуванням в SPSS Modeler):
    • C = 10
    • Kernel function = Radial
    • Gamma = 1
    • Stopping criteria = 10-3
  2. Пробуємо значення параметра C від 0,1 до 1 з кроком 0,1 і від 10 до 100 з кроком 10, поки не буде знайдено значення з найкращого точністю на піднаборі навчальних даних.
  3. Для значення C, знайденого на кроці 2, пробуємо типи ядра Radial, Linear і Polynomial, поки не буде знайдено варіант, що забезпечує найкращу точність на наборі навчальних даних.
  4. Для ядра, знайденого на кроці 3, пробуємо наступні діапазони параметрів, поки не буде отримана найкраща точність:
    • Якщо kernel function = Radial, пробуємо Gamma від 0,1 до 5, додаючи 0,1.
    • Якщо kernel function = Polynomial, пробуємо Degree від 1 до 10, додаючи 1.
  5. Для критеріїв зупинки пробуємо від 10-3 до 10-6, множачи на 10-1.

Виконавши дії 2-5, ми отримали набір параметрів для побудови SVM-моделі. Було виявлено, що найкращу точність забезпечує набір параметрів, що наведені у таблиці 4.

Таблиця 4. Оптимальна конфігурація набору параметрів для досягнення найкращої середньої точності

Етап Ім'я параметра Значення параметра Вибір ознак minTermDocFreqThr 3 commonKeywordSimilarityThresholdVals 0.7 fractionTopNumTermsIGvals 0.8 removeAllDigits True Побудова моделі C 50 Kernel Type Polynomial Kernel Parameter Polynomial Degree = 6 Stopping criteria 10-3

Вихідний набір даних для навчання включає 4783 записів і одне текстове поле (Description). Згенерований вектор ознак містить таку ж кількість записів і 2896 полів. Побудова SVM-моделі виконувалося з використанням системи на базі двоядерного процесора Intel з тактовою частотою 2,7 ГГц і 1 ГБ оперативної пам'яті, зарезервованої для серверного процесу IBM SPSS Modeler Version 16. Для побудови моделі було потрібно 2 хвилини 10 секунд. У таблиці 5 показані результати точності, отримані з вузла Analysis, в порівнянні з вихідними даними, з передбачуваною категорією для кожного запису.

Таблиця 5. Загальна точність запропонованої системи, отримана з вузла Analysis, для прикладу даних про дефекти програмного забезпечення

Результати в вихідному поле Category в порівнянні з $ S-Category піднаборі 1_Training 2_Testing 3_Validation Коректно 2247 67,48% 516 65,16% 306 64,42% Невірно 1 083 32,52% 462 34,84% 169 35,58% Всього 3330 978 475

Ресурси для скачування

Схожі тими

  • Оригінал статті: IBM Business Analytics Proven Practices: A Framework For Text Classification Using IBM SPSS Modeler
  • [1] Orthogonal Defect Classification
  • [2] Cortes C, Vapnik V. Support-vector networks, Machine Learning, тому. 20, №3, с. 273-297, 1995 г.
  • [3] Charu C. Aggarwal, ChengXiang Zhai. Mining Text Data, 2013 р глава 6. A Survey of Text Classification Algorithms.
  • [4] David L. Donoho. Aide-Memoire. High-Dimensional Data Analysis: The Curses and Blessings of Dimensionality, Department of Statistics, Stanford University, лекції, 2000 г.
  • [5] Word Frequency Data: Corpus of Contemporary American English
  • [6] Moalla Z, Soualmia LF, Prieur-Gaston E, Lecroq T, Darmoni SJ. Proceedings of Network Tools and Applications in Biology, Spell-checking queries by combining Levenshtein and Stoilos distances, 2011 р
  • [7] VI Levenshtein. Binary Codes Capable of Correcting Deletions, Insertions and Reversals, Soviet Physics Doklady, том 10, №8, с. 707-710, лютий 1966 р
  • [8] (2014 року, квітень) Download Apache Commons Lang
  • [9] (2014 року) JavaCSV - Java-бібліотека для обробки csv-файлів
  • [10] (2013, березень) Java Excel API - A Java API to read, write and modify Excel spreadsheets
  • [11] Prabhakar Raghavan, Hinrich Schütze Christopher D. Introduction to Information Retrieval: Cambridge University Press, 2008 г., глава 6. Manning. Scoring, term weighting and the vector space model.
  • [12] Martin Law A Simple Introduction to Support Vector Machines
  • [13] Shearer C., The CRISP-DM model: the new blueprint for data mining, Journal of Data Warehousing (2000); 5: 13-22
  • Dustin Boswell [14] Introduction to Support Vector Machines , 6 серпня 2002 р

Підпішіть мене на ПОВІДОМЛЕННЯ до коментарів

Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: