|
Мерлин оправил на себе побитую молью мантию, швырнул
на стол связку ключей и произнес: - Вы заметили, сэры, какие стоят погоды? - Предсказанные, - сказал Роман. - Именно, сэр Ойра-Ойра! Именно предсказанные! - Полезная вещь - радио, - сказал Роман. - Я радио не слушаю, - сказал Мерлин. - У меня свои методы. А.Стругацкий, Б.Стругацкий. Понедельник начинается в субботу. История вторая. Суета сует. Глава первая. Один из возможных методов восстановления пропусков в данных
сразу следует из самой идеи кластер-анализа: если каким-либо способом
удалось разбить элементы множества на компактные в некотором смысле подмножества,
то было бы естественным заполнить пропуски некоторых характеристик у некоторых
элементов значениями, наиболее типичными для соответствующих компактных
подмножеств. Очевидно, что разные методы восстановления пропусков определяются
разными способами формирования такого разбиения (например, лингвистические
алгоритмы - Браверман Э.М., Мучник И.Б., алгоритмы семейства ZET - Загоруйко
Н.Г.).
Наиболее полно, по-видимому, проблема восстановления пропусков методами, которые названы их авторами локальными, исследована в нашей стране (Загоруйко Н.Г., Лбов Г.В., Елкина В.Н., Тимеркаев В.С., Ульянов Г.В.). По сути, то, что называется алгоритмами семейства ZET, является детально проработанной и апробированной технологией верификации экспериментальных данных, основанной на гипотезе их избыточности. В алгоритме ZET каждое отдельно взятое пропущенное значение xij в матрице данных X(m,n), т.е. отсутствующий j-й признак у i-го объекта, оценивается по предсказывающей подматрице, составленной из некоторого заранее заданного числа m0 наиболее похожих объектов и некоторого заранее заданного числа n0 наиболее похожих признаков. Пропущенное значение восстанавливается по уравнению регрессии для каждой пары строк подматрицы, одна из которых содержит пропуск. Аналогично, пропущенное значение восстанавливается и для каждой пары столбцов, один из которых содержит тот же пропуск. Окончательная оценка получается усреднением предварительных оценок с весами, значения которых зависят от некоторых параметров. Необходимость задания размеров предсказывающей подматрицы m0 и n0, а также других важных параметров, привела к необходимости убедиться в правдоподобности восстановленных значений. Именно поэтому в современных версиях алгоритмов семейства ZET реализована многоуровневая и многошаговая технология подбора всех необходимых параметров на основе проверки качества прогноза восстанавливаемых значений. Данная технология имеет самостоятельную ценность и адекватна целому ряду задач прогностического характера. С другой стороны очевидно, что было бы удобно определить размер предсказывающей подматрицы, например, соответствующими кластером и группой после построения некоторой кластеризации объектов и группировки признаков. Следовательно, мы снова должны решить проблему выбора числа кластеров и групп. Рассмотрим применение метода неиерархических разбиений для восстановления пропусков в матрице данных. Обозначим пропуск символом ·. При вычислении сходства dij элементов wi и wj все некомплектные пары значений (xil, xjl), l=1,...n не учитываются. Напомним, что в некомплектной паре пропущено хотя бы одно из значений. Возьмем dij = d·ij при вычислении корреляций и dij = d·ij n/(n-n·) при вычислении евклидовых расстояний, где d·ij - сходство при наличии некомплектных пар, n· - число некомплектных пар, n· < n. Пусть выполнено разбиение множества W . В задаче кластеризации будем восстанавливать пропуск значения xij у объекта xi по j-й характеристике средним этой характеристики ckj по кластеру Wk, полагая, что xiОWk. В задаче группировки будем восстанавливать пропуск значения xij
у признака xi по j-у наблюдению средневзвешенным
этого наблюдения ckj
по признакам в группе Wk,
xiОWk.
Напомним, что в задаче группировки нам удобно рассматривать матрицу X(m,n),
в которой признаки расположены по строкам. Пропущенное значение xij
можно восстановить по уравнению линейной регрессии Алгоритм 3. Построим полную последовательность разбиений алгоритмом 2 и сформируем таблицу восстановленных значений пропусков. Столбцы таблицы соответствуют элементам xij, содержащим пропуски, а строки - восстановленным значениям пропусков для каждого устойчивого разбиения в последовательности. Просмотрим таблицу по столбцам снизу вверх и восстановим каждый пропуск xij первым значением, которое отличается от значения пропуска. Очевидно, что данный алгоритм стремится восстановить пропущенное значение у некоторой характеристики элемента wi просто как значение соответствующей характеристики самого похожего на него элемента wq. Это сразу же видно для агломеративного варианта алгоритма 3. Данный алгоритм обладает следующим важным свойством. Все пропуски оказываются естественным образом упорядоченными по моментам их восстановления. Очевидно, что наиболее предпочтительными являются пропуски, значения которых восстанавливаются по таблице в первую очередь. Для каждого восстановленного значения xij можно дополнительно потребовать, чтобы элемент wi оказался в составе соответствующего подмножества Wk размером |Wk| = m0, m0< m. При этом одновременно восстановленные значения можно дополнительно упорядочить по убыванию плотности множеств Wk, где wiОWk. Для некоторого достаточно большого числа одиночных пропусков, когда можно предположить наличие общего эффекта искажения в данных, естественно использовать следующий алгоритм. Алгоритм 4. Упорядочим все пропуски алгоритмом 3. Восстановим первый или несколько первых пропусков. Будем повторять эти действия для оставшихся пропусков до тех пор, пока не будут восстановлены все пропуски. Пусть для некоторой матрицы X(m,n) число объектов (строк) в достаточной степени превышает число признаков (столбцов). В этом случае будем полагать, что m >> n. Тогда для восстановления пропусков естественно применить алгоритм 4 к данной матрице. Когда n >> m, то естественно применить алгоритм 4 к матрице XT. Если же m примерно равно n, можно использовать следующий алгоритм. Алгоритм 5. Упорядочим алгоритмом 3 все пропуски в матрице X и отдельно в матрице XT. Пусть некоторый пропуск xij оказался первым в одной последовательности и k-м в другой. Выберем последовательность, в которой ее первый пропуск имеет минимальную сумму мест 1+k, и восстановим его как средневзвешенное значений из двух последовательностей xij = x1ij k / (1+k) + xkij / (1+k). Будем повторять эти действия для оставшихся пропусков до тех пор, пока не будут восстановлены все пропуски. Итак, с помощью метода неиерархических разбиений мы построили семейство простых алгоритмов восстановления пропусков. Отметим, что для всех предложенных алгоритмов, вообще говоря, не требуется предварительного задания никаких параметров. Отсутствие необходимости в предварительной настройке алгоритмов позволяет восстановить пропуски в естественном порядке и полностью в автоматическим режиме. С другой стороны, количественная оценка ошибки прогноза пропущенных значений может потребоваться для более детального анализа матрицы данных. В этом случае необходимо реализовать как саму схему неиерархических разбиений, так и предложенные здесь алгоритмы в рамках технологии проверки качества прогноза восстанавливаемых значений, рассмотренной выше. Способы реализации предложенных алгоритмов в данной технологии достаточно очевидны.
|