Dữ liệu số: Chuẩn hoá

Sau khi kiểm tra dữ liệu bằng các kỹ thuật thống kê và trực quan hoá, bạn nên chuyển đổi dữ liệu theo cách sẽ giúp mô hình của bạn huấn luyện hiệu quả hơn. Mục tiêu của việc chuẩn hoá là chuyển đổi các đối tượng thành một tỷ lệ tương tự. Ví dụ: hãy xem xét 2 tính năng sau:

  • Đối tượng X có phạm vi từ 154 đến 24.917.482.
  • Đặc điểm Y trải dài từ 5 đến 22.

Hai tính năng này có phạm vi rất khác nhau. Quá trình chuẩn hoá có thể thao tác XY để chúng trải rộng trên một dải tương tự, có thể là từ 0 đến 1.

Việc chuẩn hoá mang lại những lợi ích sau:

  • Giúp các mô hình hội tụ nhanh hơn trong quá trình huấn luyện. Khi các đối tượng có nhiều phạm vi khác nhau, phương pháp hạ dốc có thể "bật" và làm chậm quá trình hội tụ. Tuy nhiên, các trình tối ưu hoá nâng cao hơn như AdagradAdam sẽ bảo vệ bạn khỏi vấn đề này bằng cách thay đổi tốc độ học tập hiệu quả theo thời gian.
  • Giúp các mô hình suy luận để đưa ra dự đoán chính xác hơn. Khi các đối tượng có nhiều phạm vi khác nhau, mô hình kết quả có thể đưa ra những dự đoán ít hữu ích hơn.
  • Giúp tránh "bẫy NaN" khi giá trị của đối tượng rất cao. NaN là từ viết tắt của không phải là số. Khi một giá trị trong mô hình vượt quá giới hạn độ chính xác của số thực dấu phẩy động, hệ thống sẽ đặt giá trị thành NaN thay vì một số. Khi một số trong mô hình trở thành NaN, các số khác trong mô hình cũng sẽ trở thành NaN.
  • Giúp mô hình tìm hiểu các trọng số phù hợp cho từng đối tượng. Nếu không có tính năng điều chỉnh tỷ lệ, mô hình sẽ chú ý quá nhiều đến các tính năng có phạm vi rộng và không đủ chú ý đến các tính năng có phạm vi hẹp.

Bạn nên chuẩn hoá các đặc điểm bằng số bao gồm các phạm vi khác nhau rõ rệt (ví dụ: độ tuổi và thu nhập). Bạn cũng nên chuẩn hoá một đặc điểm số duy nhất bao gồm nhiều phạm vi, chẳng hạn như city population.

Hãy cân nhắc 2 tính năng sau:

  • Giá trị thấp nhất của đối tượng A là -0,5 và giá trị cao nhất là +0,5.
  • Giá trị thấp nhất của đối tượng B là -5.0 và cao nhất là +5.0.

Đối tượng A và Đối tượng B có khoảng cách tương đối hẹp. Tuy nhiên, khoảng cách của Đối tượng B rộng gấp 10 lần khoảng cách của Đối tượng A. Vì thế:

  • Khi bắt đầu huấn luyện, mô hình giả định rằng Đặc điểm B quan trọng hơn Đặc điểm A gấp 10 lần.
  • Quá trình huấn luyện sẽ mất nhiều thời gian hơn bình thường.
  • Mô hình thu được có thể không tối ưu.

Nhìn chung, thiệt hại do không chuẩn hoá sẽ tương đối nhỏ; tuy nhiên, bạn vẫn nên chuẩn hoá Đặc điểm A và Đặc điểm B theo cùng một tỷ lệ, có thể là từ -1,0 đến +1,0.

Bây giờ, hãy xem xét 2 đối tượng có sự khác biệt lớn hơn về phạm vi:

  • Giá trị thấp nhất của tính năng C là -1 và cao nhất là +1.
  • Giá trị thấp nhất của tính năng D là +5000 và giá trị cao nhất là +1.000.000.000.

Nếu bạn không chuẩn hoá Đặc điểm C và Đặc điểm D, mô hình của bạn có thể sẽ không đạt hiệu quả tối ưu. Hơn nữa, quá trình huấn luyện sẽ mất nhiều thời gian hơn để hội tụ hoặc thậm chí không hội tụ hoàn toàn!

Phần này đề cập đến 3 phương pháp chuẩn hoá phổ biến:

  • thang đo tuyến tính
  • Chuyển đổi tỷ lệ điểm Z
  • chia tỷ lệ nhật ký

Phần này cũng đề cập đến việc cắt. Mặc dù không phải là một kỹ thuật chuẩn hoá thực sự, nhưng việc cắt bớt sẽ giúp kiểm soát các đặc điểm số không theo quy tắc thành các phạm vi tạo ra mô hình tốt hơn.

Chia độ tuyến tính

Điều chỉnh tỷ lệ tuyến tính (thường được rút gọn thành điều chỉnh tỷ lệ) có nghĩa là chuyển đổi các giá trị dấu phẩy động từ phạm vi tự nhiên của chúng thành một phạm vi tiêu chuẩn – thường là từ 0 đến 1 hoặc từ -1 đến +1.

Bạn nên chọn phương pháp mở rộng tuyến tính khi đáp ứng tất cả các điều kiện sau:

  • Giới hạn dưới và giới hạn trên của dữ liệu không thay đổi nhiều theo thời gian.
  • Đối tượng này có ít hoặc không có giá trị ngoại lệ và những giá trị ngoại lệ đó không phải là giá trị cực đoan.
  • Đối tượng có phân bố gần như đồng đều trong phạm vi của đối tượng. Tức là biểu đồ tần suất sẽ cho thấy các thanh gần như bằng nhau cho hầu hết các giá trị.

Giả sử age của con người là một đặc điểm. Điều chỉnh tỷ lệ tuyến tính là một kỹ thuật chuẩn hoá tốt cho age vì:

  • Giới hạn dưới và giới hạn trên gần đúng là từ 0 đến 100.
  • age chứa một tỷ lệ tương đối nhỏ các giá trị ngoại lệ. Chỉ khoảng 0,3% dân số là trên 100 tuổi.
  • Mặc dù một số độ tuổi được thể hiện rõ ràng hơn những độ tuổi khác, nhưng một tập dữ liệu lớn phải chứa đủ ví dụ về tất cả các độ tuổi.

Bài tập: Kiểm tra mức độ hiểu biết của bạn

Giả sử mô hình của bạn có một tính năng tên là net_worth, chứa giá trị tài sản ròng của nhiều người. Liệu việc điều chỉnh tỷ lệ tuyến tính có phải là một kỹ thuật chuẩn hoá phù hợp cho net_worth không? Tại sao (hoặc tại sao lại không)?

Chuyển đổi tỷ lệ điểm Z

Điểm Z là số độ lệch chuẩn của một giá trị so với giá trị trung bình. Ví dụ: một giá trị lớn hơn giá trị trung bình 2 độ lệch chuẩn có điểm Z là +2.0. Giá trị nhỏ hơn giá trị trung bình 1,5 độ lệch chuẩn có điểm Z là -1,5.

Việc biểu thị một đối tượng bằng thang đo điểm Z có nghĩa là lưu trữ điểm Z của đối tượng đó trong vectơ đối tượng. Ví dụ: hình sau đây cho thấy 2 biểu đồ tần suất:

  • Ở bên trái, một hàm phân phối chuẩn cổ điển.
  • Ở bên phải, cùng một hàm phân phối được chuẩn hoá bằng cách chia tỷ lệ điểm Z.
Hình 4. Hai biểu đồ phân bố: cả hai đều cho thấy phân phối chuẩn với phân phối giống hệt nhau. Biểu đồ đầu tiên chứa dữ liệu thô, có giá trị trung bình là 200 và độ lệch chuẩn là 30. Biểu đồ thứ hai chứa phiên bản điểm Z của phân phối đầu tiên, có giá trị trung bình là 0 và độ lệch chuẩn là 1.
Hình 4. Dữ liệu thô (bên trái) so với điểm Z (bên phải) cho một phân phối chuẩn.

Việc điều chỉnh theo điểm Z cũng là một lựa chọn phù hợp cho dữ liệu như trong hình sau, chỉ có phân phối gần như bình thường.

Hình 5. Hai biểu đồ có hình dạng giống hệt nhau, mỗi biểu đồ cho thấy mức tăng mạnh lên đến một cao nguyên, sau đó là mức giảm tương đối nhanh, tiếp theo là mức giảm dần. Một biểu đồ minh hoạ sự phân phối của dữ liệu thô; biểu đồ còn lại minh hoạ sự phân phối của dữ liệu thô khi được chuẩn hoá bằng phương pháp chia tỷ lệ điểm Z.
            Các giá trị trên trục X của hai biểu đồ tần suất rất khác nhau.
            Biểu đồ tần suất dữ liệu thô trải dài trên miền từ 0 đến 29.000,trong khi biểu đồ tần suất được chia tỷ lệ theo điểm Z có phạm vi từ -1 đến khoảng +4, 8
Hình 5. Dữ liệu thô (bên trái) so với phương pháp chuyển tỷ lệ điểm Z (bên phải) cho phân phối chuẩn không phải phân phối chuẩn cổ điển.

Điểm Z là lựa chọn phù hợp khi dữ liệu tuân theo phân phối chuẩn hoặc phân phối tương tự như phân phối chuẩn.

Xin lưu ý rằng một số phân phối có thể bình thường trong phần lớn phạm vi của chúng, nhưng vẫn chứa các giá trị ngoại lệ cực đoan. Ví dụ: hầu hết các điểm trong một đối tượng net_worth có thể nằm gọn trong 3 độ lệch chuẩn, nhưng một vài ví dụ về đối tượng này có thể cách xa giá trị trung bình hàng trăm độ lệch chuẩn. Trong những trường hợp này, bạn có thể kết hợp việc điều chỉnh điểm Z với một hình thức chuẩn hoá khác (thường là cắt bớt) để xử lý tình huống này.

Bài tập: Kiểm tra mức độ hiểu biết của bạn

Giả sử mô hình của bạn huấn luyện trên một đối tượng có tên là height, chứa chiều cao của 10 triệu phụ nữ trưởng thành. Liệu việc điều chỉnh điểm Z có phải là một kỹ thuật chuẩn hoá phù hợp cho height không? Tại sao (hoặc tại sao lại không)?

Chia tỷ lệ nhật ký

Thang đo lôgarit tính toán lôgarit của giá trị thô. Về lý thuyết, lôgarit có thể là bất kỳ cơ số nào; trên thực tế, việc chia tỷ lệ theo logarit thường tính toán lôgarit tự nhiên (ln).

Việc điều chỉnh tỷ lệ theo hàm log sẽ hữu ích khi dữ liệu tuân theo phân phối quy luật lũy thừa. Nói một cách thông thường, hàm phân phối theo quy luật lũy thừa có dạng như sau:

  • Giá trị thấp của X có giá trị rất cao của Y.
  • Khi giá trị của X tăng lên, giá trị của Y sẽ giảm nhanh chóng. Do đó, các giá trị cao của X có các giá trị rất thấp của Y.

Mức phân loại phim là một ví dụ điển hình về phân phối theo quy luật lũy thừa. Trong hình sau, hãy lưu ý:

  • Một số bộ phim có nhiều điểm xếp hạng của người dùng. (Giá trị X thấp thì giá trị Y cao.)
  • Hầu hết các bộ phim đều có rất ít lượt đánh giá của người dùng. (Giá trị X cao có giá trị Y thấp.)

Việc điều chỉnh tỷ lệ nhật ký sẽ thay đổi phân phối, giúp huấn luyện một mô hình đưa ra dự đoán chính xác hơn.

Hình 6. Hai biểu đồ so sánh dữ liệu thô với nhật ký dữ liệu thô.
            Biểu đồ dữ liệu thô cho thấy nhiều lượt đánh giá của người dùng ở phần đầu, theo sau là một phần đuôi dài. Đồ thị nhật ký có sự phân phối đồng đều hơn.
Hình 6. So sánh một phân phối thô với nhật ký của phân phối đó.

Ví dụ thứ hai, doanh số bán sách tuân theo quy luật phân phối lũy thừa vì:

  • Hầu hết các cuốn sách đã xuất bản chỉ bán được một số lượng rất nhỏ, có thể là một hoặc hai trăm bản.
  • Một số cuốn sách bán được số lượng vừa phải, khoảng vài nghìn bản.
  • Chỉ một vài cuốn sách bán chạy nhất sẽ bán được hơn một triệu bản.

Giả sử bạn đang huấn luyện một mô hình tuyến tính để tìm mối quan hệ giữa, chẳng hạn như bìa sách với doanh số bán sách. Một mô hình tuyến tính được huấn luyện trên các giá trị thô sẽ phải tìm ra điều gì đó về bìa sách của những cuốn sách bán được một triệu bản mạnh hơn 10.000 lần so với bìa sách chỉ bán được 100 bản. Tuy nhiên, việc chia tỷ lệ tất cả số liệu bán hàng sẽ giúp nhiệm vụ này trở nên khả thi hơn nhiều. Ví dụ: logarit của 100 là:

  ~4.6 = ln(100)

trong khi log của 1.000.000 là:

  ~13.8 = ln(1,000,000)

Vì vậy, log của 1.000.000 chỉ lớn hơn khoảng 3 lần so với log của 100. Có lẽ bạn có thể tưởng tượng rằng một bìa sách bán chạy sẽ mạnh hơn khoảng 3 lần (theo một cách nào đó) so với một bìa sách bán rất ít.

Cắt

Cắt bớt là một kỹ thuật giúp giảm thiểu ảnh hưởng của các giá trị ngoại lệ cực đoan. Nói tóm lại, việc cắt thường giới hạn (giảm) giá trị của các giá trị ngoại lệ xuống một giá trị tối đa cụ thể. Cắt là một ý tưởng kỳ lạ, nhưng nó có thể rất hiệu quả.

Ví dụ: hãy tưởng tượng một tập dữ liệu chứa một đối tượng có tên là roomsPerPerson, đại diện cho số phòng (tổng số phòng chia cho số người cư trú) của nhiều ngôi nhà. Biểu đồ sau đây cho thấy hơn 99% giá trị của tính năng tuân theo phân phối chuẩn (xấp xỉ giá trị trung bình là 1,8 và độ lệch chuẩn là 0,7). Tuy nhiên, tính năng này có một số giá trị ngoại lệ, trong đó có một số giá trị cực đoan:

Hình 7. Một biểu đồ về roomsPerPerson trong đó hầu hết các giá trị đều được nhóm lại trong khoảng từ 0 đến 4, nhưng có một đuôi rất dài kéo dài đến 17 phòng mỗi người
Hình 7. Chủ yếu là bình thường, nhưng không hoàn toàn bình thường.

Làm cách nào để giảm thiểu ảnh hưởng của những giá trị ngoại lệ cực đoan đó? Biểu đồ này không phải là một phân phối đồng đều, phân phối chuẩn hay phân phối theo quy luật lũy thừa. Điều gì sẽ xảy ra nếu bạn chỉ cần giới hạn hoặc cắt giá trị tối đa của roomsPerPerson ở một giá trị tuỳ ý, chẳng hạn như 4,0?

Biểu đồ roomsPerPerson trong đó tất cả các giá trị nằm trong khoảng từ 0 đến 4.0. Đồ thị có dạng hình chuông, nhưng có một đỉnh bất thường ở 4.0
Hình 8. Cắt các giá trị đối tượng ở mức 4.0.

Việc cắt giá trị của đặc điểm ở mức 4.0 không có nghĩa là mô hình của bạn bỏ qua tất cả các giá trị lớn hơn 4.0. Thay vào đó, điều này có nghĩa là tất cả các giá trị lớn hơn 4.0 giờ đây sẽ trở thành 4.0. Điều này giải thích cho ngọn đồi đặc biệt ở 4.0. Mặc dù có sự khác biệt đó, nhưng hiện tại, tập hợp các đối tượng được mở rộng hữu ích hơn dữ liệu ban đầu.

Đợi một chút! Bạn có thực sự giảm mọi giá trị ngoại lệ xuống một ngưỡng trên tuỳ ý nào đó không? Có, khi huấn luyện mô hình.

Bạn cũng có thể cắt các giá trị sau khi áp dụng các hình thức chuẩn hoá khác. Ví dụ: giả sử bạn sử dụng phương pháp chia tỷ lệ điểm Z, nhưng một số giá trị ngoại lệ có giá trị tuyệt đối lớn hơn 3. Trong trường hợp này, bạn có thể:

  • Cắt các điểm Z lớn hơn 3 thành đúng 3.
  • Cắt các điểm Z nhỏ hơn -3 thành chính xác -3.

Tính năng cắt bớt giúp mô hình của bạn không bị lập chỉ mục quá mức đối với dữ liệu không quan trọng. Tuy nhiên, một số giá trị ngoại lệ thực sự quan trọng, vì vậy, hãy cắt các giá trị một cách cẩn thận.

Tóm tắt các kỹ thuật chuẩn hoá

Kỹ thuật chuẩn hoáCông thứcTrường hợp sử dụng
Chia độ tuyến tính $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ Khi đối tượng được phân phối đồng đều trong phạm vi. Dạng phẳng
Chuyển đổi tỷ lệ điểm Z $$ x' = \frac{x - μ}{σ}$$ Khi đối tượng được phân phối chuẩn (đỉnh gần với giá trị trung bình). Hình chuông
Chia tỷ lệ nhật ký $$ x' = log(x)$$ Khi phân phối tính năng bị lệch nhiều ở ít nhất một trong hai phía của phần đuôi. Đuôi nặng
Cắt Nếu $x > max$, hãy đặt $x' = max$
Nếu $x < min$, hãy đặt $x' = min$
Khi đối tượng có giá trị ngoại lệ cực đoan.

Bài tập: Kiểm tra kiến thức

Kỹ thuật nào sẽ phù hợp nhất để chuẩn hoá một đối tượng có phân phối sau đây?

Biểu đồ tần suất cho thấy một cụm dữ liệu có các giá trị trong phạm vi từ 0 đến 200.000. Số lượng điểm dữ liệu tăng dần cho phạm vi từ 0 đến 100.000, sau đó giảm dần từ 100.000 xuống 200.000.

Chuyển đổi tỷ lệ điểm Z
Các điểm dữ liệu thường tuân theo phân phối chuẩn, vì vậy việc mở rộng quy mô điểm Z sẽ buộc các điểm dữ liệu vào phạm vi từ -3 đến +3.
Chia độ tuyến tính
Xem lại các thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.
Chia tỷ lệ nhật ký
Xem lại các thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.
Cắt
Xem lại các thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.

Giả sử bạn đang phát triển một mô hình dự đoán năng suất của một trung tâm dữ liệu dựa trên nhiệt độ đo được bên trong trung tâm dữ liệu. Hầu hết các giá trị temperature trong tập dữ liệu của bạn đều nằm trong khoảng từ 15 đến 30 (độ C), ngoại trừ những giá trị sau:

  • Một hoặc hai lần mỗi năm, vào những ngày cực kỳ nóng, một số giá trị từ 31 đến 45 được ghi nhận ở temperature.
  • Cứ 1.000 điểm trong temperature sẽ được đặt thành 1.000 thay vì nhiệt độ thực tế.

Đâu là kỹ thuật chuẩn hoá hợp lý cho temperature?

Cắt các giá trị ngoại lệ trong khoảng từ 31 đến 45, nhưng xoá các giá trị ngoại lệ có giá trị là 1.000

Giá trị 1.000 là sai và cần được xoá thay vì bị cắt.

Các giá trị từ 31 đến 45 là các điểm dữ liệu hợp lệ. Việc cắt có lẽ là một ý tưởng hay cho những giá trị này, giả sử tập dữ liệu không chứa đủ ví dụ trong phạm vi nhiệt độ này để huấn luyện mô hình đưa ra dự đoán chính xác. Tuy nhiên, trong quá trình suy luận, lưu ý rằng mô hình bị cắt do đó sẽ đưa ra cùng một dự đoán cho nhiệt độ 45 như cho nhiệt độ 35.

Cắt tất cả các giá trị ngoại lệ
Xem lại các thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.
Xoá tất cả giá trị ngoại lệ
Xem lại các thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.
Xoá các giá trị ngoại lệ trong khoảng từ 31 đến 45, nhưng cắt các giá trị ngoại lệ có giá trị là 1.000.
Xem lại các thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.