Menu
CoddyTech

Điểm bất thường

Thuộc phần Học không giám sát trong hành trình Machine Learning của Coddy. Bài học 37 trên 51.

Câu trả lời có hoặc không che khuất mức độ bất thường của một hàng. score_samples chấm điểm từng hàng: điểm càng thấp, hàng đó càng lạ. Với đơn thuốc của một hiệu thuốc:

forest = IsolationForest(random_state=0).fit(X)
rx["score"] = forest.score_samples(X)
print(rx.sort_values("score").head(3))

Lệnh này in ra ba mục khác thường nhất:

     pills  refills  price     score
17     300        0  120.0 -0.881478
88      28       11   11.5 -0.708524
120     30        1   64.0 -0.700620

Biểu đồ histogram về điểm bất thường của 150 đơn thuốc: phần lớn nằm trong khoảng từ -0.55 đến -0.35, một vài điểm kéo dài về bên trái đến -0.88 và ngưỡng nét đứt màu đỏ ở -0.6 với 4 đơn cần kiểm tra

Bạn tự chọn vị trí cắt: một người có thể kiểm tra bao nhiêu hàng? Sắp xếp để xếp hạng, so sánh với ngưỡng để đánh dấu.

challenge icon

Thử thách

Trung bình

Kiểm toán viên chỉ có thời gian xem xét một vài khoản yêu cầu hoàn trả chi phí. Đoạn code ban đầu huấn luyện một rừng cô lập; chương trình đọc n và một ngưỡng.

  1. Chấm điểm từng khoản yêu cầu vào một cột mới score.
  2. In ra n khoản yêu cầu bất thường nhất, theo thứ tự từ bất thường nhất, như bên dưới.
  3. In ra số khoản yêu cầu có điểm thấp hơn ngưỡng.

Với một công ty khác, 2 và -0.6:

Most unusual claims:
  C003: 1960 EUR, score -0.763
  C040: 80 EUR, score -0.757
Below -0.6: 6 claims

Tự làm thử

import pandas as pd
from sklearn.ensemble import IsolationForest

# Mỗi hàng là một yêu cầu thanh toán chi phí: số tiền, hóa đơn, giờ nộp và số ngày sau chuyến đi
claims = pd.read_csv("claims.csv")
X = claims[["amount_eur", "items", "hour", "days_late"]]
n = int(input())
threshold = float(input())

# Từ Isolation Forest: mô hình rừng đã được huấn luyện trên tất cả yêu cầu thanh toán
forest = IsolationForest(random_state=0).fit(X)

# Viết code của bạn bên dưới
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Học không giám sát

Tự luyện tập: Trình biên dịch Python online