Перейти к содержимому

Понимание стандартного отклонения в Python и машинном обучении

Машинное обучение является краеугольным камнем современных технологий. Python, благодаря своему читаемому синтаксису и обширной библиотеке инструментов, является предпочтительным языком для ML. Стандартное отклонение — это ключевая статистическая мера для понимания изменчивости данных. В этой статье объясняется, что такое стандартное отклонение, и демонстрируется, как его вычислить в Python.

Что такое стандартное отклонение?

Стандартное отклонение — это мера того, насколько разбросаны данные относительно их среднего значения. Оно представляет собой квадратный корень из дисперсии, которая является средним арифметическим квадратов отклонений от среднего. Стандартное отклонение является важным инструментом в статистике и машинном обучении, так как помогает понять распределение данных. Важно различать выборочное стандартное отклонение (вычисляется по подмножеству данных) и генеральное стандартное отклонение (вычисляется по всему набору данных).

Вычисление стандартного отклонения в Python

Python обладает богатым набором библиотек, которые упрощают вычисление стандартного отклонения. Библиотека statistics предоставляет функции для расчета стандартного отклонения, такие как stdev() для выборочных данных и pstdev() для генеральных данных. Библиотека numpy также часто используется для вычислений, связанных со стандартным отклонением.

Чтобы вычислить стандартное отклонение в Python, сначала необходимо импортировать нужные библиотеки и определить наш набор данных:

import statistics and numpy in a Python project

python
import statistics
import numpy as np

data = [10, 20, 30, 40, 50]

Используя модуль statistics, мы можем вычислить как выборочное, так и генеральное стандартное отклонение:

calculate standard deviation of a list of numbers using statistics module in Python

python
sample_std = statistics.stdev(data)
pop_std = statistics.pstdev(data)

print(f"Sample std: {sample_std}")
print(f"Population std: {pop_std}")

Аналогично, numpy предоставляет функцию std(). По умолчанию она вычисляет генеральное стандартное отклонение. Чтобы получить выборочное стандартное отклонение, используйте параметр ddof=1:

calculate standard deviation of a list of numbers using numpy module in Python

python
np_pop_std = np.std(data)
np_sample_std = np.std(data, ddof=1)

print(f"Numpy population std: {np_pop_std}")
print(f"Numpy sample std: {np_sample_std}")

Машинное обучение и стандартное отклонение

Стандартное отклонение — важный инструмент в машинном обучении. В обучении с учителем оно помогает понять разброс целевой переменной. В обучении без учителя стандартное отклонение позволяет понять распределение данных.

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

На практике стандартное отклонение часто используется для масштабирования признаков. StandardScaler из scikit-learn стандартизирует признаки, убирая среднее значение и масштабируя их до единичной дисперсии (стандартное отклонение равно 1):

Standardize features using scikit-learn

python
from sklearn.preprocessing import StandardScaler
import numpy as np

features = np.array([[1, 2], [3, 4], [5, 6]])
scaler = StandardScaler()
scaled_features = scaler.fit_transform(features)

print(scaled_features)

Заключение

Python — мощный инструмент для машинного обучения, а стандартное отклонение — важная статистическая мера, которая помогает понять распределение данных. В этой статье мы подробно рассмотрели стандартное отклонение и показали, как его вычислить с помощью библиотек Python statistics и numpy, а также как применить его в рабочих процессах машинного обучения с scikit-learn. Надеемся, что эта статья помогла вам лучше понять стандартное отклонение в Python и машинном обучении.

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.