Menu
CoddyTech

Pengawasan Penipuan Kartu

Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 49 dari 51.

Tim kartu di koperasi kredit hanya bisa memeriksa beberapa pembayaran secara manual setiap hari. Bulan lalu, transaksi penipuan tersembunyi di bagian tepi:

300 pembayaran kartu bulan lalu, waktu dalam sehari ditampilkan secara mendatar dan jumlah ditampilkan ke atas pada skala log: pembayaran jujur berwarna abu-abu memenuhi bagian tengah pada siang hari, tanda silang merah menunjukkan 12 transaksi penipuan yang dilaporkan, jumlahnya sangat kecil pada malam hari dan sangat besar pada jam berapa pun

Namun, tidak ada yang tahu bahwa suatu transaksi adalah penipuan sampai pelanggan mengeluh beberapa minggu kemudian. Jadi, dua detektor harus menemukan pembayaran yang tidak biasa tanpa label apa pun.

Keluhan minggu ini sudah masuk. Detektor mana yang akan menangkap lebih banyak?

challenge icon

Tantangan

Sulit

400 pembayaran minggu ini ada di payments.csv; program membaca jumlah pembayaran yang bisa diperiksa tim, budget.

  1. Skalakan keempat fitur.
  2. Tandai budget pembayaran menggunakan isolation forest (random_state=0) dan local outlier factor (20 tetangga).
  3. Baru sekarang buka fraud: cetak jumlah yang ditemukan tiap daftar, dan jumlah pembayaran jujur yang harus diperiksa tim.
  4. Kirimkan daftar yang menemukan lebih banyak kepada tim: the isolation forest's list atau the local outlier factor's list, jika tidak, either list, they tie.

Untuk bulan lalu dan anggaran 10:

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

Coba sendiri

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

# Satu baris untuk setiap pembayaran dengan kartu; fraud bernilai 1 untuk pembayaran yang dilaporkan pelanggan beberapa minggu kemudian
payments = pd.read_csv("payments.csv")
features = ["amount_eur", "hour", "km_from_home", "minutes_since_last"]

# Jumlah pembayaran yang dapat diperiksa tim secara manual
budget = int(input())

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Tanpa Pengawasan

Latihan sendiri: Compiler Python online