Ayrılan Personel Modeli
Merhaba, iyi haftasonları ve keyifli bir okuma olmasını dilerim. Tahminleme modelleri üzerinde gerçekleştiriyor olduğum çalışmaların son aşaması olan ayrılan personellerin şirketlerinden ayrılmadan önce tahmin edilmesini sağlayan ve literatürde “Employee Churn Model” olarak bilinen Ayrılan personel tahminleme modeli üzerinde çalışıyor olacağız. Ayrıca sonrasında da ayrılacak olan personeli ayrılmasını önleyecek ve şirketimizde tutabilecek neler yapabiliriz bunun üzerinde yazıyor olacağız.
Her şirketin İnsan kaynakları KPI’ları (Key Performance Indicators) arasında bulunan Turn- Over oranı sadece bir departmanı ilgilendiren bir durum değil; şirketler için de oldukça maliyetli durumlar yaratabilen bir ölçüttür. Öyle ki bir pozisyona doğru personelin yerleştirilmesi bazen şirketler için oldukça maliyetli durumlar yaratabilmektedir. Amerikan İlerleme Merkezi tarafından yapılan bir araştırma, şirketlerin bir çalışanı değiştirmek için genellikle ilgili çalışanın maaşının yaklaşık beşte biri kadar bir ücret kadar maliyet ödediğini ve yöneticiler gibi stratejik öneme sahip yüksek ücretli çalışanların değiştirilmesi durumunda maliyetin önemli ölçüde artabileceğini buldu. Bu maliyetler, bir şirketten ayrılan personelin ayrılmış olduğu pozisyonu yeniden doldurabilmek için görüşme yapmak ve yerine birini bulmak için harcanan zamanın miktarı, yeni çalışan yeni role alışırken birkaç ay boyunca üretkenlik kaybı olarak daha özel seviyede açıklanabilir.
Çalışanların şirketinden ayrılma olasılıklarının neden ve ne zaman en yüksek seviyeye ulaştığını anlamak, bir çalışanı elde tutma süreçlerini iyileştirmenin yanı sıra potansiyel yeni işe alımları da önceden planlamaya yönelik eylemlerde de İnsan kaynakları profesyonellerine yardımcı olabilir.
Çeşitli Makine Öğrenmesi problemlerinde kullanılabilecek bir yöntem kullanarak adım adım sistematik bir yaklaşım kullanıyor olacağım. Bu çalışma, literatürde “İK Analitiği” , “İnsan Analitiği” olarak bilinen kavramların kapsamına girmektedir.
Bu çalışmamızda, “Aktif bir çalışanın şirketten ayrılma olasılığı nedir?” , “Bir çalışanın şirketten ayrılmasının temel göstergeleri nelerdir?” , “Çalışanların elde tutulmasını iyileştirmek için sonuçlara dayalı olarak hangi politikalar veya stratejiler benimsenebilir?” sorularına yanıt bulmaya çalışıyor olacağız.
Çalışmamız kapsamında ele alacak olduğumuz problem, eski çalışanlar ile ilgili verilere sahip olduğumuz göz önüne alındığında, bu iki sınıfın ikili değişken olacak şekilde (aktif çalışan(0) ve ayrılmış olan personel(1) ) standart bir denetimli sınıflandırma problemidir. Hedef değişkenimiz Y, bir personelin çalışmakta olduğu şirketten ayrılma olasılığı değeridir.
Biz ilgili iş problemimize yanıt bulabilmek için örnek bir veri seti olan ve IBM şirketine ait olan veri setimizi kullanıyor olacağız. Veri setimiz 1470 çalışanı ve 35 farklı değişkeni içermektedir. Daha fazla uzatmadan çalışmamıza geçelim.
Kütüphanelerin İmport Edilmesi →
Bu çalışmamızda oldukça geniş bir kütüphane yelpazesinde çalışıyor olacağız. İkinci aşama olarak veri setimizi import edelim.
Veri setinin import edilmesi →
Veri setimizi de import ettikten sonra veri setinin genel hatlarına bakalım.
Nümerik değer taşıyan değişkenler için betimsel istatistik bilgilerine göz atalım.
Nümerik değişkenlerin hepsine burada yer vermedim. Biraz özet bir görsel olduğuna dikkat edebilirsiniz.
Sayısal değişkenlerin dağılımlarını bir de grafik ile görselleştirelim ve genel bir bilgi edinmiş olalım.
Veri Seti Değişkenlerinin Dağılımları ve Görselleştirilmesi →
Görselleştirmeden sonra yaş değişkenimiz için özele inelim ve aktif çalışan personellerimizin ayrıca ayrılan personellerimizin yaş ortalaması standart sapma değerlerini görelim.
Aktif ve Eski çalışanlar için yaş dağılımları yalnızca bir yıl farklıdır.
Eski çalışanların yaş ortalaması 33,6 iken, mevcut çalışanların yaş ortalaması 37.6'dır.
Hedefin değerine göre renklendirilmiş bir çekirdek yoğunluk tahmini (KDE) grafiği oluşturalım. Çekirdek yoğunluk tahmini (KDE), rastgele bir değişkenin olasılık yoğunluk fonksiyonunu tahmin etmenin parametrik olmayan bir yoludur. Müşterinin Yaşı ile geri ödeme kabiliyeti arasında bir korelasyon olup olmadığını belirlememize izin verecektir.
Yoğunluk grafiklerindeki yeşil çizgi ayrılmış olan personelleri temsil etmekte; mavi çizgi ise mevcutta çalışan personelleri temsil etmektedir.
Veri setinde çeşitli Eğitim Alanları temsil edilmektedir: İnsan Kaynakları, Yaşam Bilimleri, Pazarlama, Tıp, Teknik Derece ve çeşitli Diğer kategorisi. Burada, her eğitim alanı için normalleştirilmiş ayrılan payını gösteren bir grafik çiziyorum.
Cinsiyet dağılımı, veri setinde eski çalışanların normalleştirilmiş cinsiyet dağılımının erkekler için %17,0 ve kadınlar için %14,8 olduğunu göstermekte, veri kümesinin eski çalışan kadın çalışanlara göre görece daha yüksek bir oran içerdiğini göstermektedir.
Veri setinde üç medeni durum bulunmaktadır: Evli (673 çalışan), Bekar (470 çalışan), Boşanmış (327 çalışan).
Bekar çalışanlar, %25 ile ayrılanların en büyük oranını göstermektedir.
Çalışanların işe gitmeleri için evden uzaklığı 1 ila 29 mil arasında değişmektedir.
Değişkenliklere ve ortalama bilgilerine baktıktan sonra yoğunluk grafiğine bakalım. Aşağıdaki KDE grafiğine göre, Evden Uzaklık ile Yıpranma Durumu arasında fark edilebilir güçlü bir ilişki yoktur.
Yoğunluk grafiklerindeki yeşil çizgi ayrılmış olan personelleri temsil etmekte; mavi çizgi ise mevcutta çalışan personelleri temsil etmektedir.
Sonraki aşamada ise ayrılan personellerin departmanlara göre dağılımlarına bakalım.
Veriler, üç departmandan çalışan verilerini içerir: Araştırma ve Geliştirme, Satış ve İnsan Kaynakları.
Departmanlara göre ayrılan personellere baktık sonrasında ise, personellerin iş gezisine ya da şirket dışı görevlere çıkma sıklıklarına bakalım.
Burada, İş Seyahati sıklığı ile Yıpranma Durumu arasındaki ilişkiye bir ön bakış yapmış oluyoruz. “Frequently” değerine sahip olan çalışanların ayrılma oranlarının daha büyük olduklarını görebiliriz. Ancak burada dikkat edilmesş gereken bir husus olarak, iş seyahati durumuyla ilişkili seyahat ölçümleri açıklanmamış durumdadır.(Yani, kaç saatlik Seyahatin “Sık” olarak kabul edildiği).
Şirketteki rolüne göre ayrılan personeller sıklık değerlerini görelim. Veri kümesinde birkaç İş Rolü listelenmiştir: Satış Yöneticisi, Araştırma Bilimcisi, Laboratuvar Teknisyeni, Üretim Direktörü, Sağlık Hizmetleri Temsilcisi, Yönetici, Satış Temsilcisi, Araştırma Direktörü, İnsan Kaynakları.
Rollerine göre ayrılan personelleri görselleştirdiğimize göre sonraki aşamada personellerin seviyesine göre ayrılan personellere bakalım. Çalışanlar, organizasyon içinde 1 (personel) ile 5 (yönetici/yönetici) arasında değişen atanmış bir seviyeye sahiptir. Atanmış İş Düzeyi “1” olan çalışanlar, en büyük ayrılma yüzdesine sahip personeller olduğu görülmektedir.
Uzmanlık seviyesine göre incelememizi yaptık, sonraki aşamada personellere geçen yıl aldırılmış eğitim sayısı dağılımına bakalım. Veriler, çalışanların bazı eğitimlere erişimi olabileceğini gösteriyor. Bir özellik, çalışanın bu tür bir eğitime katılmasından bu yana kaç yıl geçtiğini gösterir.
Yoğunluk grafiklerindeki yeşil çizgi ayrılmış olan personelleri temsil etmekte; mavi çizgi ise mevcutta çalışan personelleri temsil etmektedir.
Eğitim adeti dağılımına baktıktan sonra ise iş değiştirme sayılarına göre, daha önce çalışmış oldukları şirket sayılarına göre ayrılan personeller dağılımına bakalım. 0 muhtemelen kayıtlara göre çalışanın sadece bu şirkette çalıştığını gösteriyor
Sonraki aşamada ise personellerin bir şirkette çalıştığı sürelerin dağılımlarına bakıyor olacağız.
Sonraki aşamada personellerin mevcut pozisyonda çalıştıkları dönem bilgisinin yıl cinsinden dağılımına bakıyor olacağız.
Personellerin almış oldukları son terfiden bugüne kadar geçen süre dağılımlarına bakalım.
Personellerin toplam çalışma süresi dağılımlarına bakalım.
Personellerin mevcut yöneticileri ile çalışma süreleri dağılımlarına bakalım.
Sonrasında normal bir personelin normaldeki haftalık mesai saatine bakıyor olacağız hemen ardından ise fazla mesaiye kalma durumlarını ve mesaiye kalan personellerin sıklık grafiğini görüyor olacağız.
Personellerin aylık gelirleri şirketleri tarafından belirlenmiş saatlik günlük ve aylık ücretlere ait dağılımlara bakalım.
Personellerin yıllık maaş artışı düzeylerine bakalım.
Son olarak bizim dikkat ediyor olduğumuz değişkenlerimizin sonuncusu olan ve personelin çevresel tatminini gösteren değişkenimizin dağılımına bakalım. Çevre Memnuniyeti 1 ‘Düşük’ 2 ‘Orta’ 3 ‘Yüksek’ 4 ‘Çok Yüksek’ olarak alınmıştır. Çevre Memnuniyeti puanı arttıkça Ayrılan Çalışan Oranı azalmaktadır.
Biraz özet olabilmesi için verı setimizdeki tüm değişkenlerimizin görselleştirmesini çalışmamızın bu bölümüne dahil etmedik.
Bağımsız değişkenlerimiz için görselleştirmemizi yaptıktan sonra hedef değişkenimiz için gerçekleşmiş durumlara bakalım. ‘Attrition’ özelliği, bu Makine Öğrenimi sorununun neyle ilgili olduğudur. Çalışanın kişisel ve mesleki geçmişiyle ilişkili diğer ilgili özellikleri kullanarak ‘Attrition’ özelliğinin değerini tahmin etmeye çalışıyoruz. Burada ‘Attrition’ ‘Yes’ değerini almış olması o çalışanın işten ayrılmış olduğunu göstermektedir.
Yukarıdaki grafikte gösterildiği gibi, bunun dengesiz bir sınıf problemi olduğunu görüyoruz. Nitekim, veri setimizde Mevcut Çalışanların yüzdesi %83,9 ve Eski çalışanların yüzdesi: %16,1'dir.
Makine öğrenimi algoritmaları, genellikle her sınıfın örnek sayısı kabaca eşit olduğunda en iyi sonucu verir. Makine Öğrenimi algoritmalarımızı uygulamadan önce bu hedef özellik dengesizliğini ele almamız gerekecek.
En önemli korelasyonlardan bazılarına bir göz atalım. Korelasyon katsayılarının yalnızca doğrusal korelasyonları ölçtüğünü hatırlamakta fayda var.
Yıpranma ve bu faktörler arasındaki ilişkiyi görselleştirmek için bir ısı haritası çizelim.
Yukarıda gösterildiği gibi, “Monthly Rate”, “Number of Companies Worked” ve “Distance From Home” , Attrition ile pozitif ilişkilidir;
“Total Working Years”, “Job Level”, ve “Years In Current Role”, Attrition ile negatif ilişkilidir.
Bu görselleştirmelerden çıkartmış olduğumuz bilgilere bir göz atalım:
- Veri kümesinde herhangi bir eksik veya hatalı veri değeri bulunmaz ve tüm özellikler doğru veri türündedir.
- Hedef özelliklerle en güçlü pozitif korelasyonlar şunlardır: Performance Rating, Monthly Rate, Num Companies Worked, Distance From Home.
- Hedef özelliklerle en güçlü negatif korelasyonlar şunlardır: Total Working Years, Job Level, Years In Current Role, and Monthly Income.
- Veri setinde Aktif Çalışanları tanımlayan gözlemlerde dengesizlik olduğu görülmekte.
- Analizimiz için çeşitli özellikler (yani sütunlar) gereksizdir, yani: Employee Count, EmployeeNumber, Standard Hours, and Over 18.
Bunların yanı sıra:
- Bekar çalışanlar, Evli ve Boşanmış çalışanlarla karşılaştırıldığında, ayrılanların en büyük oranını göstermektedir.
- Ayrılanların yaklaşık %10'u şirketteki 2. yıl dönümlerine ulaştıklarında ayrıldı.
- Daha yüksek maaşlı ve daha fazla sorumluluğa sahip sadık çalışanlar, meslektaşlarına göre daha düşük oranda işten ayrılma göstermektedir.
- İşlerinden daha uzakta yaşayan insanlar, meslektaşlarına göre daha yüksek oranda işten ayrılma göstermektedir.
- Sık seyahat eden kişiler, benzerlerine göre daha yüksek oranda ayrılanlar göstermektedir.
- Fazla mesai yapmak zorunda kalanlar, meslektaşlarına göre daha yüksek oranda işten ayrılanlar göstermektedir.
- Satış Temsilcisi olarak çalışan çalışan, gönderilen veri setinde önemli bir Ayrılan yüzdesi gösterir.
- Daha önce birkaç şirkette çalışmış olan (zaten işyerleri arasında “zıplayan”) çalışanlar, meslektaşlarına kıyasla daha yüksek oranda işten ayrılanlar göstermektedir.
Veri Ön İşleme Aşamaları →
Bu bölümde, Machine Learning algoritması uygulaması için veri setlerini hazırlamak için veri ön işleme adımlarını gerçekleştiriyoruz.
Makine Öğrenimi algoritmaları, tahmin değişkenleri olarak tipik olarak yalnızca sayısal değerlere sahip olabilir. Bu nedenle, kategorik değişkenleri sayısal değerlerle kodladıkça Label Encoder gerekli hale gelir. Çok sayıda benzersiz değere sahip kategorik özellikler için özellik önemini tanıtmaktan kaçınmak için, aşağıda gösterildiği gibi hem Label Encoding hem de One-Hot Encoding kullanacağız.
Label encoder ile sayısallaştırma yaptıktan sonra kategorik değişkenleri dummy değişken olarak değiştirme işlemini gerçekleştirelim.
Veri setimizdeki değişkenleri değişken ölçeklendirme işlemine tabii tutuyoruz. Burada MinMaxScaler kullanılması esas olarak, değişkenlere ait değerleri 0 ile n arasında olacak şekilde daraltır. Makine Öğrenimi algoritmalarına input olarak verilen sayısal değişkenleri benzer bir ölçeğe indirgenip input olarak verildiğinde daha iyi performans gösterir. Bu durumda 0 ile 5 arasında ölçeklendirme yapıyoruz.
Veri Setinin Test Ve Train Olarak Ayırılması →
Herhangi bir Makine Öğrenimi algoritmasını uygulamadan önce, eğitim ve test veri kümelerini ana veri çerçevemizden ayırmamız gerekir.
Burada hedefi yeni bir dataframe olarak atıyoruz ve onu sayısal bir özelliğe dönüştürüyoruz.
Kullanışsız veri sütunlarını ve hedef sütununu veri setinden drop ile çıkartıyoruz.
Sınıf dengesizliğine sahip olduğumuz için (yani Turn over= 0'dan turn over= 1'den daha fazla çalışan), veri kümesini bölerken eğitim veri kümesindekiyle aynı oranı korumak için stratify=y kullanalım.
Makine Öğrenmesi Algoritmalarının Kurulması →
Görece daha karmaşık makine öğrenmesi modellerine geçmeden önce, bir takım temel algoritmayı (kullanıma hazır hiper parametreleri kullanarak) kullanalım. Bu bölümde ele alınan algoritmalar şunlardır: Lojistik Regresyon, Rastgele Orman, SVM, KNN, Karar Ağacı Sınıflandırıcısı, Gaussian NB.
Sonrasında bu algoritmaların bazı almış olduğu değerleri tablo biçiminde gösterelim.
Sınıflandırma Doğruluğu, yapılan tüm tahminlerin oranı olarak yapılan doğru tahminlerin sayısıdır.
Sınıflandırma problemleri için en yaygın değerlendirme metriğidir. Ancak, yalnızca her sınıfta eşit sayıda gözlem olduğunda ve tüm tahminler ve tahmin hataları eşit derecede önemli olduğunda gerçekten uygun olduğu için sıklıkla yanlış kullanılır. Bu projede durum böyle değil, bu nedenle farklı bir puanlama metriği daha uygun olabilir.
Diğer bir performans ölçütü olarak ROC Eğrisini alıyoruz. ROC Eğrisi(veya kısaca AUC) altındaki alan, ikili sınıflandırma problemleri için bir performans ölçüsüdür.
AUC, bir modelin pozitif ve negatif sınıfları ayırt etme yeteneğini temsil eder. 1.0 alanı, tüm tahminleri mükemmel bir şekilde yapan bir modeli temsil eder. 0,5'lik bir alan, rastgele kadar iyi bir modeli temsil eder.
ROC AUC karşılaştırma analizimize dayanarak, Lojistik Regresyon ve Rastgele Orman, en yüksek ortalama AUC puanlarını gösterir. Daha fazla analiz için bu iki algoritmayı daha detaylı ele alacağız.
Lojistik Regresyon Modeli →
Lojistik Regresyon algoritmasını kullanmaya daha yakından bakalım. Lojistik Regresyon Modelimizi eğitmek ve AUC puanını tahmin etmek için 10 kat Çapraz Doğrulama kullanacağım.
GridSearchCV, bir tahmin edici için belirtilen parametre değerleri üzerinde arama yaparak hiper-parametrelerde ince ayar yapılmasına izin verir.
Yukarıda gösterildiği gibi, GridSearchCV’den elde edilen sonuçlar, puanlama metriği olarak ROC_AUC kullanılarak ince ayarlı hiper parametre sağladı.
Karışıklık matrisi, doğruluk puanının ve etiketlerimizde neler olup bittiğinin çok daha ayrıntılı bir temsilini sağlar .
İkili tahmini hedef çıktıları(0 veya 1) almak yerine, tahmin edilen hedefle bir olasılık ilişkilendirilebilir.
Elde edilen çıktı ya da tahmin sonucu, verilerin sınıf 0'a (çalışan ayrılmıyor) ait olma olasılığına atıfta bulunan bir birinci indeks sağlar ve ikincisi, verilerin sınıf 1'e (çalışan ayrılıyor) ait olma olasılığını ifade eder.
Ortaya çıkan AUC puanı, optimizasyon adımı sırasında bu en iyi puandan daha yüksektir. Belirli bir etiketin olasılıklarını tahmin etmek, bize bir çalışanın şirketten ayrılma olasılığının bir ölçüsünü sağlar.
Yukarıdaki paragrafta anlatıldığı üzere ve sonrasında görsel ile desteklenildiği üzere Lojistik Regresyon modelimiz bir personelin şirketten ayrılıyor olmasını %85 oranında doğru olarak tahmin edebilmektedir.
Random Forest Classifier →
Random Forest algoritmasını kullanmaya daha yakından bakalım. AUC puanına karşı çapraz doğrulama ile Random Forest algoritmaları hiper parametrelerinde fine-tune işlemi yapıyor olacağım.
Rastgele Orman, hedef özelliği tahmin etmede hangi özelliklerin en önemli olduğunu bilmemizi sağlar (bu proje için belirlenen hedef değişken “Attrition”). Aşağıda, özellikleri önemlerine göre çiziyoruz.
Random Forest, en önemli 10 göstergeyi (aşağıdaki tabloda sıralanmıştır) belirlememize yardımcı oldu.
Confusıon matrisi, doğruluk puanının ve etiketlerimizde neler olup bittiğinin çok daha ayrıntılı bir temsilini sağlar . Lojistik regresyon modeli için çizmiş olduğumuz confusion matrisini random forest için de çizelim.
Lojistik regresyon modelinde hesaplamış olduğumuz auc skorunu random forest için de hesaplıyoruz ve model performansımızı optimize ediyoruz.
Yukarıda gösterildiği gibi, fine-tune ile güçlendirilmiş Lojistik Regresyon modeli, Rastgele Orman Sınıflandırıcısına kıyasla daha yüksek bir AUC puanı gösterdi.
Sonuç →
Şirket çalışanları hakkında (Yeni Katılanlar ve yeni Ayrılanlar hakkında) daha fazla veri oluşturduğundan, algoritma ek veriler kullanılarak yeniden eğitilebilir ve teorik olarak, her birine atanan olasılık etiketine dayalı olarak işten ayrılma konusunda yüksek riskli çalışanları belirlemek için daha doğru tahminler üretebilir
Çalışanlar, aşağıdaki şekilde öngörülen etikete dayalı olarak bir “Risk Kategorisi” atayabilir:
< 0,6 olasılığına sahip çalışanlar için düşük risk
0,6 ile 0,8 arasında olasılığa sahip çalışanlar için orta risk
> 0,8 olasılığına sahip çalışanlar için yüksek risk
Bir çalışmamızın daha sonuna geldik. Bu sefer fazlası ile uzun bir çalışma oldu. Bir sonraki çalışmamızda görüşmek üzere.