Машинное обучение и анализ данных

15. Машинное обучение и анализ данных #

Машинное обучение (ML) и анализ данных — одни из самых востребованных областей в программировании. Python предоставляет широкий спектр библиотек для работы с данными, их визуализации и построения моделей машинного обучения.


15.1. Введение в библиотеки NumPy и Pandas #

NumPy #

NumPy — библиотека для работы с многомерными массивами и математическими операциями.

Установка #
pip install numpy
Основные возможности #
import numpy as np

# Создание массивов
array = np.array([1, 2, 3])
matrix = np.array([[1, 2], [3, 4]])

# Операции
print(array + 5)          # [6 7 8]
print(matrix.T)           # Транспонирование матрицы

# Генерация данных
zeros = np.zeros((2, 3))  # Массив из нулей
random = np.random.rand(3)  # Случайные числа

Pandas #

Pandas — библиотека для работы с табличными данными.

Установка #
pip install pandas
Основные структуры данных #
  1. Series: одномерные данные.
  2. DataFrame: двумерные таблицы.
Пример работы #
import pandas as pd

# Создание DataFrame
data = {"Name": ["Alice", "Bob", "Charlie"], "Age": [25, 30, 35]}
df = pd.DataFrame(data)

# Доступ к данным
print(df["Name"])  # Series с именами
print(df.loc[0])   # Данные первой строки

# Анализ данных
print(df.describe())  # Статистическое описание
print(df[df["Age"] > 28])  # Фильтрация

15.2. Визуализация данных (matplotlib, seaborn) #

Matplotlib #

Matplotlib — библиотека для создания графиков.

Установка #
pip install matplotlib
Пример #
import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [10, 20, 25, 30]

plt.plot(x, y, label="Linear Growth")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Example Plot")
plt.legend()
plt.show()

Seaborn #

Seaborn — библиотека для статистической визуализации, основанная на Matplotlib.

Установка #
pip install seaborn
Пример #
import seaborn as sns
import matplotlib.pyplot as plt

# Генерация данных
tips = sns.load_dataset("tips")

# График распределения
sns.histplot(tips["total_bill"], kde=True)
plt.show()

# Взаимосвязь между параметрами
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="day")
plt.show()

15.3. Основы машинного обучения с scikit-learn #

Scikit-learn — библиотека для реализации алгоритмов машинного обучения.

Установка #

pip install scikit-learn

Пример: линейная регрессия #

from sklearn.linear_model import LinearRegression
import numpy as np

# Данные
X = np.array([[1], [2], [3], [4]])  # Признаки
y = np.array([2, 4, 6, 8])         # Целевая переменная

# Создание модели
model = LinearRegression()
model.fit(X, y)

# Предсказания
print(model.predict([[5]]))  # [10.]

Пример: классификация (SVM) #

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

# Загрузка данных
iris = datasets.load_iris()
X, y = iris.data, iris.target

# Разделение на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

# Обучение модели
model = SVC()
model.fit(X_train, y_train)

# Оценка модели
y_pred = model.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, y_pred)}")

Рекомендации #

  1. NumPy используйте для работы с массивами и матрицами.
  2. Pandas отлично подходит для анализа табличных данных и предобработки.
  3. Для визуализации данных комбинируйте возможности Matplotlib и Seaborn.
  4. Начинайте изучение машинного обучения с простых моделей в Scikit-learn (линейная регрессия, SVM).