Главная страница
Навигация по странице:

  • За допомогою такого коду

  • Отчет 1. Лабораторна робота 1 з аналізу даних Демянюк Лина 7 варіант Housing B


    Скачать 184.18 Kb.
    НазваниеЛабораторна робота 1 з аналізу даних Демянюк Лина 7 варіант Housing B
    АнкорОтчет 1
    Дата04.04.2021
    Размер184.18 Kb.
    Формат файлаdocx
    Имя файлаInd_1.docx
    ТипЛабораторна робота
    #191300


    Лабораторна робота №1

    З аналізу даних

    Дем’янюк Лина

    7 варіант


    1. 7.

      Housing

      B

      LSTAT
      Постановка задачі.

    Розглядається задача Housing про прогнозування цін на житло в передмісті Бостона. Опис наведено за адресою https://www.cs.toronto.edu/

    delve/data/boston/bostonDetail.html . Цільові дані (medv) – cередня вартість будинків, окупованих власниками, у 1000 доларів. Набір даних невеликий за розміром, лише 506 випадків.

    У кожному випадку набору даних є 14 атрибутів. Вони є:

    1. CRIM - рівень злочинності на душу населення по містах

    2. ZN - частка житлових земель, зонованих для ділянок понад 25 000 кв. Футів.

    3. INDUS - питома вага акцій нероздрібного бізнесу на місто.

    4. CHAS - фіктивна змінна річка Чарльза (1, якщо тракт перетинає річку; 0 в іншому випадку)

    5. NOX - концентрація оксидів азоту (частки на 10 мільйонів)

    6. RM - середня кількість кімнат на помешкання

    7. AGE - частка окупованих власником одиниць, побудованих до 1940 року

    8. DIS - зважені відстані до п'яти бостонських центрів зайнятості

    9. RAD - індекс доступності до радіальних автомобільних доріг

    10. TAX - повна вартість ставки податку на нерухомість на 10000 доларів

    11. PTRATIO - співвідношення учня-вчителя за містом

    12. B - 1000 (Bk - 0,63) ^ 2, де Bk - частка негрів в місті

    13. LSTAT -% нижчий статус населення

    14. MEDV - Середня вартість будинків, окупованих власниками, у 1000 доларів

    1. Розбити дані на навчальну та тестову вибірки та перевірити їх репрезентативність.

    Експериментальні дані розіб’ємо на навчальну та тестову вибірки. В навчальну включимо непарні рядки даних, а в тестову – парні. Для перевірки репрезентативності вибірок розрахуємо математичне сподівання (mean) та дисперсію (std) даних за кожною змінною.

    Вибірка

    mean(x1)

    mean(x2)

    mean(y)

    std(x1)

    std(x2)

    std(y)

    Навчальна

    11,57

    6,27

    68,65

    23,50

    0,72

    27,91

    Тестова

    11,16

    6,30

    68,50

    23,18

    0,68

    28,44

    Результати перевірки вказують на приблизно однакові значення цих показників для навчальної та тестової вибірок, тому вважаємо їх репрезентативними. Візуально підтверджує цей висновок рисунок:



    Рисунок 1. Розподіл даних навчальної та тестової вибірок

    За допомогою такого коду:

    filename = 'D:\housing.data';

    formatSpec ='%8f%7f%8f%3f%8f%8f%7f%8f%4f%7f%7f%7f%7f%f%[^\n\r]';

    fileID = fopen(filename,'r');

    dataArray = textscan(fileID, formatSpec, 'Delimiter', '', 'WhiteSpace', '', 'ReturnOnError', false);

    fclose(fileID);

    housing = [dataArray{1:end-1}];

    clearvars filename formatSpec fileID dataArray ans;

    data = housing;

    vars = [12, 13, 14];

    x1 = data(:,vars(1));

    x2 = data(:,vars(2));

    y = data(:,vars(3));

    %Формування навчальної та тестової вибірок:

    tr_set = data(1:2:end, vars);

    test_set = data(2:2:end, vars);

    %математичне сподівання

    mn_tr = mean(tr_set);

    mn_test = mean(test_set);

    %дисперсія

    despers_tr = std(tr_set);

    despers_test = std(test_set);
    %графік розподіл вибірки

    subplot(2,1,1)

    scatter(tr_set(:,1),tr_set(:,2),'b','o');

    hold on

    scatter(test_set(:,1),test_set(:,2),'r','d');

    l = legend('Навчальна вибірка','Тестова вибірка');

    title(l,'Розподіл даних');

    1. Зобразити експериментальні дані у формі однофакторних залежностей.

    Однофакторні залежності вказують на слабку тенденцію збільшення середньої вартості будинків зі збільшенням частки негрів у місті.

    Рисунок 2. Залежність між х1 та у.

    Однофакторні залежності вказують на на сильну тенденцію зменшення середньої вартості будинків зі збільшенням % статусу населення.



    Рисунок 3. Залежність між х2 та у.

    За допомогою такого коду:

    %Однофакторні залежності

    cftool(x1,y);

    cftool(x2,y);

    1. Знайдемо коефіцієнти лінійної регресії за допомогою такої програми:

    ??????

    %Довжина вибірки:

    M_tr=length(tr_set);

    M_test=length(test_set);

    disp('Лінійний регресійний аналіз:')

    %model_1 y = a0 + a1x1 + a2x2

    X_tr=[ones(M_tr,1) tr_set(:,1) tr_set(:,2)];

    X_test=[ones(M_test,1) test_set(:,1) test_set(:,2)];
    %model_2 y = a0 + a1x1 + a2x2 + a3x1^2 + a4x2^2

    X_tr=[ones(M_tr,1) tr_set(:,1) tr_set(:,2) tr_set(:,1).*tr_set(:,1) tr_set(:,2).*tr_set(:,2)];

    X_test=[ones(M_test,1) test_set(:,1) test_set(:,2) test_set(:,1).*test_set(:,1) test_set(:,2).*test_set(:,2)];
    %model_3 y = a0 + a1x1 + a2x2 + a3x1^2 + a4x2^2 + a5x1x2

    X_tr=[ones(M_tr,1) tr_set(:,1) tr_set(:,2) tr_set(:,1).*tr_set(:,1) tr_set(:,2).*tr_set(:,2) tr_set(:,1).*tr_set(:,2)];

    X_test=[ones(M_test,1) test_set(:,1) test_set(:,2) test_set(:,1).*test_set(:,1) test_set(:,2).*test_set(:,2) test_set(:,1).*test_set(:,2)];
    %model_4 y = a0 + a1x1 + a2x2 + a3x1x2

    X_tr=[ones(M_tr,1) tr_set(:,1) tr_set(:,2) tr_set(:,1).*tr_set(:,2)];

    X_test=[ones(M_test,1) test_set(:,1) test_set(:,2) test_set(:,1).*test_set(:,2)];
    %model_5 y = a0 + a1x1 + a2x2 + a3sqrt(x1) + a4sqrt(x2)

    X_tr=[ones(M_tr,1) tr_set(:,1) tr_set(:,2) sqrt(tr_set(:,1)) sqrt(tr_set(:,2))];

    X_test=[ones(M_test,1) test_set(:,1) test_set(:,2) sqrt(test_set(:,1)) sqrt(test_set(:,2)];

    Аналогічно знайдемо інші регресійні моделі та запишемо результати у таблицю.



    Модель

    RMSEtr

    RMSEtest

    1

    y = 29.65042+0.01136 –0.87163

    6.203

    6.168

    2

    y = 38.12437+0.02656 –2.29542 –0.00004 +0.04308

    5.372

    5.567

    3

    y = 37.94621+0.02704 –2.28416 –0.00004 +0.04298 –0.00002

    5.372

    5.567

    4

    y = 14.46222+0.05286 –0.08665 –0.00222

    6.025

    6.166

    5

    y =63.34713+0.00391 +1.81738 +0.1623 –19.95681

    5.14

    5.368




    1. З таблиці, що наведено вище, бачимо що досліджувані моделі мають від 3 до 6 коефіцієнтів. Найкраща точність спостерігається для 5 моделі, що має 5 коефіцієнтів, а найгірша для 1 моделі, яка має 3 коефіцієнта. Порівнюючи теоретичні результати з експериментальними даними бачимо, що для моделі 1 характерне завишення прогнозованої ціни будинків, а для моделі 5 нев’язка майже рівномірно розподілена та теоритичні дані узгоджуються з експерементальними.




    Рис.4 Модель 5.



    Рис.5 Модель 1.

    1. Додаємо у постановку задачі ще одну вхідну зміну RM (середня кількість кімнат в будинку). Очевидно, що чим більше кімнат тим дорожча вартість.

    x3 = data(:,6);

    вносимо зміну в модель та знаходимо цю модель під коренем.



    Модель

    RMSEtr

    RMSEtest

    5

    y =63.34713+0.00391 +1.81738 +0.1623 –19.95681

    5.14

    5.368

    6

    y =12,7415–0,00144 +1,69379 +0,34205 –17,36588

    4.851

    4.925



    Рис.7 Модель 6.

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

    1. Порівняння з іншими моделями.

    Наша модель поступається по точності тільки кубічній, але по складності отримана модель більш проста.

    Модель

    Кількість входів

    Кількість коефіцієнтів

    RMSEtr

    RMSEtest

    Інтерпретабельність

    Власна модель

    3

    6

    4.851

    4.925

    висока

    Лінійна

    2

    3

    5.637

    5.137

    висока

    Кубічна

    3

    10

    3.96

    3.94

    висока


    написать администратору сайта