Вступ до машинного навчання
Машинне навчання (ML) — це підгалузь штучного інтелекту (ШІ), яка зосереджена на створенні комп’ютерних систем, здатних навчатися, адаптуватися, прогнозувати та корелювати без дотримання чітких інструкцій.
Метою машинного навчання є розуміння й обробка великої кількості даних за допомогою алгоритмів і створення узагальнених моделей, які можуть створювати зручні для користувача результати.
Машинне навчання зазвичай працює, дотримуючись наведених нижче кроків.
- Збір даних з різних джерел
- Очищення даних для отримання однорідності
- Побудова моделі за допомогою алгоритму ML
- Отримання розуміння результатів моделі
- Візуалізація даних і перетворення результатів у візуальні графіки
1. Збір даних з різних джерел
Машинне навчання вимагає великої кількості даних, щоб створити модель, готову до виробництва.
Збір даних для ML здійснюється двома способами: автоматично та вручну.
- Автоматизований збір даних використовує програми та сценарії, які збирають дані з Інтернету.
- Ручний збір даних – це процес ручного збору даних та їх однорідної підготовки.
Автоматичний збір даних за допомогою веб-збирання за допомогою Python:
import requests
from bs4 import BeautifulSoup
# Scrape data from a website
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Extract relevant information from the website
data = soup.find('div', class_='data-container').text
# Store the gathered data
with open('data.txt', 'w') as file:
file.write(data)2. Очищення даних для отримання однорідності
Забезпечення однорідності даних є вирішальним кроком для забезпечення роботи машинного навчання та отримання результатів.
Очищення даних для ML виконується вручну або автоматично за допомогою алгоритмів і полягає у виправленні та/або видаленні неправильних, пошкоджених, неправильно відформатованих, дублікатів і неповних даних у наборі даних.
Очищення даних за допомогою Python і pandas:
import pandas as pd
# Read data from a CSV file
data = pd.read_csv('data.csv')
# Remove duplicates
data = data.drop_duplicates()
# Fix missing values by filling with mean
data['column_name'].fillna(data['column_name'].mean(), inplace=True)
# Remove incorrect or corrupted data
data = data[data['column_name'] > 0]
# Save cleaned data to a new file
data.to_csv('cleaned_data.csv', index=False)3. Побудова моделі за допомогою алгоритму ML
ML (машинне навчання) model — це файл, який містить результати алгоритмів машинного навчання та використовується для обговорення динамічного введення.
Модель ML (машинного навчання) працює, містить список шаблонів, які зіставляються з вхідними даними в реальному часі, а потім виробляє вихідні дані відповідно до зіставленого шаблону.
Моделі ML можуть мати різні типи структур, із найпоширенішими типами: бінарна класифікація, багатокласова класифікація, і регресія.
- Модель бінарної класифікації передбачає бінарний результат, тобто один із двох можливих результатів.
- Багатокласова модель класифікації передбачає один із двох результатів.
- Регресійна модель передбачає числові значення.
Процес побудови моделі машинного навчання називається навчання.
Навчання машинним навчанням виконується за допомогою алгоритмів і поділяється на дві категорії: навчання під контролем і навчання без контролю.
- Контрольоване навчання (SL) — це коли модель ML навчається за допомогою позначених даних, тобто даних, які мають як вхідні, так і вихідні значення.
- Неконтрольоване навчання (UL) — це коли модель ML навчається з використанням немаркованих даних, тобто даних, які не мають тегів або відомих результатів.
Нейронні мережі (NN) є основою неконтрольованого навчання та складаються з відображення між даними в наборі даних, що дозволяє робити кореляції.
Створення моделі бінарної класифікації за допомогою бібліотеки scikit-learn Python:
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Load the dataset
X, y = load_dataset()
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Create a Logistic Regression model
model = LogisticRegression()
# Train the model
model.fit(X_train, y_train)
# Make predictions on the test set
y_pred = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, y_pred)4. Отримання розуміння результатів моделі
Отримання розуміння за допомогою моделей ML означає розуміння раніше невідомих шаблонів і перевірку здатності моделі робити прогнози та висновки.
Отримання розуміння дуже важливо, щоб перевірити валідність моделі та визначити, чи потрібно вносити будь-які зміни в алгоритм(и) навчання.
Аналіз важливості функції в навченій моделі за допомогою Python:
import matplotlib.pyplot as plt
# Get the feature importance scores
importances = model.coef_[0]
# Sort feature importance in descending order
sorted_indices = importances.argsort()[::-1]
sorted_importances = importances[sorted_indices]
# Plot the feature importance
plt.bar(range(len(sorted_importances)), sorted_importances)
plt.xticks(range(len(sorted_importances)), sorted_indices)
plt.xlabel('Feature Index')
plt.ylabel('Importance Score')
plt.title('Feature Importance')
plt.show()5. Візуалізація даних і перетворення результатів у візуальні графіки
Візуалізація даних моделі ML складається з розміщення вихідних даних на графіку та надання інтерактивного API.
Створення діаграми розсіювання прогнозованих значень за допомогою Python:
import matplotlib.pyplot as plt
# Get the predicted values
y_pred = model.predict(X)
# Create a scatter plot
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('Predicted Values')
plt.show()Висновок
Наведені вище приклади коду демонструють практичну реалізацію кожного етапу машинного навчання, від збору та очищення даних до побудови моделі, аналізу та візуалізації даних.