Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Формирование обучающей выборки

РефератПомощь в написанииУзнать стоимостьмоей работы

На рис. 1 представлен график количества увольнений по датам. Максимальное количество увольнений за день не превышает 124 человек. Судя по всему, в систему заносились данные об увольнении не сразу после подписания о расторжении трудового договора, а после определенных событий, предпосылки которых автору данной магистерской не известны. Стоит отметить что 124 человека за день — это максимальное… Читать ещё >

Формирование обучающей выборки (реферат, курсовая, диплом, контрольная)

Обучающая выборка необходима для моделей Data Mining предполагающих использование учителя (например — C4.5). В процессе формирования обучающей выборки из первоначальной базы данных извлекаются неподготовленные данные, подготавливаются и только затем заносятся в алгоритм C4.5 или используются в наивном Байесовском классификаторе как первоначальный источник представителей классов.

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

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

В исследуемой базе данных имеется:

  • · 4 045 — всего сотрудников (независимо о статусе уволен или нет).
  • · 12 248 — расписаний для сотрудников (как было указано ранее — сотрудник мог их изменять и ходить на работу по новому расписанию).
  • · 1 038 784 — отклонений в расписании. Достаточно большое количество отклонений, которые нужно учитывать при немаленьком количестве расписаний.
  • · 4 363 934 — общее количество входов и выходов для сотрудников. Для каждого необходимо вычислить текущее расписание по дням недели с учетом возможного отклонения.

К сожалению данные метрики вычислить в домашних условиях не удается из-за большого количества вычислений, но скорее всего эти метрики являются наиболее объективными.

Для использования в реальных условиях рекомендуется обязательно включить в список данные метрики. Для их извлечения можно воспользоваться следующим T-SQL кодом (Листинг 1):

declare some_cursor cursor.

for.

SELECT [user_id].

[working_day].

FROM [wt]. [dbo]. [working_days].

WHERE [time_in] IS NULL AND [time_out] IS NULL AND [working_day] IS NOT NULL.

open some_cursor.

declare @user_id int, @working_day date.

fetch next from some_cursor INTO @user_id, @working_day.

while @@FETCH_STATUS = 0.

begin.

INSERT INTO [wt]. [dbo]. [working_day_temporary] (time_in, time_out).

SELECT.

CONVERT (TIME (0), [date_in]) as time_in.

CONVERT (TIME (0), [date_out]) as time_out.

FROM [wt]. [dbo]. [t_workhours] WHERE [user_id] = @user_id AND.

CONVERT (DATE, [date_in]) = CONVERT (DATE, @working_day) AND.

CONVERT (DATE, [date_out]) = CONVERT (DATE, @working_day).

UPDATE [wt]. [dbo]. [working_days].

SET.

[time_in] = (SELECT MIN ([time_in]) AS [time_in] FROM [wt]. [dbo]. [working_day_temporary]).

[time_out] = (SELECT MAX ([time_out]) AS [time_out] FROM [wt]. [dbo]. [working_day_temporary]).

[count_enter] = (SELECT COUNT (DISTINCT [time_in]) as count_enter FROM [wt]. [dbo]. [working_day_temporary]).

WHERE [wt]. [dbo]. [working_days]. [working_day] = @working_day.

AND [wt]. [dbo]. [working_days]. [user_id] = @user_id.

DELETE FROM [wt]. [dbo]. [working_day_temporary].

fetch next from some_cursor INTO @user_id, @working_day.

end.

close some_cursor.

deallocate some_cursor.

Листинг 1. Извлечение метрик Еще один вариант работы со сложными метриками — записывать в базу данных сразу готовые метрики, для того что бы снизить нагрузка на процесс вычисления их.

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

График количества увольнений по датам.

Рисунок 1. График количества увольнений по датам.

На рис. 1 представлен график количества увольнений по датам. Максимальное количество увольнений за день не превышает 124 человек. Судя по всему, в систему заносились данные об увольнении не сразу после подписания о расторжении трудового договора, а после определенных событий, предпосылки которых автору данной магистерской не известны. Стоит отметить что 124 человека за день — это максимальное количество увольнений за день, следующее по величине увольнений — всего 34 человека. Это еще раз свидетельствует, о том, что данные об увольнении заносились не сразу после непосредственного ухода сотрудника, а позже.

Следует ли очищать данные всплески из выборки и по-особому обрабатывать? Ответ скорее не следует, чем следует:

  • · Данные об увольнении сотрудников заносились не сразу после увольнения, а порой большими пачками из-за этого невозможно будет определить где действительно ушло сразу большое количество сотрудников по странным причинам, а где — просто только сейчас занесли данные об увольнениях.
  • · В базе данных не различаются увольнения по собственному желанию и по принудительному расходу. Невозможно интерпретировать где и какой всплеск увольнений был.
  • · За числовыми данными в базе данных хранятся поступки людей, которые, возможно, массово отклоняться от привычной нормы. Эти данные возможно лучше всего отразятся как раз в всплесках увольнений в базе данных.

Следовательно, принимаем текущую базу данных как есть и не считаем всплески увольнении чем-то аномальным.

Важное замечание — часть сотрудников (каждый 200 из базы данных) не входит в первоначальную выборку. Это связанно с тем, что необходима тестовая выборка для проверки моделей Data Mining. Благодаря данной тестовой выборке появляется возможность проверить составленный прототип и сделать выводы об эффективности применения методов Data Mining в данной области.

Показать весь текст
Заполнить форму текущей работой