python-277Đọc toàn bộ đề miễn phí

Chuẩn hoá z-score cho một cột đặc trưng

Nhiều thuật toán học máy nhạy với thang đo của đặc trưng: một cột tính bằng triệu sẽ

PythonCơ bản15 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

machine-learningfeature-scalingnumpyentry-ramp

Kiến thức tiên quyết: python-basics, numpy-axis-reduction.

Nội dung đề bài

Mô tả bài toán

Nhiều thuật toán học máy nhạy với thang đo của đặc trưng: một cột tính bằng triệu sẽ lấn át một cột chỉ từ 0 đến 1. Chuẩn hoá z-score đưa cột về cùng một thang bằng cách trừ trung bình rồi chia cho độ lệch chuẩn. Bài này luyện đúng một bước đó.

Yêu cầu

Viết hàm standardizecolumn(values) trả về danh sách giá trị đã chuẩn hoá, phần tử thứ i bằng (xi - trungbinh) / dolechchuan, trong đó độ lệch chuẩn là độ lệch chuẩn tổng thể (chia cho n, tức ddof = 0, giống StandardScaler của thư viện học máy).

Quy ước nộp bài

Nộp hàm standardize_column trong solution.py. Hệ thống gọi hàm trực tiếp theo tên đối số, so giá trị với sai số 1e-6, và kiểm tra ngoại lệ ValueError; không đọc stdin và không in ra stdout.

Input

  • values: danh sách số thực, từ 1 đến 20 phần tử.

Output

Danh sách số thực cùng độ dài với values. Nếu độ lệch chuẩn bằng 0 (mọi phần tử bằng nhau) thì hàm phải ném ValueError.

Ràng buộc

  • Phương sai chia cho n, không chia cho n - 1.
  • Giá trị trung bình của kết quả xấp xỉ 0; đây là cách tự kiểm tra nhanh.
  • Cột hằng số phải ném ValueError, không được trả về nan hay inf.

Ví dụ 1

Input

standardize_column(values=[1, 2, 3, 4, 5])

Output

[-1.4142135623730951, -0.7071067811865475, 0.0, 0.7071067811865475, 1.4142135623730951]

Ví dụ 2

Input

standardize_column(values=[2, 4, 4, 6])

Output

[-1.4142135623730951, 0.0, 0.0, 1.4142135623730951]

Giải thích

Với values = [1, 2, 3, 4, 5] thì trung bình là 3, phương sai tổng thể là (4 + 1 + 0 + 1 + 4) / 5 = 2 nên độ lệch chuẩn là sqrt(2) = 1.4142135623730951. Kết quả là [-1.4142135623730951, -0.7071067811865475, 0.0, 0.7071067811865475, 1.4142135623730951].

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Nhóm Zalo