بهبود ایمنی محل کار با تجزیه و تحلیل منابع انسانی: یک آموزش

این مقاله توسط آدام مک کینون و مارتا کوریونی نوشته شده است.

ایمنی محل کار اولویت اصلی کارفرمایان در سراسر جهان است. یک محل کار ایمن نه تنها از کارکنان در برابر آسیب محافظت می کند، بلکه باعث صرفه جویی در هزینه های مربوط به آسیب شرکت ها می شود. در ایالات متحده هزینه صدمات ناشی از کار سالانه بیش از 170 میلیارد دلار است. بیشتر این حوادث قابل پیشگیری هستند. تیم های منابع انسانی می توانند از قدرت تجزیه و تحلیل برای جلوگیری از حوادث در محل کار استفاده کنند.

در این مقاله، نحوه استفاده از الگوریتم ML بدون نظارت – قوانین انجمن را در زمینه ایمنی محل کار نشان خواهیم داد. به طور خاص، ما بر این تمرکز خواهیم کرد که چگونه قوانین انجمن می‌تواند به ترکیب مقادیر زیادی از داده‌های ایمنی برای شناسایی نقاط مداخله برای جلوگیری از حوادث آینده، و روش‌های جدید تجسم خروجی‌های قوانین انجمن برای تفسیر کمک کند، و مهم‌تر از آن، استفاده از یافته ها، برای رهبران منابع انسانی آسان تر است.

ما چند نمونه کد عملی نوشته شده در پایتون و R را قرار داده ایم. بیایید شروع کنیم!

مطالب
چالش کسب و کار
چرا انجمن قوانین
گردش کار
1. داده ها را بلعیده و آماده کنید
2. داده ها را تجزیه و تحلیل کنید
3. نتایج را تجسم کنید

چالش کسب و کار

یک شرکت تولیدی بزرگ متعهد است که ایمن ترین شرایط کاری را برای کارکنان خود فراهم کند. ابتکارات زیادی برای ردیابی و جلوگیری از صدمات در سراسر تأسیسات آنها وجود دارد، اما حوادث ایمنی هنوز بیشتر از آنچه که می خواهند اتفاق می افتد. آن‌ها داده‌های بسیار دقیقی را برای هر حادثه جمع‌آوری می‌کنند و در جلسه اخیر، معاون تولید از HR پرسید که آیا می‌توانند داده‌های ایمنی را تجزیه و تحلیل کنند تا مشخص کنند که آیا شرایطی که معمولاً با حوادث مرتبط هستند وجود دارد یا خیر، که در صورت رسیدگی، می‌تواند از حوادث آینده جلوگیری کند. HR برای تجزیه و تحلیل داده های ایمنی و شناسایی شرایط قابل پیشگیری به تیم HR Analytics مراجعه کرد.

توجه: مجموعه داده‌های ایمنی محل کار به راحتی در دسترس نیستند، بنابراین ما از مجموعه داده‌ای از حوادث خودروهای بریتانیا استفاده کرده‌ایم تا نشان دهیم این تجزیه و تحلیل چگونه می‌تواند انجام شود.

How HR Analytics Helps Workplace SafetyHow HR Analytics Helps Workplace Safety

چرا قوانین انجمن

چندین رویکرد وجود دارد که می توانید برای شناسایی شرایط مرتبط با حوادث ایمنی استفاده کنید. با این حال، قوانین انجمن ابزاری برای شناسایی سریع شرایطی که اغلب با هم اتفاق می‌افتند فراهم می‌کند – یک اولویت کلیدی برای ایمنی و پیشگیری از حادثه.

ابتدا، اجازه دهید یک بررسی سریع از اجزای کلیدی قوانین انجمن انجام دهیم:

1. پشتیبانی

پشتیبانی نشان‌دهنده احتمال ظاهر شدن دو شرط با هم است (یعنی تعداد رخدادهایی که شامل هر دو شرط A و شرط B نسبت به اندازه مجموعه داده‌ها هستند).

پشتیبانی = احتمال وقوع شرایط A و B

2. اعتماد به نفس

اعتماد نشان دهنده احتمال وقوع شرط B با توجه به وقوع شرط A است.

اطمینان = احتمال شرط الف و شرط ب تقسیم بر احتمال شرط الف

3. بلند کنید

Lift نشان دهنده این است که چقدر مطمئن هستیم که می توانیم پیش بینی کنیم که شرط B در صورت وقوع شرط A اتفاق می افتد. به طور کلی توافق شده است که یک مقدار افزایش بیشتر از 1 نشان دهنده ارتباط قوی تر است.

Lift = احتمال شرط B داده شده شرط A تقسیم بر احتمال شرط B

گردش کار

گردش کار برای رسیدگی به این چالش تجاری به شرح زیر است:

  1. داده ها را بلعیده و آماده کنید. ما زمان زیادی را صرف بحث در مورد مراحل انجام شده نمی کنیم و در عوض روی دو مرحله زیر تمرکز می کنیم:
  2. داده ها را تجزیه و تحلیل کنید. در شرایط عادی، قبل از انجام تحلیل‌های پیچیده‌تر، مانند قوانین انجمن، زمان زیادی را صرف انجام تجزیه و تحلیل داده‌های اکتشافی می‌کنیم. در حالی که این تجزیه و تحلیل اکتشافی انجام شده است، مورد بحث قرار نخواهد گرفت و به جای آن، در این مقاله به استفاده از قوانین انجمن خواهیم پرداخت.
  3. برای اطلاع از اقدامات پیشگیرانه، نتایج را تجسم کنید. ما دو روش غیر سنتی برای تجسم قوانین انجمن به دو دلیل ارائه کردیم:
    1. اصول کلیدی قوانین انجمن (به عنوان مثال، پشتیبانی، اعتماد و افزایش)، همیشه با ذینفعان کسب و کار طنین انداز نمی شود، که منجر به سردرگمی و عدم اقدام بعدی می شود. بنابراین، ما به دنبال اشکال شهودی تری از تجسم بودیم که درک و فراخوان به عمل را بهتر تسهیل می کند.
    2. ما بر این باور بودیم که پرداختن به شرایط حادثه قابل پیشگیری بعید است که تأثیر نامطلوبی داشته باشد، بنابراین در تفسیر و تجسم ما نسبت به سایر زمینه‌ها سخت‌تر بود.

گردش کار ترکیبی از R و Python را ارائه می دهد که پیشینه دو نویسنده را منعکس می کند.

اگر می‌خواهید مهارت‌های تجزیه و تحلیل منابع انسانی خود را بهبود ببخشید و نحوه انجام تجزیه و تحلیل داده‌ها در R یا سایر برنامه‌های آماری را بیاموزید، برنامه گواهی تحلیل افراد ما را بررسی کنید!

1. داده ها را بلعیده و آماده کنید

ابتدا کتابخانه های لازم برای هر دو زبان برنامه نویسی را دانلود کردیم. سپس، داده‌های ایمنی جاده‌ای بریتانیا (موجود در وب‌سایت Kaggle) را بارگیری کردیم. دو مجموعه داده وجود دارد، اطلاعات تصادف و اطلاعات خودرو. هر دو مجموعه بسیار بزرگ هستند، بنابراین ما قبل از ادغام دو مجموعه داده برای ترکیب شرایط تصادف و خودرو، تجزیه و تحلیل را روی داده های سال 2015 متمرکز کردیم.

#import necessary libraries import pandas as pd from mlxtend.frequent_patterns import apriori from mlxtend.frequent_patterns import association_rules
""" Load the accident and vehicle data as a pandas dataframe Narrow to 2015 data and needed columns Merge the two dataframes """ #Create dataframe of accident data df=pd.read_csv('/content/drive/MyDrive/Kaggle/Accident_Information.csv',low_memory=False) #set low_memory to false due to size of data #Create dataframe of vehicle data df2=pd.read_csv('/content/drive/MyDrive/Kaggle/Vehicle_Information.csv', low_memory=False, encoding='windows-1252') #set low_memory to false; encoding to addresses characters that flag errors #Narrow dataframes to 2015 data only accident_data = df[df['Year'] == 2015] vehicle_data = df2[df2['Year'] == 2015] #Reset the index and drop new column that is created with old index accident_data = accident_data.reset_index(drop=True) vehicle_data = vehicle_data.reset_index(drop=True) #drop the unused columns accident_data.drop(['1st_Road_Number', '2nd_Road_Number', 'Did_Police_Officer_Attend_Scene_of_Accident', 'Latitude', 'Location_Easting_OSGR','Location_Northing_OSGR', 'Longitude', 'LSOA_of_Accident_Location', 'Pedestrian_Crossing-Human_Control', 'Special_Conditions_at_Site', 'Year', 'InScotland'], axis=1, inplace=True) vehicle_data.drop(['Junction_Location', 'model', 'Vehicle_Location.Restricted_Lane', 'Year'], axis=1, inplace=True) #merge two dataframes using the 'Accident_Index' column merged = pd.merge(accident_data, vehicle_data, how='inner', on=['Accident_Index', 'Accident_Index'])

استفاده از الگوریتم Apriori برای یافتن ارتباط بین شرایط مختلف تصادف به داده‌های طبقه‌بندی نیاز دارد، بنابراین قبل از انجام تجزیه و تحلیل، برخی از داده‌ها را آماده و ترکیب کردیم.

""" انواع داده‌ها را برای آماده‌سازی برای binning داده‌های Bin که دسته‌بندی نشده‌اند، تبدیل کنید. ماه #تبدیل زمان به عدد صحیح ادغام شد['Hour'] = pd.to_datetime(merged['Time']).dt.hour # ستون تصادف_شاخص را به عنوان شاخص برای چارچوب داده تبدیل کنید زیرا یک متغیر قوانین ارتباطی merged.set_index نخواهد بود ('Accident_Index') #bin time into time of day merged['Time_of_Day'] = pd.cut(merged['Hour'], bins=[0,5,12,17,24], include_lowest=True, labels= ['Early Morning',' Morning', 'Affternoon', 'Evening']) ردیف‌ها را با 0 یا 10 محدودیت سرعت رها کنید زیرا به ترتیب فقط 2 و 3 وجود دارد - با 6 مقدار باقی مانده است بنابراین نیازی به bin merged.drop( merged.loc[merged['Speed_limit'] == 0.0].index, inplace=True) merged.drop(merged.loc[merged['Speed_limit'] == 10.0].index, inplace=True) #حذف ردیف ها با سن خودرو بیش از 50 سال merged.drop(merged.loc[merged['Age_of_Vehicle'] > 50.0].index, inplace=True) #bin age of vehicle merged['Grouped_Vehicle_Age'] = pd.cut(ادغام['Age_of_Vehicle' ], bins=[1,10,20,30,40,50], include_lowest=True, labels=['0-10','10-21','21-30','31-40', ' 41-50']، precision=0) #drop ستون‌هایی که دیگر به آن‌ها نیاز نداریم و/یا تبدیل به bins merged.drop(['Date', 'Time', 'Hour', 'Age_of_Vehicle'], axis=1, inplace=True) #تبدیل ماه صحیح به نام ماه تقویم واردات ادغام شد['Month'] = ادغام['Month'].apply(lambda x: calendar.month_abbr[x]) #یک dataframe فقط با متغیرهایی که می‌خواهیم استفاده کنیم ایجاد کنید - رها کردن ستون‌ها دیگر تصادفات ضروری نیست = ادغام شد[['شدت_حادثه'، 'خطرات_راهرو'، 'روز_هفته'، 
                   'Junction_Control'، 'Junction_Detail'، 'Light_Conditions'، 'Road_Surface_Conditions'، 'Road_Type'، 'Speed_Limit'، 'Urban_or_Rural_Area'، 'Weather_Conditions'، 'Age_over_of_ri', 'Age_Our_of_ri' of_Driver'، 'Vehicle_Manoeuvre', 'Month', 'Time_of_Day', 'Grouped_Vehicle_Age']].copy() #محدودیت سرعت را به رشته تبدیل کنید تا بتوانیم تصادفات را یکجا رمزگذاری کنیم['Speed_limit'] = تصادفات['Speed_limit'].astype(str)

در نهایت، ما بر روی متغیرهایی که شرایط قبل از تصادف را نشان می‌دهند، تمرکز کردیم. سپس این متغیرها کدگذاری شدند، روشی که به تحلیلگران اجازه می‌دهد تشخیص دهند که چه شرایطی در طول هر حادثه وجود داشته و چه شرایطی وجود ندارد (به ترتیب به عنوان “1” و “0” نمایش داده می‌شوند).

""" One hot encode all variables Drop columns created for missing values """ #get dummies for all columns (one hot encode) accidents = pd.get_dummies(accidents) #drop identified columns with missing values accidents.drop(['Carriageway_Hazards_Data missing or out of range', 'Junction_Control_Data missing or out of range', 'Light_Conditions_Darkness - lighting unknown', 'Road_Surface_Conditions_Data missing or out of range', 'Road_Type_Unknown', 'Weather_Conditions_Unknown', 'Age_Band_of_Driver_Data missing or out of range', 'Journey_Purpose_of_Driver_Data missing or out of range', 'Journey_Purpose_of_Driver_Not known', 'Sex_of_Driver_Not known', 'Sex_of_Driver_Data missing or out of range', 'Vehicle_Manoeuvre_Data missing or out of range'], axis=1, inplace=True)

2. داده ها را تجزیه و تحلیل کنید

هدف ما ترکیب مجموعه داده‌های ایمنی بزرگ برای شناسایی سریع شرایط قبل از حادثه (که در قوانین انجمن به عنوان سوابق شناخته می‌شوند) بود که اغلب منجر به نتایج متفاوتی از شدت حادثه می‌شود (که به عنوان پیامدها شناخته می‌شوند). بنابراین، تصمیم گرفتیم تجزیه و تحلیل را سه بار، یک بار برای هر شدت تصادف (یعنی خفیف، جدی و کشنده) اجرا کنیم. دلیل ما دو چیز بود:

  1. پیامدهای مختلف شدت حادثه با نرخ‌های متفاوتی رخ داده‌اند و بنابراین نیاز به پشتیبانی متفاوت و پارامترهای متعاقب اعمال شده برای شناسایی شرایط قابل پیشگیری دارند، و
  2. به طور بالقوه امکان اولویت بندی نتایج به دست آمده از تجزیه و تحلیل ها.

قوانین انجمن برای حوادث جزئی

تجزیه و تحلیل توصیفی نشان داد که اکثر حوادث “خفیف” هستند. بنابراین، ما بر روی پارامتر پشتیبانی بالاتر از 0.1 تصمیم گرفتیم، به این معنی که ترکیب شرایط حداقل 10 بار در 100 حادثه رخ می دهد. ما به دلیل روش‌های تجسمی که برای استفاده انتخاب کرده‌ایم، ترکیبی از تنها 2 پیش‌فرض را انتخاب کردیم و پارامتر Lift را روی 1 نگه داشتیم تا ارتباط‌های قوی‌تر را شناسایی کنیم.

#Apriori min support for slight - highest support min_support = 0.1 #Max lenght of apriori n-grams max_len = 2 frequent_items = apriori(accidents, use_colnames=True, min_support=min_support, max_len=max_len + 1) rules = association_rules(frequent_items, metric='lift', min_threshold=1) target = '{'Accident_Severity_Slight'}' results_attrition_slight = rules[rules['consequents'].astype(str).str.contains(target)].sort_values(by='confidence', ascending=False) #add a 'length' column to capture the length of antecedents for futher filtering later results_attrition_slight['length'] = results_attrition_slight['antecedents'].apply(lambda x: len(x)) print(results_attrition_slight.shape) results_attrition_slight
مشاهده نمونه جدول اکسل

144 سطر × 10 ستون

این تجزیه و تحلیل 144 قانون تداعی یا 144 ترکیب از دو شرایط را شناسایی کرد که با یک حادثه خفیف همراه هستند، حداقل 10 بار از 100 حادثه. این قوانین در زیر به تصویر کشیده شده است.

انجمن برای حوادث جدی

تصادفات جدی کمتر از خفیف بود. بنابراین، ما تصمیم گرفتیم که پارامتر پشتیبانی را روی 0.05 تنظیم کنیم، به این معنی که ترکیب شرایط شناسایی شده باید حداقل 5 بار از 100 بار در مجموعه داده رخ دهد. پارامترهای باقی مانده ثابت نگه داشته شدند (یعنی ترکیبات مقدم 2 و Lift 1 بود).

#Apriori min support for serious accidents - medium support min_support = 0.05 #Max lenght of apriori n-grams max_len = 2 frequent_items = apriori(accidents, use_colnames=True, min_support=min_support, max_len=max_len + 1) rules = association_rules(frequent_items, metric='lift', min_threshold=1) target = '{'Accident_Severity_Serious'}' results_attrition_serious = rules[rules['consequents'].astype(str).str.contains(target)].sort_values(by='confidence', ascending=False) #add a 'length' column to capture the length of antecedents for futher filtering later results_attrition_serious['length'] = results_attrition_serious['antecedents'].apply(lambda x: len(x)) print(results_attrition_serious.shape) results_attrition_serious

بیست و دو ارتباط یا 22 ترکیب از شرایطی که با یک تصادف جدی مرتبط هستند، حداقل 5 بار از 100 حادثه (مجموع) شناسایی شدند. این تداعی ها در زیر به تصویر کشیده شده است.

انجمن های حوادث مرگبار

تجزیه و تحلیل توصیفی، حوادث مرگبار بسیار کمتری را در مقایسه با حوادث جدی و جزئی نشان داد. علیرغم پارامتر پشتیبانی کمتر از 0.01، هیچ ارتباطی بین پیشینیان برای حوادث کشنده شناسایی نشد، که شاید حاکی از رویدادهای بسیار تصادفی باشد.

3. نتایج را تجسم کنید

#Apriori min support for fatal accidents - lowest support min_support = 0.01 #Max lenght of apriori n-grams max_len = 2 frequent_items = apriori(accidents, use_colnames=True, min_support=min_support, max_len=max_len + 1) rules = association_rules(frequent_items, metric='lift', min_threshold=1) target = '{'Accident_Severity_Fatal'}' results_attrition_fatal = rules[rules['consequents'].astype(str).str.contains(target)].sort_values(by='confidence', ascending=False) #add a 'length' column to capture the length of antecedents for futher filtering later results_attrition_fatal['length'] = results_attrition_fatal['antecedents'].apply(lambda x: len(x)) results_attrition_fatal

پس از چند آزمایش، ما دو روش را برای تجسم قوانین انجمن برای حوادث جزئی و جدی انتخاب کردیم. این روشها عبارت بودند از:

  1. درختان در حال گسترش؛ و
  2. نمودار روزتایپ.

در زیر نمودارهای درختی در حال گسترش برای حوادث جزئی و جدی وجود دارد. نمودارها از سمت چپ با نوع تصادفی شروع می‌شوند و سپس می‌توانند به سمت راست گسترش داده شوند و شرایطی را که نقش دارند را نشان می‌دهند. اندازه دایره ها بر اساس تعداد دفعاتی است که شرایط در مجموعه کامل قوانین انجمن شناسایی شده رخ داده است. مزیت کلیدی Expanding Tree سهولت توضیح و درک آن توسط مخاطبان غیر فنی است.

#کتابخانه کتابخانه ها(مرتبط) ## ── پیوست کردن بسته ها ─────── ─ tidyverse 1.3.1 ── ## ✓ ggplot2 3.3.5 ✓ purrr 0.3.4 ## ✓ tibble 3.1.5 ✓ dplyr 1.0.7 ## ✓ tidyr 1.1.0 st#r . ✓ forcats 0.5.1 ## ── تضادها ───────── ── tidyverse_conflicts() ── ## x dplyr::filter() masks stats::filter() ## x dplyr::lag() masks stats::lag() library(collapsibleTree) library(echarts4r)# ستون های پیشین از خروجی ها aa_cleaning <- function(x){ x = stringr::str_remove_all(string = x, pattern = "frozenset") x = stringr::str_remove_all(string = x, pattern = "(| = (df){ df %>% dplyr::mutate(antecedents = aa_cleaning(antecedents), consequents = aa_cleaning(consequents)) %>% tidyr::separate(antecedents, into = c("antecedent_1", "antecedent_2"), sep = ",") %>% dplyr::mutate_at(vars(contains("پیش")), ~stringr::str_trim(.)) } # قوانین را برای تجسم Rosetype پاک کنید simplex_cleaning <- function(df){ df %>% dplyr::mutate(antecedents = aa_cleaning(antecedents), consequents = aa_cleaning(consequents)) %>% tidyr::separate_rows(antecedents, sep = ",") %>% dplyr::mutate_at(vars(s "Antecedent"))، ~stringr::str_trim(.)) } # ایجاد یک نمودار درختی تاشو aa_collapsibleTree_vis <- function(df, label_name){ collapsibleTree(df, hierarchy = c("antecedent_1", "antecedent_2"),
        width = 700, height = 700, nodeSize = "leafCount", collapsed = TRUE, Zoomable = FALSE, root = label_name ) } # یک تصویرسازی Rosetype ایجاد کنید clean_vis_simple_conditions <- function(df){ df %>% mutate( antecedents_str. پیشینیان)، پیشینیان = str_trim(مقدمات) ) %>% group_by(مقدمات) %>% خلاصه (counter = n()) %>% ungroup() %>% arrange(counter) %>% mutate(antecedents = forcats: :as_factor(antecedents)) %>% echarts4r::e_chart(antecedents) %>% e_pie(counter, name = "Event Condition & Count", roseType = "radius") %>% echarts4r::e_title("") % >% echarts4r::e_legend(FALSE) %>% echarts4r::e_tooltip() } # بارگیری و تجسم - آسیب های جدی serioz_results_tbl <- readr::read_csv(file = "../02_outputs/serious_results.csv") %% janitor::clean_names() ## نام‌های جدید: ## * `` -> ...1 ## ردیف: 22 ستون: 11 ## ── مشخصات ستون ───────────── ────────────────── ── ## جداکننده: "," # # chr (2): پیشینیان، پیامدها ## dbl (9): ...1، پشتیبانی پیشین، پشتیبانی، پشتیبانی، اطمینان، ... ## ## ℹ برای بازیابی ستون کامل از «spec()» استفاده کنید مشخصات این داده ها ## ℹ انواع ستون ها را مشخص کنید یا «show_col_types = FALSE» را تنظیم کنید تا این پیام خاموش شود. serioz_cleaned_tbl <- duplex_cleaning(serial_results_tbl) ## اخطار: انتظار می رود 2 قطعه. قطعات گمشده پر شده با «NA» در 6 ردیف [1، 4، 10، ## 11، 16، 21]. serioz_injuries_tree <- aa_collapsibleTree_vis(serious_cleaned_tbl, "Serious Injuries")
serioz_cleaned_simple_tbl <- simplex_cleaning(sious_results_tbl) serioz_injuries_rose <- clean_vis_simple_conditions(serious_cleaned_simple_tbl) htmlویجت ها::saveWidget(serious_injuries_tree, file = "serious.widgeWidget:sserious_htmlinjuries"_ e, file = "sious_injuries_rose.html") # Load and Visualize - Slight صدمات slight_results_tbl <- readr::read_csv(file = "../02_outputs/results_attrition_slight.csv") %>% janitor::clean_names() ## نام های جدید: ## * `` -> ...1 ## ردیف : 144 ستون: 11 ## ── مشخصات ستون ──────── ───────────────── ## جداکننده: "," ## chr (2): پیشینیان، پیامدها ## dbl (9): ...1، پشتیبانی پیشین، پشتیبانی، پشتیبانی، اطمینان، ... ## ## ℹ از «spec()» برای بازیابی مشخصات ستون کامل برای این داده ها استفاده کنید. ## ℹ انواع ستون ها را مشخص کنید یا «show_col_types = FALSE» را تنظیم کنید تا این پیام خاموش شود. slight_cleaned_tbl <- duplex_cleaning(slight_results_tbl) ## اخطار: انتظار می رود 2 قطعه. قطعات گمشده پر شده با «NA» در 21 ردیف [14، ## 28، 33، 64، 68، 70، 71، 73، 79، 82، 99، 102، 105، 106، 117، 125، 126، 129، ، ## 137، ...]. slight_injuries_tree <- aa_collapsibleTree_vis(slight_cleaned_tbl, "Slight Injuries") slight_cleaned_simple_tbl <- simplex_cleaning(slight_results_tbl) slight_injuries_rose <-clean_vis_simple_vetdget slight_injuries_tree, file = "slight_injuries_tree.html") htmlwidgets::saveWidget(slight_injuries_rose, file = "slight_injuries_rose.html")

صدمات جزئی به عنوان نمودار درخت در حال گسترش:

جراحات خفیف درخت دانلود

صدمات جدی به عنوان نمودار درخت در حال گسترش:

درخت صدمات جدی دانلود

نمودار Rosetype (بخشی از کتابخانه echarts4r) چرخشی بر روی نمودار پای کلاسیک است. در زمینه ما، ساده‌سازی بیشتر قوانین انجمن تولید شده ما را نشان می‌دهد. دو شرط در هر قانون مشخص شد (یعنی به دو ستون در یک مجموعه داده فکر کنید)، سپس هر قانون به یک ستون کاهش یافت (یعنی یکی روی دیگری قرار داده شود). در نهایت، تعداد هر یک از شرایط حادثه منحصر به فرد محاسبه شد. این تعداد شرایط حادثه به تصویر کشیده شد.

مزیت بسیار واضح نمودار روزتایپ سرعت و وضوحی است که با آن می توانید قوانین اساسی را به تصویر بکشید و درک کنید. در عرض چند دقیقه، ما توانستیم بیش از 250000 حادثه ثبت شده را بگیریم و با اطمینان شرایطی را که معمولاً با آن حوادث مرتبط است تعیین کنیم. مسلماً نمونه ای قدرتمند از تولید سریع بینش است.

آسیب های جزئی به عنوان نمودار روزتایپ:

slight_injuries_rose دانلود

صدمات جدی به عنوان نمودار روزتایپ:

جراحات جدی گل رز دانلود

در مورد نمودارهای درختی گسترش یافته و نمودار رزتایپ، نقطه ضعف این است که تجسم ها تفسیری ساده از قانون اساسی شناسایی شده، و از دست دادن جزئیات پشتیبانی، اطمینان و افزایش الگوریتم هستند. با توجه به این واقعیت، ما از معیارهای اصلی قوانین انجمن برای ایجاد فهرست کوتاهی از قوانین استفاده کردیم که سپس آن را تجسم کردیم. در حالی که این تجسم‌ها ممکن است برای ناب‌شناسان آماری جذاب نباشند، اما این پتانسیل را دارند که با کمترین هزینه برای «حقیقت» الگوریتم زیربنایی، از مخاطبان غیر فنی، به‌ویژه رهبران تجاری، مشارکت کنند.

بسته شدن

ما از قوانین انجمن برای تجزیه و تحلیل مجموعه داده‌های بزرگ حوادث ترافیکی جاده‌ای برای شناسایی شرایط حادثه قابل پیشگیری استفاده کردیم. ما دریافتیم که این رویکرد در ترکیب سریع داده‌های ایمنی برای شناسایی نقاط مداخله مفید است، بنابراین به نقطه «به من بگو آنچه باید بدانم» می‌رسیم. در حالی که ما از حوادث ترافیکی جاده‌ای استفاده می‌کردیم، این رویکرد به راحتی به داده‌های ایمنی سازمانی کمک می‌کند، و یکی از نویسندگان از آن برای تجزیه و تحلیل مجموعه داده‌های آسیب‌های نظامی برای اطلاع از پیشگیری استفاده کرده است.

علاوه بر این، ما به دنبال کشف راه های جدید برای تجسم خروجی قوانین انجمن بودیم. هر دو نمودار Expanding Tree و Rosetype تفسیر واضح و قابل دسترس تری از خروجی قوانین انجمن نسبت به روش های سنتی ارائه کردند. روش‌های تجسم مورد استفاده دارای این مزیت هستند که به راحتی توسط مخاطبان غیر فنی قابل تفسیر هستند، که ممکن است هنگام اجتماعی کردن نتایج با رهبران ایمنی و/یا سازمانی مفید باشد. با این حال، هر دوی آنها معیارهای فنی ایجاد شده توسط قوانین انجمن را نادیده گرفتند، که ممکن است نابکاران آماری را از حق امتیاز محروم کند.

اگر علاقه مند به استفاده از قوانین انجمن هستید، این روش ممکن است برای سایر موارد استفاده از منابع انسانی، از جمله:

  • فرسایش – شناسایی شرایطی که منجر به ماندن یا ترک سازمان توسط کارکنان می شود. نمونه ای از این تحلیل را می توانید در اینجا بیابید.
  • عملکرد – شناسایی شرایطی که منجر به عملکرد پایین یا بالا می شود. و
  • یادگیری – شناسایی دوره‌ها/ ماژول‌های آموزشی که کارمندان اغلب با هم تکمیل می‌کنند تا یک موتور توصیه‌کننده را تغذیه کنند (یعنی افرادی که این دوره را تکمیل کردند دوره‌های X، Y و Z را نیز انجام دادند).
آدام رهبر داده ها و تجزیه و تحلیل افراد در گروه Reece در ملبورن، استرالیا است. آدام با تکیه بر پیشینه دانشگاهی چند رشته ای در روانشناسی، فناوری اطلاعات، اپیدمیولوژی و امور مالی، طرفدار طرح دو سوال در کار خود است: 1. پس چه؟ و 2. حالا چی؟ او مسئول ترکیب مقیاس موضوعات مرتبط با افراد از طریق آمار و یادگیری ماشینی است و سازمان‌ها را قادر می‌سازد تا از تمرکز کارکنان در تصمیم‌گیری خود استفاده کنند.

منبع


برچسب‌ها:

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *