Вступ до машинного навчання

Машинне навчання (ML) — це підгалузь штучного інтелекту (ШІ), яка зосереджена на створенні комп’ютерних систем, здатних навчатися, адаптуватися, прогнозувати та корелювати без дотримання чітких інструкцій.

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

Машинне навчання зазвичай працює, дотримуючись наведених нижче кроків.

  1. Збір даних з різних джерел
  2. Очищення даних для отримання однорідності
  3. Побудова моделі за допомогою алгоритму ML
  4. Отримання розуміння результатів моделі
  5. Візуалізація даних і перетворення результатів у візуальні графіки

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()

Висновок

Наведені вище приклади коду демонструють практичну реалізацію кожного етапу машинного навчання, від збору та очищення даних до побудови моделі, аналізу та візуалізації даних.

Рекомендовані статті
Найкращий посібник із ноутбуків для розробників штучного інтелекту та машинного навчання
Роль машинного навчання в Web3
Найкраща мова програмування для машинного навчання
Що таке машинне навчання?
AI у фінансах
Як квантові обчислення вплинуть на ШІ?
Ключові відмінності між штучним інтелектом і машинним навчанням