Разреженность (Sparsity) - Лена Капаца
Разреженность (Sparsity) by Лена Капаца Aug. 4, 2024 Основы

Разреженность данных (Sparsity) — это состояние, когда большинство значений в наборе данных равны нулю или отсутствуют. Этот термин широко используется в статистике, Машинном обучении (ML) и обработке данных. 

Существование разреженных данных может влиять на производительность алгоритмов машинного обучения и необходимость эффективного хранения данных. Кроме того, анализ разреженных данных требует специальных методов и техник.

Примеры разреженных данных

1. Текстовые данные: При использовании Мешка слов (Bag of Words) для представления текста, большинство слов в любом данном контексте могут не встречаться, что приводит к большому количеству нулей.

2. Системы рекомендаций (RecSys): В системах рекомендаций, где пользователи оценивают только некоторые из доступных товаров, большинство оценок могут отсутствовать.

3. Изображения: При использовании высокоразмерных признаков для изображений, большая часть изображений может не содержать значимой информации, что также ведет к разреженности.

 

Для демонстрации работы с разреженными данными, мы можем использовать библиотеку scipy, которая предоставляет возможности для работы с разреженными матрицами.

 

import numpy as np

from scipy.sparse import csr_matrix




# Создаем разреженную матрицу

# Представим, что у нас есть следующая матрица:

# [[1, 0, 0, 0],

#  [0, 0, 0, 4],

#  [0, 0, 0, 0],

#  [3, 0, 0, 0]]




data = np.array([1, 4, 3])

row_indices = np.array([0, 1, 3])

col_indices = np.array([0, 3, 0])




# Создаем разреженную матрицу в формате CSR (Compressed Sparse Row)

sparse_matrix = csr_matrix((data, (row_indices, col_indices)), shape=(4, 4))




print("Разреженная матрица (CSR):")

print(sparse_matrix)




# Чтобы получить полную матрицу, можем использовать метод .toarray()

dense_matrix = sparse_matrix.toarray()

print("Полная матрица:")

print(dense_matrix)

 

Далее, в целях анализа мы можем преобразовать разреженную матрицу в полную с помощью метода .toarray().

Работа с разреженными данными является важной задачей в многих приложениях, где данные могут быть неполными или содержать большое количество нулевых значений. Правильное использование разреженных структур данных может значительно улучшить производительность и эффективность алгоритмов анализа данных.

© Лена Капаца. Все права защищены.