Khái niệm AI với Python

Chuẩn bị dữ liệu cho machine learning trong Python

Mô hình machine learning học từ các con số, và học tốt hơn khi các đặc trưng có thang đo tương tự nhau. Chuẩn hóa giúp co giãn dữ liệu, còn phép nhân ma trận là cách mô hình kết hợp nhiều đặc trưng cùng lúc.

Khái niệm bằng lời đơn giản

Mô hình machine learning học từ các con số, và học tốt hơn khi các đặc trưng có thang đo tương tự nhau. Chuẩn hóa giúp co giãn dữ liệu, còn phép nhân ma trận là cách mô hình kết hợp nhiều đặc trưng cùng lúc.

Co giãn đặc trưng bằng chuẩn hóa min-max và z-score, và tự nhân ma trận bằng tay.

Ý chính

  • Đặc trưng có thang đo quá khác nhau sẽ khiến các số lớn lấn át mô hình.
  • Min-max giữ giá trị trong khoảng 0 đến 1; z-score giữ hình dạng nhưng dời tâm về 0.
  • Tính các giá trị co giãn trên dữ liệu huấn luyện rồi dùng lại cho dữ liệu mới.
  • Tích ma trận A × B cần số cột của A bằng số hàng của B.

Khi nào nên sử dụng?

  • Hiểu điều gì diễn ra bên trong mạng nơ-ron và các thư viện AI.
  • Nắm ý tưởng trước khi tự cài đặt nó trong các thử thách tương ứng.
  • Chuẩn bị cho khóa học machine learning, phỏng vấn và dự án.

Xem trực quan

Kéo x5 để tạo một giá trị ngoại lai và so sánh cách min-max và z-score phản ứng. Trỏ vào một ô của A·B để xem nó dùng hàng và cột nào.

Code ví dụ

Chạy code →
main.py
import statistics

heights = [150, 160, 170, 180, 190]

# Min-max scaling squeezes values into the range 0..1.
low, high = min(heights), max(heights)
print("min-max:", [round((h - low) / (high - low), 2) for h in heights])

# Z-score standardization centres values on 0 with a spread of 1.
mean = statistics.mean(heights)
std = statistics.pstdev(heights)
print("z-scores:", [round((h - mean) / std, 2) for h in heights])

# Matrix multiplication: each output is a row of A dotted with a column of B.
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
product = [[sum(A[i][k] * B[k][j] for k in range(2)) for j in range(2)] for i in range(2)]
print("A x B:", product)

Kết quả dự kiến

min-max: [0.0, 0.25, 0.5, 0.75, 1.0]
z-scores: [-1.41, -0.71, 0.0, 0.71, 1.41]
A x B: [[19, 22], [43, 50]]

Cách hoạt động

Co giãn min-max đưa chiều cao nhỏ nhất về 0 và lớn nhất về 1. Z-score trừ đi giá trị trung bình rồi chia cho độ lệch chuẩn, nên các giá trị xoay quanh 0. Trong tích ma trận, mỗi ô là một hàng của A nhân từng phần tử với một cột của B rồi cộng lại.

Thay đổi giá trị và chạy chương trình bằng trình chạy Python online của CodeUtility mà không cần cài Python.

Bài tập mở rộng

Hãy sửa code theo các bài tập dưới đây để hiểu rõ cách hoạt động thay vì chỉ sao chép kết quả.

  1. Đổi đầu vào hoặc trọng số và đoán kết quả trước khi chạy.
  2. In các giá trị trung gian để theo dõi từng bước tính toán.
  3. Giải các thử thách được liên kết bên dưới để tự cài đặt ý tưởng.
Chạy trong Python IDE →

Luyện tập với thử thách

Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.

Tất cả thử thách