idea worker - fikir işçisi


HİLE DENETİMİ İÇİN MAKİNE ÖĞRENMESİ 1: BASİT DOĞRUSAL REGRESYON

18.03.2020 23:56

Şirketimizle ilgili şu veriler elimizde olsun: Hile yaptığı tespit edilen personelin maaşları ve tespit edilen hile tutarları. İlgili veri aşağıda:

maas

hiletutari

3250

450

3500

1600

2400

700

4500

9260

2700

4100

6800

15240

5980

4000

3950

650

7800

1500

7500

12500

6000

1250

8500

45000

4750

500

4600

3000

6900

3500
 

Bu veriye bakarak, hile tutarları ile maaşlar arasında doğrusal bir ilişki var mı, sorusuna yanıt aramak istiyoruz. Eğer böyle bir doğrusal ilişki tespit edersek, "Şirketimiz özelinde, maaşı yüksek olan personelin daha yüksek tutarlarda hile yapması mümkündür." şeklinde bir çıkarım yapmamız ve mevcut kontrol noktalarımızı bu çıkarım doğrultusunda güncellememiz mümkün olabilecektir. 

 

Sahip olduğumuz veriyi Python ve kütüphaneleri ile irdeleyeceğiz. Gerekli kodları aşağıya ekliyorum.

 

# gerekli kütüphaneleri çalışmamıza eklemeye başlayalım

import pandas as pd

import numpy as np

import seaborn as sns

import matplotlib.pyplot as plt

from sklearn.linear_model import LinearRegression

# verimizi çalışmamıza ekleyelim ve ön incelemeye tabi tutalım

df = pd.read_csv(link, sep = ';')

df.head()

df.info()

df.describe()

#Seaborn lmplot ile veriyi görselleştirelim

sns.lmplot(x='maas', y='hiletutari', data=df)

plt.title("Hileli İşlem Tutarları ve Maaşlar")

plt.xlabel("Hilekar Maasları")

plt.ylabel("Hile Tutarları")

plt.xticks(rotation=90)

plt.xlim(0,10000)

plt.ylim(bottom=0)

plt.show()

# x ve y değerlerini numpy ile dönüştürme

# numpy ile daha hızlı analiz yapabiliriz

x= df['maas'].values.reshape(-1,1)

y= df['hiletutari'].values.reshape(-1,1)

 
# model varsayımımız şu şekilde:
 
# hiletutari = b0 + b1 * maas
 
# y = b0 + b1 * x
 
# yani hile tutarı ile personel maaşı arasında doğrusal bir ilişki arıyoruz.
 
# hile tutarı ile maaş arasında ne derece ilişki var, doğrusal regresyon modeli ile bakacağız
 
# modeli kuruyoruz. model başarısına daha sonra bakacağız.
 

hile_reg_model = LinearRegression()

hile_reg_model.fit(x,y)

# bo değerini bulalım

bo = hile_reg_model.intercept_

# b1 değerini bulalım
 
b1 = hile_reg_model.coef_
 
# modelimiz y = b0 + b1 * x 
 
# y = -11318.42624017 + 3.4503525 * x
 
# şimdi, model ile predict işlemleri yapalım
 
hile_tahmin = hile_reg_model.predict(x)
 
# peki, bu model işimize yarayan bir model mi
 
# model başarısına bakalım
 
hile_reg_model.score(x,y)
 
# 0.34 skor değeri çok iyi bir rakam değil. farklı bir tür analiz yapmalıyız!
 
# hile tutarını maaşla açıklamak şimdilik çok iyi değil.
 
# sklearn metrik ile modeli değerlendirme
 
from sklearn.metrics import r2_score
 
r2_score(y,hile_tahmin)
 

 

Yazımızda basit doğrusal regresyonun hile denetiminde nasıl kullanılabileceğine değindim. Kurduğumuz model çok başarılı bir sonuç vermedi. Veri sayımız yeterli olmayabilir ya da farklı bir makine öğrenmesi algoritması kullanmamız gerekebilir. Basit doğrusal regresyon konusu makine öğrenmesinin temelidir. Her ne kadar bu örneğimizde 0.34 skor değeri elde etmiş olsak bile, doğru veri ile çok daha iyi sonuçlar elde edilebilir.

 

Corona virüsü dünyayı ve ülkemizi yakıp kavururken, yeni iş modellerine ihtiyacımız olduğu kesindir. Bu hengamede iç denetim de dönüşmek zorunda. Python ile iç denetimin dansına aracılık etme amacındayım.


import matplotlib.pyplot as plt
import seaborn as sns
 
from sklearn.linear_model import LinearRegression

—————

Geri