Искусственный интеллект. Машинное обучение - страница 48
Значения Z-оценки вычисляются путем деления разности между наблюдением и средним значением на стандартное отклонение. Таким образом, Z-оценка показывает, сколько стандартных отклонений от среднего составляет данное наблюдение. Например, если Z-оценка равна 2, это означает, что наблюдение находится на расстоянии двух стандартных отклонений от среднего.
При использовании Z-оценки для выявления аномалий обычно устанавливается определенный порог, за который значения считаются аномальными. Обычно принимается порог в 2 или 3 стандартных отклонения от среднего. Значения, превышающие этот порог, считаются потенциальными аномалиями и могут требовать дополнительного анализа или обработки. Z-оценка предоставляет аналитикам и исследователям информацию о том, насколько каждое наблюдение отличается от среднего значения в выборке, и помогает выявить потенциальные аномалии, которые могут быть важны для дальнейшего анализа данных.
Допустим, у нас есть набор данных о продажах товаров в интернет-магазине за последний год. Мы хотим выявить аномалии в ценах продуктов, которые могут указывать на ошибки в данных или наличие выбросов.
Для этого мы можем использовать Z-оценку. Предположим, у нас есть столбец данных, содержащий цены продуктов. Мы можем вычислить Z-оценку для каждой цены, используя формулу:
После вычисления Z-оценок мы можем увидеть, что только цена 30 имеет Z-оценку превышающую 2, следовательно, она считается аномальной. Это может указывать на возможную ошибку в данных или наличие выброса в цене продукта,
Рассмотрим пример кода на Python, который вычисляет Z-оценку для набора данных и идентифицирует аномальные значения:
```python
import numpy as np
# Пример данных о ценах продуктов
prices = [10, 12, 15, 9, 11, 30, 13, 14, 8, 11]
# Вычисляем среднее значение и стандартное отклонение
mean_price = np.mean(prices)
std_dev = np.std(prices)
# Определяем порог Z-оценки
threshold = 2
# Вычисляем Z-оценку для каждой цены
z_scores = [(price – mean_price) / std_dev for price in prices]
# Идентифицируем аномальные значения
anomalies = [price for price, z_score in zip(prices, z_scores) if abs(z_score) > threshold]
# Выводим аномальные значения
print("Аномальные цены:", anomalies)
```
Этот код использует библиотеку NumPy для вычисления среднего значения и стандартного отклонения, а затем вычисляет Z-оценку для каждой цены в наборе данных. После этого он определяет аномальные значения, превышающие заданный порог Z-оценки, и выводит их на экран.
Диаграмма ящика с усами (или boxplot) – это важный инструмент в анализе данных, который позволяет визуализировать распределение и основные статистические характеристики набора данных. Этот график состоит из "ящика", представляющего межквартильный размах данных, "усов", которые указывают на минимальное и максимальное значение в пределах определенного расстояния от квартилей, а также отдельных точек, которые могут быть выбросами.
"Ящик" диаграммы является прямоугольником, ограниченным верхним и нижним квартилями. Вертикальная линия внутри ящика обозначает медиану данных. "Усы" диаграммы обычно находятся на расстоянии, равном 1.5 межквартильным размахам от верхнего и нижнего квартилей. Это расстояние определяет "усы" как участок данных, который считается разумным или "нормальным", не считая выбросов.
Точки или значения, которые находятся за пределами "усов", считаются выбросами и могут указывать на потенциальные аномалии в данных. Они могут быть либо статистическими выбросами, то есть значениями, которые сильно отклоняются от общего распределения данных, либо реальными аномалиями, требующими дополнительного анализа.