Ім'я файлу: ХТ_ЛР№3_КН-305_Пархомчук.docx
Розширення: docx
Розмір: 983кб.
Дата: 19.08.2022
скачати
Пов'язані файли:

Міністерство освіти і науки України

Національний університет «Львівська політехніка»

Кафедра АСУ



Звіт до лабораторної роботи №4

з дисципліни “Хмарні технології”

на тему:

«Хмарні аплікації для аналізу даних та машинного навчання»


Виконав:

студент групи КН-305

Пархомчук Я.І.
Прийняв:

Рудавський Д.В.

Львів-2022 р.
Тема: Хмарні аплікації для аналізу даних та машинного навчання.
Мета: Оволодіти практичними прийомами використання мови Python для розв’язання задач аналізу даних та машинного навчання, розгортання розроблених програм як хмарних аплікацій.

Порядок виконання роботи


  1. Ознайомитись з теоретичним матеріалом щодо розв’язання задач аналізу даних та реалізації моделей машинного навчання за допомогою бібліотек мови програмування  Python.

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

  1. Передбачити наступні можливості (кожну з них реалізувати в окремому блоці (cell) із виведенням результатів на екран):

•         зчитування вхідних даних із заданого текстового файлу і попереднє опрацювання (за необхідності);
•         визначення базових статистичних характеристик вхідних даних (кількості об’єктів різних класів, мінімальні, максимальні та середні значення атрибутів);
•         відображення на діаграмі розподілу об’єктів різних класів (на площині, де осі відповідають двом обраним вхідним параметрам, точки різних кольорів відповідають об’єктам різних класів);
•         поділ вхідних даних на навчальну та тестову вибірки (забезпечити повторюваність поділу при повторних запусках програми);
•         реалізація моделей машинного навчання  2-х  різних типів;
•         задання початкових значень параметрів кожної з моделей;
•         навчання побудованих моделей;
•         перевірка роботи моделей на тестовій вибірці;
•         налаштування моделей зміною значень їх параметрів;
•         виведення результатів (вихідних значень) на екран і у файл;

•         виведення результатів тестування (точності класифікації на тестовій вибірці та матриці помилок (confusion matrix)) на екран;

•         аналіз впливу значень параметрів моделі на результати навчання та тестування.
4.      Визначити часові характеристики роботи програми (час на навчання та тестування кожної моделі, не враховуючи введення та виведення даних).

5.      Розгорнути програму як хмарну аплікацію у віртуальній машині на обраній Вами у ЛР № 1 хмарній платформі, запустити і перевірити її у середовищі Jupyter Notebook. За необхідності встановити додаткові бібліотеки мови Python (наприклад, NumPy, Pandas, scikit-learn, Matplotlib, Seaborn).

6.      Зробити висновок про ефективність та універсальність застосованих моделей, апаратних та програмних засобів хмарного середовища при розв’язанні даної задачі.

7.      Оформити звіт про роботу за такою структурою:

•         назва роботи;
•         мета роботи;
•         послідовність роботи;
•         індивідуальне завдання;
•         формат файлу з вхідними даними;

•         текст програми;
•         код скрипту у середовищі Jupyter Notebook (в окремому файлі з назвою Прізвище-ЛР3.ipynb  );
•         результати роботи програми у середовищі Jupyter Notebook, часові характеристики;
•         інструкція користувачу щодо розгортання програми як хмарної аплікації, розміщення та подання вхідних даних, запуску програми на виконання;

•         висновки.
Звіт доповнити екранограмами етапів роботи з хмарного середовища.

Індивідуальне завдання
Варіант №9
9Класифікація улоговин та скель
Набір даних описує силу віддачі сонарів під різними кутами для об’єктів двох класів – улоговини та скелі.
Є 208 прикладів із 60 вхідними змінними (сили віддачі сонарів під різними кутами) та 1 вихідною змінною (клас: 0 – для улоговини і 1 – для скелі).

Побудувати 2 моделі машинного навчання для класифікації улоговин та скель з мінімальною похибкою тестування. Для навчання використати випадкові 145 прикладів двох класів, інші – для тестування.

Хід роботи
Код програми:
from datetime import datetime

import time

from pandas import read_csv

from matplotlib import pyplot

from sklearn.model_selection import train_test_split

from sklearn.model_selection import cross_val_score

from sklearn.model_selection import StratifiedKFold

from sklearn.metrics import classification_report

from sklearn.metrics import confusion_matrix

from sklearn.metrics import accuracy_score

from sklearn.linear_model import LogisticRegression

from sklearn.tree import DecisionTreeClassifier

from sklearn.neighbors import KNeighborsClassifier

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

from sklearn.naive_bayes import GaussianNB

from sklearn.svm import SVC

import numpy as np

import pandas as pd

dataset = pd.read_table('v10_sonar.txt',sep='\s+', engine='python', header = None)

dataset

# Розділ датасету на навчальну і контрольну вибірки

array = dataset.values

# Вибір 60 стовбців

X = array[:,1:61]

# Вибір 0-го стовбця

y = array[:,0]

# Розділ X и y на навчальну і контрольну вибірки

X_train, X_validation, Y_train, Y_validation = train_test_split(X, y, test_size=0.35, random_state=2)

# Завантаження алгоритмів моделей

models = []

models.append(('LR', LogisticRegression(solver='liblinear', multi_)))

models.append(('LDA', LinearDiscriminantAnalysis()))

models.append(('KNN', KNeighborsClassifier()))

models.append(('CART', DecisionTreeClassifier()))

models.append(('NB', GaussianNB()))

models.append(('SVM', SVC(gamma='auto')))

# Оцінювання моделі на кожній ітерації

results = []

names = []

startTime = datetime.now()

for name, model in models:

kfold = StratifiedKFold(n_splits=10, random_state=1, shuffle=True)

cv_results = cross_val_score(model, X_train, Y_train, cv=kfold, scoring='accuracy')

results.append(cv_results)

names.append(name)

print('%s: %f (%f)' % (name, cv_results.mean(), cv_results.std()))

print('Час підрахунку точності моделей:', (datetime.now() - startTime))

# Порівняння алгоритмів

pyplot.boxplot(results, labels=names)

pyplot.title('Порівняння алгоритмів')

pyplot.show()

startTime = datetime.now()

# Створення прогнозу на контрольній вибірці

model = LogisticRegression()

model.fit(X_train, Y_train)

predictions = model.predict(X_validation)

print('Час навчання і прогнозу:', (datetime.now() - startTime))

# Оцінка прогнозу

print('Точність прогнозу:', accuracy_score(Y_validation, predictions))

print(confusion_matrix(Y_validation, predictions))

print(classification_report(Y_validation, predictions))

Результати програми:

Рис. 1. Відображення результатів порівняння 6-и методів



Рис.2. Відображення результатів контрольного прогнозу
Висновок
Виконавши лабораторну роботу, я оволодів практичними прийомами використання мови Python для розв’язання задач аналізу даних та машинного навчання, розгортання розроблених програм як хмарних аплікацій.
скачати

© Усі права захищені
написати до нас