Menu
CoddyTech

Kart Dolandırıcılığı Takibi

Coddy'nin Machine Learning Journey'sinin Denetimsiz Öğrenme bölümünün bir parçası. Ders 49 / 51.

Bir kredi birliğinin kart ekibi günde yalnızca birkaç ödemeyi elle kontrol edebilir. Geçen ay dolandırıcılık vakaları uçlarda gizlenmişti:

Geçen ayın 300 kart ödemesi; yatay eksende günün saati, dikey eksende logaritmik ölçekte tutar: gri renkteki dürüst ödemeler gündüz saatlerinin orta bölümünü dolduruyor, kırmızı çarpılar bildirilen 12 dolandırıcılık vakasını işaretliyor; bazıları gece yapılan çok küçük ödemeler, bazılarıysa günün herhangi bir saatinde yapılan çok büyük ödemeler

Ancak bir müşteri haftalar sonra şikâyet edene kadar kimse dolandırıcılığı fark etmez. Bu nedenle iki dedektör, hiçbir etiket olmadan olağandışı ödemeleri bulmalıdır.

Bu haftanın şikâyetleri geldi. Hangi dedektör daha fazlasını tespit ederdi?

challenge icon

Görev

Zor

Bu haftanın 400 ödemesi payments.csv dosyasında; program, ekibin kaç ödemeyi kontrol edebileceğini, yani budget değerini okur.

  1. Dört özelliği ölçeklendir.
  2. budget kadar ödemeyi bir izolasyon ormanıyla (random_state=0) ve yerel aykırı değer faktörüyle (20 komşu) işaretle.
  3. Ancak şimdi fraud değerini aç: her listenin kaçını yakaladığını ve ekibe kaç dürüst ödemeyi kontrol ettirdiğini yazdır.
  4. Ekibe daha fazlasını yakalayan listeyi gönder: the isolation forest's list ya da the local outlier factor's list; eşitlerse either list, they tie.

Geçen ay ve 10 bütçesi için:

Budget: 10 of 300 payments
Isolation forest: caught 6 of 12 frauds, 4 honest payments checked
Local outlier factor: caught 10 of 12 frauds, 0 honest payments checked
Send the team: the local outlier factor's list

Kendin dene

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor

# Her kart ödemesi için bir satır; müşterilerin haftalar sonra bildirdiği ödemelerde fraud 1'dir
payments = pd.read_csv("payments.csv")
features = ["amount_eur", "hour", "km_from_home", "minutes_since_last"]

# Ekibin elle kontrol edebileceği ödeme sayısı
budget = int(input())

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimsiz Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi