Вам дана матрица признаков — список списков, где каждая строка представляет собой объект, а каждый столбец — отдельный числовой признак.
Ваша задача — определить, какие признаки можно считать стабильными.
Стабильный признак — это признак, у которого стандартное отклонение по всем объектам меньше заданного порога threshold.
Реализуйте функцию
find_stable_features(matrix, threshold)
, которая возвращает список индексов признаков (столбцов), удовлетворяющих этому условию.Решение задачи
import numpy as np
def find_stable_features(matrix, threshold=0.1):
data = np.array(matrix)
stds = np.std(data, axis=0)
stable_indices = [i for i, std in enumerate(stds) if std < threshold]
return stable_indices
# Пример входных данных
X = [
[1.0, 0.5, 3.2],
[1.0, 0.49, 3.1],
[1.0, 0.52, 3.0],
[1.0, 0.5, 3.3],
]
print(find_stable_features(X, threshold=0.05))
# Ожидаемый результат: [0, 1]