Научная статья на тему 'Автоматизированное определение классов чувствительности веб-сервисов'

Автоматизированное определение классов чувствительности веб-сервисов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
348
67
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕБ-СЕРВИСЫ / СЕРВИСНО-ОРИЕНТИРОВАННАЯ АРХИТЕКТУРА / МАШИННОЕ ОБУЧЕНИЕ / АНАЛИЗ ЧУВСТВИТЕЛЬНОСТИ / WEB-SERVICES / SERVICE-ORIENTED ARCITHECTURE / MACHINE LEARNING / SENSITIVITY ANALYSIS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Душкин Дмитрий Николаевич

В работе представлена методика вычисления чувствительности — критерия сравнения веб-сервисов по производительности. Вводятся показатели, характеризующие чувствительность, описаны классы чувствительности, способ их получения и метод определения класса для произвольного веб-сервиса. В работе используются такие алгоритмы машинного обучения, как кластеризация с помощью алгоритма k-средних и классификация методом опорных векторов. Приводятся результаты вычислительного эксперимента, иллюстрирующего представленную методику.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Душкин Дмитрий Николаевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Automated determination of sensitivity classes of web services

We presents a method to calculate the sensitivity, which is a benchmark for web services performance. We introduce metrics which characterize sensitivity, describe the routine for their evaluation, and suggest the method of class definition for an arbitrary web service. The method uses several machine learning algorithms such as clustering via k-means and classification via support vector machines. At the end we present the results of a numerical experiment, which illustrates our method.

Текст научной работы на тему «Автоматизированное определение классов чувствительности веб-сервисов»

УДК 004.032 ББК3.32

АВТОМАТИЗИРОВАННОЕ ОПРЕДЕЛЕНИЕ КЛАССОВ ЧУВСТВИТЕЛЬНОСТИ ВЕБ-СЕРВИСОВ1

Душкин Д. Н.2,

(ФГБУН Институт проблем управления им. В.А. Трапезникова РАН, Москва)

В работе представлена методика вычисления чувствительности — критерия сравнения веб-сервисов по производительности. Вводятся показатели, характеризующие чувствительность, описаны классы чувствительности, способ их получения и метод определения класса для произвольного веб-сервиса. В работе используются такие алгоритмы машинного обучения, как кластеризация с помощью алгоритма к-средних и классификация методом опорных векторов. Приводятся результаты вычислительного эксперимента, иллюстрирующего представленную методику.

Ключевые слова: веб-сервисы, сервисно-ориентированная архитектура, машинное обучение, анализ чувствительности.

Введение

В последние несколько лет развития области информационных технологий (ИТ) наметился переход от всеобъемлющих информационных систем (ИС), включающих все необходимые для работы данные и функции, к распределенным системам, использующим внешние ресурсы [12]. Такой переход оправдан тем, что одна система зачастую уже не способна хранить весь объём необходимых данных и обеспечивать приемлемый уровень произво-

1 Автор признателен Смирновой Н.В. и Фархадову М.П. за ценное обсуждение содержания статьи.

2Дмитрий Николаевич Душкин, аспирант, младший научный сотрудник (ddushkin@asmon.ru, тел. 8(916)978-58-96).

112

дительности вычислений. Одним из современных решений, позволяющих построить распределенную ИС, является использование сервисно-ориентированной архитектуры (СОА).

В основе сервисно-ориентированной архитектуры лежит принцип использования веб-сервисов — автономных вычислительных ресурсов, предоставляющих свои функции через сеть Интернет (или Интранет) посредством открытых протоколов обмена данными, не зависящих от платформ как самих ресурсов, так и связываемых с ними программных систем. Системы, использующие в своей работе веб-сервисы, называют системами с СОА.

В предыдущей авторской работе [2] проведен обзор и анализ существующих подходов выбора критериев сравнения вебсервисов, подробно рассмотрен вопрос оценки чувствительности, дается формальное описание понятия чувствительности вебсервисов, введены классы чувствительности и описана методика их выделения.

Основной мотивацией ввода нового критерия является отсутствие описания в современных научных публикациях таких критериев, которые описывали бы веб-сервис в долгосрочной перспективе, что важно в ситуациях, когда необходимо быть уверенным в обеспечиваемом уровне производительности при увеличении нагрузки. Определение такого критерия может быть полезно как при решении задачи рационального выбора архитектуры систем с СОА, так и при составлении документов, регламентирующих соглашение об уровне предоставления услуги.

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

В настоящей работе описывается усовершенствованный ме-

тод выделения классов чувствительности и метод автоматизированного определения класса чувствительности произвольного веб-сервиса с помощью алгоритма машинного обучения «с учителем» — метода опорных векторов (англ. Support vector machine, SVM).

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

Исследования проведены при финансовой поддержке РФФИ в рамках научного проекта № 12-07-31214 мол_а.

1. Выделение классов чувствительности

1.1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ

Чувствительность веб-сервиса — критерий, на основе которого может быть оценена возможность обеспечения определенного уровня производительности веб-сервиса при возрастающей нагрузке. Таким образом, для определения чувствительности необходимо произвести тестирование веб-сервиса по определенному плану и вычислить значения ряда признаков, характеризующих чувствительность, используя результаты теста. Поскольку значения признаков различных веб-сервисов имеют большой разброс, целесообразно ввести классы чувствительности, характеризуемые диапазонами значений признаков.

1.2. ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ

Дано X — множество описаний веб-сервисов, Y — конечное множество классов чувствительности. Существует неизвестная целевая зависимость — отображение y*: X ^ Y, значения которой известны только на объектах конечной обучающей выборки Xm и соответствующих им классам ym. Требуется построить алгоритм a: X ^ Y, способный классифицировать произвольный

114

Веб-сервисы

(вс?)-*—

Сбор данных Вычисление значений

с помощью тестирования признаков (лин. регрессия)

1

Обучение классификатора Кластеризация

(метод опорных векторов) (метод к-средних)

Оценка обобщающей способности классификатора (Р-мера)

Рис. 1. Схематическая диаграмма предлагаемого комбинированного метода определения чувствительности

объект X € X. Говоря менее формально, необходимо, используя предварительно обученный алгоритм классификации, присвоить класс чувствительности новому веб-сервису.

На рис. 1 представлено схематическое описание предлагаемого метода решения поставленной задачи. Конечная обучающая выборка Хт и соответствующие классы ут вычисляются следующим образом:

1) Составляется случайная выборка веб-сервисов объемом т (раздел 1.3).

2) Вводится описание ряда признаков, характеризующих чувствительность веб-сервисов, и способов их вычисления (раздел 1.5).

3) Проводится тестирование выборки по определенному плану (раздел 1.4).

4) На основе результатов тестов вычисляется матрица «объект-признак» Xт.

5) При помощи визуализации матрицы Хт экспертом проводится эвристическое выделение схожих по значению показателей подмножеств веб-сервисов (раздел 1.6).

6) Формируются классы чувствительности на основе упорядоченных по предпочтению подмножеств веб-сервисов, при

115

этом во вводимой градации классов число ошибок является более значимым критерием (раздел 1.6).

7) Составляется множество меток ym принадлежности вебсервисов Xm к определенным классам чувствительности.

Пункт 7 при достаточно большом объеме выборки является крайне трудозатратным, поэтому целесообразно автоматизировать этот процесс, проведя кластеризацию данных с числом кластеров, равным числу классов чувствительности. Также результаты кластеризации могут служить индикатором правильности эвристического разделения на классы: если полученные кластеры достаточно обособлены друг от друга, то классы выбраны верно. Кластеризация проводится методом k-средних [6].

Получив матрицу «объект-признак» Xm и множество соответствующих классов ym, возможно обучить и оценить алгоритм классификации «с учителем». В качества такого алгоритма используется метод опорных векторов [11].

Далее поэтапно описывается весь процесс выделения классов чувствительности и организации автоматизированной классификации.

1.3. ФОРМИРОВАНИЕ ВЫБОРКИ

Для вычислительного эксперимента выборка была сформирована на основе данных из каталога API Directory [8], содержащего информацию о более чем 5000 различных веб-сервисах. Выбираются разнородные сервисы, реализующие функции картографии и геокодинга, предоставляющие информацию о различных показателях торговых бирж, о погоде, новостях и т.д. Все сервисы реализуют архитектуру REST [5], предоставляя свои функции по протоколу HTTP.

В работе используется выборка объемом n = 100 вебсервисов.

1.4. ПЛАН ТЕСТА

Для вычисления признаков необходимо провести сбор необходимых данных посредством тестирования выборки веб-

116

сервисов. В процессе тестирования осуществляется последовательное выполнение итераций. Одна итерация длится 1 секунду. Количество запросов, отправляемых в течение одной итерации, зависит от её номера (см. далее). Запросы равномерно распределены в рамках секунды. В среднем один тест длится 15-25 минут в зависимости от скорости ответа на запросы веб-сервисом. Каждый веб-сервис тестируется 3 раза с разницей между тестами в 9 часов, результаты проведенных тестов усредняются. Такой подход к тестированию позволяет снизить разброс значений, возникающий из-за различной загруженности веб-сервисов в течение дня.

Пусть Xmax — число запросов в секунду, отправляемое в последней итерации, S — шаг теста (число, на которое увеличивается количество запросов в секунду в последующей итерации). Тогда можно вычислить общее число итераций в тесте Niter:

(1) Niter = Xr'

S

гг -(i)

Пусть rj k — усреднённое по трем тестам значение времени обработки запроса, где i = 1, ...,n — номер веб-сервиса, n — объем выборки, j = 1,..., Niter — номер итерации, к = 1, ...,j ■ S — номер запроса в рамках j-й итерации.

В работе используется следующий план теста: максимальное число запросов в секунду Xmax = 300, шаг теста S = 10, объем выборки n = 100. Такие значения параметров выбраны экспериментально, так как было установлено, что начиная с 280290 запросов в секунду большинство веб-сервисов демонстрируют устойчивое поведение. Выборка состоит из 100 веб-сервисов: Google Maps, Яндекс Карты, Bing Maps, Nokia Maps, Twitter, Factolex, Quora и др.

1.5. ВЫЧИСЛЕНИЕ МАТРИЦЫ «ОБЪЕКТ-ПРИЗНАК»

Матрица «объект-признак» Xm £ Rmxn, где m — число объектов, n — количество признаков, формируется на основе результатов тестов веб-сервисов. Ряды матрицы соответствуют объектам (веб-сервисам), столбцы — признакам. Обозначим x(i) i-й ряд

матрицы X. Опишем каждый веб-сервис следующим образом:

(2) х'

(i) =

t(i), d(i), e(i)

где t(i) — вектор, описывающий изменение среднего времени обработки запросов i-м веб-сервисом при изменении нагрузки, d(i) — вектор, описывающий изменение стандартного отклонения, e(i) — вектор, описывающий изменение числа ошибок.

По каждому веб-сервису сначала вычислим среднее время обработки запросов, стандартное отклонение и число необработанных запросов по итерациям. Далее с целью устранения ограничения на однозначный план теста (шаг теста и максимальное число запросов в секунду) и более экономного описания характеристики чувствительности веб-сервиса произведем аппроксимацию значений признаков по итерациям полиномом первой степени с помощью алгоритма линейной регрессии [3]. Значения коэффициентов полученной регрессионной модели, а также суммарную квадратичную ошибку будем использовать в качестве признаков, характеризующих чувствительность веб-сервиса.

В дальнейших вычислениях среднего времени обработки и стандартного отклонения исключаются ошибочные запросы, т.е. такие запросы, которые не были обработаны в течение 30 секунд (время timeout) или веб-сервис вернул в ответе на запрос HTTP-код, отличный от «200 — OK».

Примем за tji) среднее время обработки запросов i-м вебсервисом в рамках j-й итерации:

j-s

(r k=0

Воспользуемся регрессионной моделью вида

Ь(з • £)« = в2 + в« • (и • Б).

Параметр в[г0 является показателем ординаты точки пере- ’

сечения прямой с осью ординат, вЦ — тангенс угла наклона

(*)

прямой. Необходимо подобрать такие параметры в\ , чтобы регрессионная модель наиболее точно описывала исходную зависи-118

Рис. 2. Аппроксимация среднего времения обслуживания запросов от числа запросов в секунду. Точки — исходные данные, линия — аппроксимация

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

.(г)

значением ъ3 и вычисленным регрессионной моделью значением Ы(х):

э(гЬ — V"1 /+(г) _ ь.(^. с\{г)л2

00,01 . ,

3 = 1

С целью уменьшения диапазона возможных значений этого

признака преобразуем тангенс угла наклона аппроксимирующей

- л(г)

прямой, щ 1, в градусы:

(4) шш ^(#) = £ (3 - Ы(э • >$)(г))2.

(5) а(г) = агсЪап(6(г1)^^-.

, п

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

180

(г)

а(г) л(г) М9())(г)

а Л,о >—т--------------

Люл.х

На рис. 2 синими кругами показаны усредненные по трем тестам данные веб-сервиса картографии «Яндекс.Карты», зеленой линией — аппроксимирующий полином. Видно, что в данном случае полином хорошо описывает тенденцию роста среднего времени обслуживания запросов при росте числа запросов в секунду, поэтому значение стоимостной функции .] (0(г)) будет мало. Значения признаков для примера на рис. 2: = 83,1; 0М =

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

298,1; 7*(0*)/Атах = 80, 9.

Аналогично проведем вычисления для стандартного отклонения времени обработки запросов:

(7)

\

1

=

И для числа ошибок:

з-з

У^«к, «к

(8) к=0

-Xі) +№\2

ТТ^-Г^- зк - з ) ,

'' к=0

лі) „(і)

(і) р • =

рз

а(і) в(і) аа ,°а,о,

1 если запрос г^\ не обработан, 0 если запрос г^\ обработан;

(і)

а(і) в(і) ае , ве,0,

.е(в(і))(і)

Ат

В итоге каждый веб-сервис описывается следующим набором признаков:

х

(і) =

.(і) „(і) Л(вів)(і) „(і) „(і) .«в?):);,а(і),в(і),л(вЄ°)(і)'

(і) (і)

аі , ві,0,

Ат

(і) Л(і) • •

Ч)Л,0,^";—,«.

А

Ат

Нормализуем полученные данные. Для этого зададим функцию нормализации zj:

(9)

*з : хз

(і)

З - Ез [х(і)] (хзі))

где Ej и Jj — среднее и стандартное отклонение по ] -му признаку соответственно. Примем за Хт = х(Хт) нормализованную по признакам матрицу «объект-значение».

120

А

тах

(a) Значения показателей at и ae (b) Значения показателей ае и

т)/л max

Рис. 3. Значения показателей выборки веб-сервисов, сгруппированных по кластерам

1.6. ОПИСАНИЕ КЛАССОВ ЧУВСТВИТЕЛЬНОСТИ

После проведения теста по заданному плану и вычисления матрицы «объект-признак» Xm можно визуализировать полученные данные. На рис. 3 различными цветами обозначены различные классы чувствительности, полученные в результате этапа кластеризации. Овалами обведены примерные границы классов веб-сервисов. Проиллюстрировать точные границы на данном типе графиков невозможно ввиду изображения только 2 признаков на каждом графике, в то время как каждый веб-сервис характеризуется 9 показателями.

Введем эвристическое разделение веб-сервисов по классам чувствительности: от предпочтительной низкой чувствительности к высокой.

Первый класс — низкая чувствительность — характеризуется небольшим изменением среднего времени обслуживания запросов и стандартного отклонения, а также отсутствием необработанных запросов. На рис. 3(a) можно увидеть, что ряд вебсервисов имеют отрицательное значение признака at, угла аппроксимирующей прямой графика среднего времени обработки запроса, — это означает, что начальное среднее время обработки запросов при малой нагрузке больше конечного. Такое поведение характерно для ряда «облачных» веб-сервисов (при увели-

чении нагрузки динамически увеличивается мощность обслуживающего узла) или веб-сервисов с адаптивным распределителем нагрузки (англ. Load balancer) (при высокой утилизации ресурсов одного обслуживающего узла часть запросов передается на обслуживание узлам с меньшей утилизацией).

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

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

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

1.7. ФОРМИРОВАНИЕ МНОЖЕСТВА КЛАССОВ С

ПОМОЩЬЮ КЛАСТЕРИЗАЦИИ

С целью проверки обоснованности эвристического разделения веб-сервисов, а также для последующей автоматизации процесса определения класса чувствительности используется кластеризация данных с помощью алгоритма k-средних [6]. В качестве входных данных используются нормализованная матрица «объект-признак» Xт, 4 центроида (по количеству эвристически определенных классов), первоначальное положение центроидов выбирается случайно, всего проводится 200 итераций, в качестве меры расстояния используется манхэттенское расстояние:

(10) dij — |xi Xj|.

На рис. 3(a) и рис. 3(b) обозначены эвристически выделенные классы чувствительности. Принимая во внимая эвристическое описание классов чувствительности, можно графически обозначить классы на рисунке.

2. Определение класса чувствительности

2.1. КРАТКОЕ ОПИСАНИЕ МЕТОДА ОПОРНЫХ ВЕКТОРОВ Решение задачи бинарной классификации при помощи метода опорных векторов заключается в поиске параметров функции, описывающей гиперплоскость, которая правильно разделяет набор данных на два класса. Гиперплоскость выбирается таким образом, чтобы расстояние от объектов разных классов до гиперплоскости было максимальным. Формально эту задачу оптимизации с ограничениями можно записать следующим образом:

ности i-го объекта к определенному классу; w — направляющий гиперплоскость вектор; b (от англ. «bias» — смещение) — кратчайшее расстояние между разделяющей гиперплоскостью и началом координат; £ — дополнительные переменные, характеризующие величину ошибки. Если > 0, то предполагается, что объект Xi может лежать внутри разделяющего зазора или ошибочно отнесен не к тому классу. Коэффициент C — коэффициент регуляризации, который позволяет изменять отношение между максимизацией ширины разделяющей полосы и минимизацией суммарной ошибки классификации.

Описанный метод подходит для случаев, когда возможно линейно разделить классы. Однако на практике такие случаи встречаются нечасто. Для обеспечения возможности нелинейного разделения классов метод опорных векторов был дополнен ядрами (kemel trick). Суть дополнения заключается в переводе исходных объектов в расширенное пространство, где возможно линейное разделение на классы. В настоящей работе используется ради-

i=1

yW(wTx(i) + b) ^ 1 — £i,i — 1,..., m,

£i ^ 0, i — 1,..., m, где x(l) — вектор признаков i-го объекта; y(i) — метка принадлеж-

альная базисная функция Гаусса (далее РБФ):

K (x, x;) — exp(—y||x — x! у2).

Если необходимо разделить данные на большее число классов, применяют процедуру обучения нескольких классификаторов по принципу «один против всех». В этом случае каждый классификатор определяет гиперплоскость, разделяющую данные одного класса от всех остальных.

2.2. ВЫБОР И ОЦЕНКА АЛГОРИТМА КЛАССИФИКАЦИИ

В качестве алгоритма классификации используется метод опорных векторов. Необходимо:

1) Выбрать подходящую оценку обобщающей способности алгоритма (раздел 2.3).

2) Выбрать наилучшую комбинацию ядра алгоритма классификации и его параметров по показателям полноты и точности с помощью процедур скользящего контроля (кроссвалидации) и сеточного поиска (англ. grid search) (раздел 2.4).

2.3. ОЦЕНКА ОБОБЩАЮЩЕЙ СПОСОБНОСТИ

АЛГОРИТМА

На практике многие классы чувствительности являются смещенными (англ. scewed), т.е. включают себя малое число объектов по сравнению с другими классами. Например, в выборке, используемой в настоящей работе, объемом 100 веб-сервисов к 3-му классу относится только 4 объекта, в то время как к 1-му

— 40. Поэтому целесообразно в качестве оценки обобщающей способности алгоритма использовать не просто отношение верно классифицированных веб-сервисов к их общему числу, но оценки обобщающей способности по каждому классу. Такой оценкой может служить F-мера [10].

Введем основные определения. Пусть Ci — множество объектов, принадлежащих i-му классу, т — множество объектов, которые алгоритм отнес к i-му классу. Тогда полнотой (англ. recall) 124

классификации объектов по і-му классу является отношение количества объектов, правильно отнесенных к і-му классу, к общему количеству объектов, относящихся к этому классу:

Точностью (англ. precision) классификации объектов по і-му классу является отношение количества объектов, правильно отнесенных к і-му классу, к общему количеству объектов, отнесенных к і-му классу:

Идеальный алгоритм обеспечивает 100% полноту и точность.

Для удобства полноту и точность сводят к одной оценке, называемой F-мерой (англ. F-score, F1-score):

Для идеального классификатора ^-мера равна 1, для худшего —

где а — среднее арифметическое, у — среднеквадратическое отклонение по всем Fi.

2.4. СКОЛЬЗЯЩИЙ КОНТРОЛЬ И СЕТОЧНЫЙ ПОИСК

Скользящий контроль — процедура эмпирического оценивания обобщающей способности алгоритмов, обучаемых по прецедентам («с учителем») [1]. В общем случае исходная выборка разбивается на множество сочетаний двух подвыборок: обучающей и контрольной. Для каждого разбиения выполняется настройка алгоритма на обучающей подвыборке, затем оценивается ошибка на контрольной подвыборке. Оценкой скользящего контроля называется средняя по всем разбиениям величина ошибки на контрольных подвыборках.

В настоящей работе используется k-кратный скользящий контроль (англ. k-fold cross-validation), который заключается в

(11)

(12)

(1З)

0.

(14)

F-меру по всем классам можно записать как

F = а ± у,

следующем: выборка случайным образом разбивается на к непе-ресекающихся подмножеств одинаковой (или почти одинаковой) длины. Процедура кросс-валидации начинается с выбором первого подмножества как контрольного, оставшиеся к — 1 подмножеств используются как обучающая выборка. Процедура повторяется к раз, при этом каждое подмножество по одному разу используется как контрольное; к результатов оценки точности и полноты алгоритма усредняются.

Дополним k-кратный скользящий контроль техникой сеточного поиска (англ. grid search) [4]. Сеточный поиск — достаточно простой, но эффективный метод оптимизации модели алгоритма и значений параметров. Задаются множества возможных моделей и значений параметров и с помощью полного перебора возможных сочетаний выбирается такое сочетание, для которого оценка обобщающей способности (в нашем случае это F-мера) по итогам скользящего контроля будет наивысшей.

2.5. ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ

Проведем процедуры скользящего контроля и сеточного поиска с целями выбора наилучшей комбинации параметров и оценки обобщающей способности алгоритма.

Разделим случайным образом исходную выборку на два подмножества: 80% — подмножество, используемое в процедурах сеточного поиска и скользящего контроля, 20% — контрольное подмножество.

Зададим к — 3 для процедуры k-кратного скользящего контроля.

Зададим множество параметров, среди которых необходимо найти наилучшую комбинацию с помощью метода сеточного поиска и кросс-валидации.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1) Для линейного ядра: C — [1,10,100,1000].

2) Для радиальной базисной функции: y —

[0, 001; 0, 0001], C — [1,10,100,1000].

Используя библиотеку с открытым исходным кодом, содержащую множество алгоритмов машинного обучения, Scikit Leam

126

[9], осуществим вычислительный эксперимент с заданными параметрами. Результаты сеточного поиска и кросс-валидации (в качестве оценки используется средняя ^-мера по всем классам) показаны в таблице 1.

Таблица 1. Результаты сеточного поиска и кросс-валидации

^-мера Ядро Параметры ядра

0,303 ± 0,010 РБФ С = 1,7 = 0, 001

0,303 ± 0,010 РБФ С = 1,7 = 0, 0001

0,470 ± 0,010 РБФ С = 10,7 = 0, 001

0,303 ± 0,010 РБФ С = 10,7 = 0, 0001

0,799 ± 0,019 РБФ С = 100,7 = 0, 001

0,470 ± 0,010 РБФ С = 100,7 = 0, 0001

0,862 ± 0,013 РБФ С = 1000,7 = 0, 001

0,799 ± 0,019 РБФ С = 1000,7 = 0, 0001

0,862 ± 0,022 Линейное С = 1

0,848 ± 0,013 Линейное С = 10

0,787 ± 0,013 Линейное С = 100

0,787 ± 0,013 Линейное С = 1000

Лучший набор параметров наблюдается для ядра РБФ с параметрами С = 1000,7 = 0, 001. Проведем оценку классификатора с заданными параметрами на контрольном подмножестве. Стоит отметить, что результаты сеточного поиска и скользящего контроля, а также оценка ^-меры на контрольном подмножестве зависят от первоначального случайного разбиения всей выборки на подмножества, поэтому конечное значение общей ^-меры может варьироваться. После нескольких повторений всей процедуры обучения классификатора оценка на контрольном подмножестве ^-мера = 0, 955 ± 0, 025.

Полученные результаты можно представить визуально. Для этого уменьшим размерность пространства признаков с 9 до 2 с помощью метода главных компонент [7], настроим параметры классификатора, используя полученное пространство признаков,

127

Первая компонента

Рис. 4. Границы принятия решения классификатора по классам

и построим границы принятия решений по классам (рис. 4).

Методика определения класса чувствительности веб-сервиса демонстрирует определенную устойчивость. В результате вычислительного эксперимента каждый веб-сервис проходил тестирования 3 раза с разницей в 9 часов между тестами. В дальнейшем для проверки гипотезы устойчивости метода каждый результат теста использовался как входные данные для определения чувствительности. 83% всех веб-сервисов показывают одинаковое значение чувствительности за все три измерения, остальные 17% веб-сервисов только единожды изменяют класс, т.е. присутствовали последовательности классов вида 1 2 1, 3 2 2 и др.

3. Выводы

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

Преимуществами предложенного подхода являются независимость показателей от выбранного шага тестирования и невысокое начальное значением максимального числа запросов в се-

кунду. Таким образом методика может быть эффективна в отсутствии возможности полноценного тестирования веб-сервиса при высокой нагрузке.

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

Литература

1. ВОРОНЦОВ К.В. Комбинаторный подход к оценке качества обучаемых алгоритмов // Математические вопросы кибернетики / Под ред. О.Б. Лупанова. — Москва : Физ-матлит, 2004. — Т. 13. — С. 5—3б. — [Электронный ресурс].

- URL: www.ccas.ru/frc/papers/voron04mpc.pdf (дата обращения: 30.09.2013).

2. ДУШКИН Д.Н. Анализ чувствительности веб-сервисов в задаче выбора оптимальной конфигурации систем с сервисно-ориентированной архитектурой // Управление большими системами. — 2012. — No. 40. — С. 164-182.

3. СТРИЖОВ В.В. Методы выбора регрессионных моделей — Москва: ВЦ РАН, 2010.

— б0 с. — [Электронный ресурс]. - URL: http://www.machinelearning.ru/wiki/images/5/52/Strijov-Krymova10Model-Selection.pdf (дата обращения: 30.09.2013).

4. BERGSTRA J., BENGIO Y. Random Search for HyperParameter Optimization // J. Mach. Learn. Res. — 2012. — Vol. 13. — P. 281-305. — [Электронный ресурс]. - URL:

http://dl.acm.org/citation.cfm?id=2188385.2188395 (дата обращения: 30.09.2013).

5. FIELDING R.T. Architectural styles and the design of network-based software architectures: Ph. D. thesis / Roy Thomas Fielding. — University of California, Irvine, 2000. -162 p.

6. MACQUEEN J.B. Some Methods for Classification and Analysis of MultiVariate Observations // Proc. 5th Berkeley Symposium on Mathematical Statistics and Probability / Ed. by L.M. Le Cam, J. Neyman. — Vol. 1. — University of California Press, 1967. — P. 281-297.

7. PEARSON K. On lines and planes of closest fit to systems of points in space // Philosophical Magazine. — 1901. — Vol. 2, No. 6. — P. 559-572.

8. Programmable Web. API Directory.

- [Электронный ресурс]. - URL:

http://www.programmableweb.com/apis/directory (дата обращения: 30.09.2013).

9. Scikit-learn: Machine Learning in Python / F. Pedregosa, G. Varoquaux, A. Gramfort et al. // Journal of Machine Learning Research. — 2011. — Vol. 12. — P. 2825-2830.

10. VAN RIJSBERGEN C.J. Information Retrieval. — 2nd edition. — Newton, MA, USA : Butterworth Heinemann, 1979. — ISBN: 0408709294.

11. VAPNIK V.N. The nature of statistical learning theory. — New York, NY, USA : Springer-Verlag New York, Inc., 1995.

— ISBN: 0-387-94559-8.

12. WIRSING M., HOLZL M., KOCH N. AND OTHER SENSORIA — Software Engineering for Service-Oriented Overlay Computers // Rigorous Software Engineering for Service-Oriented Systems Lecture Notes in Computer Science. - 2011. - Vol. 6582. - P. 1-14.

AUTOMATED DETERMINATION OF SENSITIVITY CLASSES OF WEB SERVICES

Dmitry Dushkin, Institute of Control Sciences of RAS, Moscow, Postgraduate (ddushkin@asmon.ru).

Abstract: We presents a method to calculate the sensitivity, which is a benchmark for web services performance. We introduce metrics which characterize sensitivity, describe the routine for their evaluation, and suggest the method of class definition for an arbitrary web service. The method uses several machine learning algorithms such as clustering via k-means and classification via support vector machines. At the end we present the results of a numerical experiment, which illustrates our method.

Keywords: web-services, service-oriented arcithecture, machine learning, sensitivity analysis.

Статья представлена к публикации членом редакционной коллегии М. В. Губко

Поступила в редакцию 03.02.2013. Опубликована 30.09.2013.

i Надоели баннеры? Вы всегда можете отключить рекламу.