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

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

  • Tính năng X trải rộng trong phạm vi từ 154 đến 24.917.482.
  • Đối tượng Y mở rộng trong phạm vi 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úng XY để chúng nằm trong phạm vi tương tự, có thể từ 0 đến 1.

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 khác nhau có phạm vi khác nhau, tính năng giảm độ dốc có thể "thoát" và hội tụ chậm. Tuy nhiên, các trình tối ưu hoá nâng cao hơn như Chuyển đổiAdam bảo vệ mình 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 thông tin dự đoán chính xác hơn. Khi các đối tượng khác nhau có phạm vi khác nhau, kết quả có thể đưa ra các dự đoán kém hữu ích hơn một chút.
  • Giúp tránh "bẫy NaN" khi các giá trị của tính năng quá cao. NaN là viết tắt của cụm từ 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 dấu phẩy động, hệ thống sẽ đặt giá trị thành NaN của một số. Khi một số trong mô hình trở thành NaN, các số khác trong mô hình cuối cùng cũng trở thành NaN.
  • Giúp mô hình biết trọng số thích hợp cho từng tính năng. Nếu không mở rộng tính năng, mô hình này chú ý quá nhiều 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 đối tượng dạng số bao gồm các đặc điểm riêng biệt các phạm vi khác nhau (ví dụ: độ tuổi và thu nhập). Chúng tôi cũng khuyên bạn nên chuẩn hoá một đối tượng số duy nhất bao gồm một phạm vi rộng, chẳng hạn như city population.

Hãy cân nhắc hai 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 và giá trị cao nhất là +5.

Đối tượng A và Đối tượng B có các phạm vi tương đối hẹp. Tuy nhiên, tính năng B span rộng hơn 10 lần so với span của Đối tượng A. Vì thế:

  • Khi bắt đầu huấn luyện, mô hình này giả định rằng Tính năng A gấp 10 lần "quan trọng" hơn so với Tính năng B.
  • Quá trình đào tạo sẽ mất nhiều thời gian hơn dự kiến.
  • Mô hình thu được có thể chưa tối ưu.

Thiệt hại tổng thể do không chuẩn hoá sẽ tương đối nhỏ; tuy nhiên, bạn vẫn nên chuẩn hoá Tính năng A và Tính năng B theo cùng một quy mô, có thể từ -1,0 đến +1,0.

Bây giờ, hãy xem xét hai đối tượng có mức chênh lệch lớn hơn về phạm vi:

  • Giá trị thấp nhất của đối tượng `C là -1 và giá trị cao nhất là +1.
  • Giá trị thấp nhất của đối tượng D là +5000 và giá trị cao nhất là +1.000.000.000.

Nếu bạn không chuẩn hoá Tính năng C và Tính năng D, thì mô hình của bạn có thể sẽ chưa tối ưu. Ngoài ra, việc đào tạo 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 ba phương pháp chuẩn hoá phổ biến:

  • tỷ lệ tuyến tính
  • Thang điểm Z
  • chia tỷ lệ nhật ký

Phần này cũng bao gồm tạo đoạn video. Mặc dù không đúng chuẩn hoá, việc cắt xén có thể chế ngự các đối tượng số phức tạp thành giúp tạo ra mô hình tốt hơn.

Chia độ tuyến tính

Chia tỷ lệ tuyến tính (phổ biến hơn rút gọn thành scaling) 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 vào phạm vi tiêu chuẩn—thường là từ 0 đến 1 hoặc -1 đến +1.

Việc chuyển tỷ lệ tuyến tính là một lựa chọn phù hợp khi tất cả các điều kiện sau được đáp ứng:

  • 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.
  • Tính năng này có ít hoặc không có điểm ngoại lai và những điểm ngoại lai đó cũng không cực kỳ hiệu quả.
  • Đối tượng này được phân phối gần như đồng đều trên phạm vi của nó. Tức là biểu đồ sẽ hiển thị các thanh gần như đồng đều cho hầu hết các độ tuổi.

Giả sử age của người dùng là một tính năng. Chia tỷ lệ tuyến tính là mộ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 có một tỷ lệ phần trăm các điểm ngoại lai tương đối nhỏ. Chỉ khoảng 0,3% dân số hơn 100 người.
  • Mặc dù một số độ tuổi nhất định được thể hiện tốt hơn so với các độ tuổi khác, nhưng nên chứa đủ ví dụ ở mọi độ tuổi.

Kiểm tra kiến thức

Giả sử mô hình của bạn có một tính năng tên là net_worth chứa mạng giá trị của những người khác nhau. Việc chia tỷ lệ tuyến tính có phải là chuẩn hoá tốt không cho net_worth? Tại sao (hoặc tại sao lại không)?

Thang điểm Z

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

Biểu thị một đối tượng bằng tỷ lệ điểm Z có nghĩa là lưu trữ giá trị Điểm Z trong vectơ đối tượng. Ví dụ: hình sau đây cho thấy hai biểu đồ:

  • Ở bên trái là phân phối chuẩn cổ điển.
  • Ở bên phải, dữ liệu phân phối tương tự được chuẩn hoá theo tỷ lệ điểm Z.
Hình 4. Hai biểu đồ: cả hai đều thể hiện mức phân phối chuẩn với
           cùng một phân phối. 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. Thứ hai
           biểu đồ tần suất chứa phiên bản có điểm Z của
           có giá trị trung bình bằng 0 và độ lệch chuẩn bằng 1.
Hình 4. Dữ liệu thô (bên trái) so với điểm Z (phải) cho giá trị bình thường phạm vi phân phối.

Thang điểm Z cũng là một lựa chọn tốt cho dữ liệu tương tự như được hiển thị trong hình sau đây chỉ có phân phối bình thường khá mơ hồ.

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

Điểm Z là lựa chọn phù hợp khi dữ liệu tuân theo mức phân phối chuẩn hoặc phân phối khá giống phân phối bình thường.

Lưu ý rằng một số lượt phân phối có thể là bình thường trong phần lớn phạm vi, nhưng vẫn chứa các điểm ngoại lai cực kỳ nghiêm trọng. Ví dụ: gần như tất cả các điểm trong đối tượng net_worth có thể sắp xếp gọn gàng thành 3 độ lệch chuẩn, Tuy nhiên, một vài ví dụ về tính năng này có thể là hàng trăm độ lệch chuẩn khác với giá trị trung bình. Trong những trường hợp này, bạn có thể kết hợp việc chia tỷ lệ điểm Z với một dạng chuẩn hoá khác (thường là cắt đoạn) để xử lý trường hợp này.

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

Giả sử mô hình của bạn huấn luyện trên một tính năng có tên height chứa người lớn đỉnh cao của 10 triệu phụ nữ. Tỷ lệ điểm Z có phải là chuẩn hoá tốt không cho height? Tại sao (hoặc tại sao lại không)?

Chia tỷ lệ nhật ký

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

Chia tỷ lệ nhật ký rất hữu ích khi dữ liệu tuân thủ mức phân phối định luật công suất. Nói một cách đơn giản, sự phân phối theo luật công suất sẽ có dạng như sau:

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

Xếp hạng phim là một ví dụ điển hình về sự phân phối theo luật năng lượng. Trong phần sau hình, lưu ý:

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

Chia tỷ lệ nhật ký thay đổi cách 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 rất nhiều điểm xếp hạng của người dùng, theo sau
            một cái đuôi dài. Biểu đồ nhật ký có mức phân phối đồng đều hơn.
Hình 6. So sánh bản phân phối thô với nhật ký của phân phối đó.

Ví dụ thứ hai là hoạt động bán sách tuân theo sự phân phối theo luật năng lượng vì:

  • Hầu hết các sách đã xuất bản đều bán một số lượng nhỏ, có thể là một hoặc hai trăm bản.
  • Một số cuốn sách bán được một số lượng vừa phải, lên đến hàng nghìn bản.
  • Chỉ một vài 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ả sử bìa sách để bán sách. Việc huấn luyện mô hình tuyến tính trên các giá trị thô sẽ phải tìm thông tin về bìa sách trên những cuốn sách bán được một triệu bản mạnh hơn 10.000 bản so với bìa sách chỉ bán 100 bản. Tuy nhiên, việc chia tỷ lệ nhật ký tất cả số liệu bán hàng giúp nhiệm vụ khả thi hơn nhiều. Ví dụ: nhật ký của 100 là:

  ~4.6 = ln(100)

trong khi nhật ký của 1.000.000 là:

  ~13.8 = ln(1,000,000)

Vì vậy, nhật ký 1.000.000 chỉ lớn hơn khoảng ba lần so với nhật ký 100. Bạn có thể có thể hình dung ra một bìa sách bán chạy nhất có giá trị gấp khoảng 3 lần hiệu quả hơn (theo một cách nào đó) so với bìa sách bán chạy.

Cắt đoạn

Tạo đoạn video là một kỹ thuật nhằm giảm thiểu ảnh hưởng của các điểm ngoại lai cực đoan. Tóm lại, việc cắt đoạn video thường viết hoa (giảm) giá trị của các điểm ngoại lai xuống một giá trị tối đa cụ thể. Cắt đoạn là một một ý tưởng kỳ lạ nhưng 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 roomsPerPerson, thể hiện số phòng (tổng số phòng chia theo số người) cho nhiều ngôi nhà. Biểu đồ sau đây cho thấy hơn 99% giá trị tính năng phù hợp với phân phối chuẩn (ước tính trung bình 1,8 và độ lệch chuẩn là 0,7). Tuy nhiên, tính năng này có chứa một số ngoại lệ, một số điểm ngoại lệ:

Hình 7. Biểu đồ phòngPerPerson trong đó gần như tất cả các giá trị
            được tập trung từ 0 đến 4, nhưng có một cái đuôi dài verrrrry
            lên đến 17 phòng/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 điểm cực kỳ ngoại lai đó? Vâng, biểu đồ không phải là phân phối đồng đều, phân phối chuẩn hay định luật công suất phạm vi phân phối. Điều gì 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 ở giá trị tuỳ ý, chẳng hạn như 4.0?

Biểu đồ phòngPerPerson trong đó tất cả các giá trị nằm trong khoảng từ 0 đến
            4.0. Cốt truyện có hình chuông, nhưng có một ngọn đồi kỳ lạ ở mức 4.0
Hình 8. Các giá trị của tính năng bị cắt bớt ở phiên bản 4.0.

Việc cắt giá trị tính năng ở 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. Đúng hơn, điều đó có nghĩa là mọi giá trị lớn hơn hơn 4.0 bây giờ trở thành 4.0. Điều này giải thích rằng ngọn đồi đặc biệt ở 4.0. Mặc dù ngọn đồi đó, bộ tính năng được điều chỉnh theo tỷ lệ hiện hữu ích hơn dữ liệu gốc.

Đợi một chút! Bạn có thể thực sự giảm mọi giá trị ngoại lệ xuống một số giá trị trên tuỳ ý ngưỡng? Có.

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 thang điểm Z, nhưng một vài điểm ngoại lai có giá trị tuyệt đối lớn hơn nhiều so với 3. Trong trường hợp này, bạn có thể:

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

Việc cắt bớt giúp mô hình không bị lập chỉ mục vượt mức đối với những dữ liệu không quan trọng. Tuy nhiên, một số điểm ngoại lai thực sự quan trọng, vì vậy hãy cắt bớ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 này được phân phối đồng đều trên một phạm vi cố định.
Thang điểm Z $$ x' = \frac{x - μ}{σ}$$ Khi sự phân phối tính năng không chứa các điểm ngoại lai quá mức.
Chia tỷ lệ nhật ký $$ x' = log(x)$$ Khi tính năng này tuân thủ định luật nguồn.
Cắt đoạn Nếu $x > max$, đặt $x' =
đô la Mỹ tối đa Nếu $x < tối thiểu$, đặt $x' = tối thiểu$
Khi đối tượng có chứa các điểm ngoại lai cực kỳ nghiêm trọng.

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

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

Biểu đồ thể hiện một cụm dữ liệu có các giá trị trong phạm vi từ 0 đến
          200.000. Số đ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.

Thang điểm Z
Các điểm dữ liệu thường tuân theo phân phối chuẩn, do đó, điểm Z việc điều chỉnh theo tỷ lệ sẽ buộc chúng vào phạm vi từ –3 đến +3.
Chia độ tuyến tính
Xem lại các nội dung 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 nội dung thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.
Cắt đoạn
Xem lại các nội dung 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 dựa trên nhiệt độ đo được bên trong trung tâm dữ liệu. Hầu như tất cả giá trị temperature trong tập dữ liệu đều rơi vào từ 15 đến 30 (độ C), trừ những trường hợp ngoại lệ sau:

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

Đâu sẽ 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ệ bằng giá trị 1.000

Các giá trị 1.000 bị sai sót và nên được xoá thay vì bị cắt bớt.

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

Cắt bỏ mọi điểm ngoại lai
Xem lại các nội dung 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ả các điểm ngoại lai
Xem lại các nội dung 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 bớt các điểm ngoại lai có giá trị bằng 1.000.
Xem lại các nội dung thảo luận về kỹ thuật chuẩn hoá trên trang này, rồi thử lại.