- •Лабораторна робота №1 Інтелектуальний аналіз даних за допомогою програмного пакета weka
- •Регресійний аналіз
- •Створення набору даних для завантаження в weka
- •Файл даних для завантаження в weka
- •Завантаження даних в weka
- •Створення регресійної моделі в weka
- •Інтерпретація результатів регресійного аналізу
- •Готова модель регресійного аналізу
- •Розрахунок вартості будинку на базі готової моделі
- •Модель регресійного аналізу для визначення mpg
- •Обчислення показника mpg
- •Класифікація, кластеризація і метод найближчих сусідів
- •Регресійний аналіз
- •Класифікація
- •Кластеризація
- •Метод найближчих сусідів
- •Класифікація
- •Просте класифікаційне дерево
- •Набір даних для weka
- •Класифікація в weka
- •Результат роботи класифікаційної моделі weka
- •Кластеризація
- •Короткий огляд математичних методів
- •Набір даних для weka
- •Дані для кластерного аналізу засобами weka
- •Кластеризація в weka
- •Результати кластеризації
- •Лабораторна робота №3 Інтелектуальний аналіз даних за допомогою програмного пакета weka. Метод найближчих сусідів. Вступ
- •Метод найближчих сусідів
- •Математичний алгоритм методу найближчих сусідів
- •Математична модель методу найближчих сусідів
- •Набір даних для weka
- •Реалізація методу найближчих сусідів у weka
- •Контрольні запитання
- •Лабораторна робота №4 Знайомство з Statistica. Робота з таблицями даних і побудова графіків
- •Завдання 1. Робота з таблицями
- •Завдання 2. Побудова графіків
- •Завдання 3.
- •Описова статистика
- •Лабораторна робота 6 Лінійна регресія
- •Лабораторна робота №7 Багатофакторна регресія
- •Конторольні запитання
- •Лабораторна робота 8 Нелінійна регресія
- •Лабораторна робота 9 Часові ряди (виділення періодичних складових)
- •Список використаної літератури
Набір даних для weka
Набір даних, який ми будемо аналізувати методом найближчих сусідів, вам вже знайомий - це той же самий набір даних, який ми використовували для вивчення методу класифікації в попередній роботі, а саме, дані рекламної компанії вигаданого дилера BMW з продажу розширеної дворічної гарантії своїм постійним покупцям.
Наведемо тут ще раз короткий опис цього набору даних.
Дилерський центр має дані про 4500 продажів розширеної гарантії. Цей набір має такі атрибути:
розподіл за доходами
[0 = $ 0 - $ 30k,
1 = $ 31k-$ 40k,
2 = $ 41k-$ 60k,
3 = $ 61k-$ 75k,
4 = $ 76k-$ 100k,
5 = $ 101k-$ 150k,
6 = $ 151k-$ 500k,
7 = $ 501k+],
рік/місяць покупки першого автомобіля BMW,
рік/місяць покупки останнього автомобіля BMW,
чи скористався клієнт розширеною гарантією.
Файл даних для аналізу методом найближчих сусідів за допомогою пакету WEKA
@attribute IncomeBracket {0,1,2,3,4,5,6,7} @attribute FirstPurchase numeric @attribute LastPurchase numeric @attribute responded {1,0}
@data
4,200210,200601,0 5,200301,200601,1 ...
|
Реалізація методу найближчих сусідів у weka
Чому ми вирішили використовувати той же самий набір даних, яким ми скористалися для вивчення методу класифікації? Тому що, якщо ви пам'ятаєте отриманий нами результат, метод класифікації на цьому наборі даних виявився недостатньо точним (59% точності - з таким же успіхом можна просто намагатися вгадати шукану відповідь). Тепер ми спробуємо побудувати модель з більш високою точністю прогнозування та надати нашому вигаданому дилеру інформацію, придатну для практичного використання.
Завантажимо файл bmw-training.arff в WEKA, виконавши в закладці Preprocess вже знайомі нам кроки. Вікно WEKA має виглядати так, як показано на рис. 1.
Рис. 1. Дані дилерського центру BMW для аналізу методом найближчих сусідів за допомогою WEKA
Точно так само, як ми виконали це для методів регресійного аналізу та класифікації в попередніх роботах, ми повинні відкрити закладку Classify. В панелі Classify потрібно вибрати опцію lazy, а потім Ibk (тут IB означає Instance-Based - навчання на прикладах, а k вказує на кількість сусідів, поведінку яких ми хочемо дослідити).
Рис. 2. Алгоритм методу найближчих сусідів для набору даних BMW
Тепер ми готові приступити до створення нашої моделі в WEKA. Переконайтеся, що ви вибрали опцію Use training set , щоб використовувати набір даних, який ми тільки що завантажили в WEKA. Натисніть кнопку Start і дозвольте WEKA виконати всі необхідні обчислення. На рис. 3 показано, як має виглядати вікно WEKA по закінченні обчислень, далі приведена результуюча модель.
Рис 3. Модель методу найближчих сусідів для набору даних BMW Результат обчислень IBk
=== Evaluation on training set === === Summary ===
Correctly Classified Instances 2663 88.7667 % Incorrectly Classified Instances 337 11.2333 % Kappa statistic 0.7748 Mean absolute error 0.1326 Root mean squared error 0.2573 Relative absolute error 26.522 % Root relative squared error 51.462 % Total Number of Instances 3000 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.95 0.177 0.847 0.95 0.896 0.972 1 0.823 0.05 0.941 0.823 0.878 0.972 0 Weighted Avg. 0.888 0.114 0.893 0.888 0.887 0.972 === Confusion Matrix === a b <-- classified as 1449 76 | a = 1 261 1214 | b = 0 |
Як це співвідноситься з моделлю, яку ми отримали за допомогою методу класифікації? У моделі, що використовує метод найближчих сусідів, показник точності дорівнює 89% - зовсім непогано для початку, зважаючи на те, що точність попередньої моделі становила всього 59%. Практично 90% точності - це цілком прийнятний рівень. Давайте розглянемо результати роботи методу в термінах помилкових визначень, щоб на конкретному прикладі побачити, як саме WEKA може використовуватися для вирішення реальних проблем.
Результати використання моделі на нашому наборі даних показують, що у нас є 76 хибно-позитивних розпізнавань (2.5%) і 261 хибно-негативних розпізнавань (8.7%). У нашому випадку хибно-позитивне розпізнавання означає, що модель вважає, що даний покупець придбає розширену гарантію, хоча насправді він відмовився від покупки. Хибно-негативне розпізнавання, у свою чергу, означає, що згідно з результатами аналізу даний покупець відмовиться від розширеної гарантії, а насправді він її купив. Припустимо, що вартість кожної рекламної листівки, що розсилається дилером, становить $3, а купівля однієї розширеної гарантії приносить йому 400$ доходу. Таким чином, помилки помилкового розпізнавання в термінах витрат і доходів нашого дилера будуть виглядати наступним чином:
400$ - (2.5%*$3) - (8.7%*400) = $365.
Отже, помилкове розпізнавання помиляється на користь дилера.
Порівняємо цей показник з даними моделі класифікації:
400$ - (17.2%*$ 3) - (23.7%*$400) = $304.
Як ви бачите, використання більш точної моделі підвищує потенційний дохід дилера на 20%.
В якості самостійної вправи спробуйте змінити кількість найближчих сусідів в моделі (для цього розкрийте список параметрів, клацнувши правою кнопкою мишки на полі "IBk-K 1 ...."). Ви можете вибрати довільне значення для параметра "KNN" (До найближчих сусідів). Ви побачите, що точність моделі підвищується в міру додавання сусідів.
Зверніть увагу на певні недоліки моделі найближчих сусідів. Корисність цього методу цілком очевидна, коли мова йде про значні наборах даних, таких, наприклад, якими володіє Amazon. Маючи дані про 20 мільйонів користувачів нескладно отримати достатньо точний результат - у базі потенційних покупців Amazon напевно знайдеться людина, чиї уподобання схожі з вашими. Модель, заснована на такому значному обсязі даних, безумовно, буде відрізнятися високою точністю прогнозів. З іншого боку, модель стає практично марною, якщо у вас є лише кілька записів для порівняння. На початкових етапах розвитку он-лайн магазинів електронної комерції, їх власники могли використовувати дані приблизно про 50 покупців. На такому невеликому наборі даних рекомендації, отримані за допомогою методу найближчих сусідів, не збігалися з дійсними покупками, так як вподобання вашого найближчого сусіда були дуже далекі від ваших уподобань.
Остання проблема, пов'язана з використанням методу найближчих сусідів полягає в тому, що цей метод є високозатратним з точки зору проведення обчислень. У випадку з компанією Amazon, котра володіє даними про 20 мільйонів покупців, щоб визначити найближчих сусідів, конкретного покупця необхідно порівняти з кожним з решти 20 мільйонів. По-перше, якщо ваш бізнес налічує 20 мільйонів клієнтів, то подібні обчислення не викличуть у вас серйозних проблем, так як ви, цілком очевидно, володієте великими грошима. По-друге, подібні обчислення - ідеальне завдання для хмарних систем, так як в цьому випадку обчислювальні процеси будуть виконуватися паралельно на декількох десятках комп'ютерів, а після обчислення всіх відстаней, результати будуть порівнюватися між собою для визначення найближчих наборів даних (як, наприклад, це робить Google MapReduce). По-третє, на практиці таких масштабних обчислень не буде потрібно. Якщо необхідно визначити, чи куплю я одну книгу, то для цього зовсім не обов'язково порівнювати мене з усіма 20 мільйонами користувачів Amazon, достатньо буде знайти найближчого сусіда серед покупців книжок. Подібний підхід дозволяє використовувати лише частину бази даних і скоротити обсяг обчислень.
Запам'ятайте: інтелектуальний аналіз даних не зводиться до простого механізму завантаження вхідних даних та отримання бажаного результату на виході. Необхідно провести досить ретельне дослідження даних для вибору найбільш відповідної моделі для аналізу. Крім того, зменшення обсягу вхідних даних дозволить скоротити час, необхідний для виконання всіх розрахунків. Далі, отриманий результат необхідно проаналізувати з точки зору його точності, тільки після цього ви можете схвалити застосування вашої аналітичної моделі в реальній практиці.
