Skip to content
Dmytro edited this page Jan 13, 2025 · 4 revisions

Unit 1. Models. types of ML and main concepts

1. Типи машинного навчання

1.1 Supervised Learning (Навчання з учителем)

Опис: Модель навчається на основі вхідних даних (фіч) і міток (labels).
Приклади: Прогнозування цін на нерухомість. Класифікація електронної пошти (спам чи ні).

1.2 Unsupervised Learning (Навчання без учителя)

Опис: Дані не мають міток, і модель шукає приховані закономірності (кластеризація або зменшення розмірності).
Приклади: Групування клієнтів за поведінкою.

1.3 Reinforcement Learning (Навчання з підкріпленням)

Опис: Модель навчається через взаємодію з середовищем, отримуючи нагороду за правильні дії.
Приклади: Гра в шахи. Управління роботами.

2. Основні бібліотеки Python

2.1 NumPy

Для роботи з числовими масивами. Приклад:

import numpy as np
array = np.array([1, 2, 3])
print(array.mean())

2.2 Pandas

Для обробки та аналізу даних у форматі таблиць. Приклад:

import pandas as pd
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
print(df.describe())

2.3 Matplotlib

Для створення базових графіків. Приклад:

import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()

2.4 Seaborn

Для створення візуалізацій на основі статистики. Приклад:

import seaborn as sns
sns.histplot(data=df, x='A')

3. Оцінка моделей у Data Science

3.1 Розподіл даних

Train/Test/Validation:
Train (70-80%): для навчання моделі.
Validation: для налаштування гіперпараметрів.
Test: для фінальної оцінки моделі.

3.2 Пере- та недонавчання

Underfitting: модель занадто проста.
Overfitting: модель занадто добре працює на тренувальних даних, але погано на тестових.
Рішення: Збільшення даних.

3.3 Перехресна перевірка (Cross-validation)

Поділ даних на k фолдів.

4. Feature Engineering (ось ще стаття - приклади feature engineering)

Процес створення нових ознак (features) або трансформація існуючих для покращення моделі.

1. Створення нової ознаки

Додавання ознаки, що розраховується на основі існуючих:

import pandas as pd

data = pd.DataFrame({'height': [1.5, 1.8, 1.6], 'weight': [50, 70, 60]})
data['bmi'] = data['weight'] / (data['height'] ** 2)
print(data)

2. Бінінг числових даних

Розділення безперервних даних на категорії:

data['bmi_category'] = pd.cut(data['bmi'], bins=[0, 18.5, 25, 30, float('inf')], labels=['Underweight', 'Normal', 'Overweight', 'Obese'])
print(data)

3. Робота з пропущеними даними

Заповнення середнім значенням:

data['height'] = data['height'].fillna(data['height'].mean())

4. Кодування категорій

Перетворення текстових даних у числовий формат:

data['gender'] = ['male', 'female', 'male']
data_encoded = pd.get_dummies(data, columns=['gender'])
print(data_encoded)

Unit 2. Demo numpy, pandas, matplotlib