Понимание стандартного отклонения в Python и машинном обучении
Машинное обучение является краеугольным камнем современных технологий. Python, благодаря своему читаемому синтаксису и обширной библиотеке инструментов, является предпочтительным языком для ML. Стандартное отклонение — это ключевая статистическая мера для понимания изменчивости данных. В этой статье объясняется, что такое стандартное отклонение, и демонстрируется, как его вычислить в Python.
Что такое стандартное отклонение?
Стандартное отклонение — это мера того, насколько разбросаны данные относительно их среднего значения. Оно представляет собой квадратный корень из дисперсии, которая является средним арифметическим квадратов отклонений от среднего. Стандартное отклонение является важным инструментом в статистике и машинном обучении, так как помогает понять распределение данных. Важно различать выборочное стандартное отклонение (вычисляется по подмножеству данных) и генеральное стандартное отклонение (вычисляется по всему набору данных).
Вычисление стандартного отклонения в Python
Python обладает богатым набором библиотек, которые упрощают вычисление стандартного отклонения. Библиотека statistics предоставляет функции для расчета стандартного отклонения, такие как stdev() для выборочных данных и pstdev() для генеральных данных. Библиотека numpy также часто используется для вычислений, связанных со стандартным отклонением.
Чтобы вычислить стандартное отклонение в Python, сначала необходимо импортировать нужные библиотеки и определить наш набор данных:
import statistics and numpy in a Python project
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
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
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
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 и машинном обучении.