Vẽ dữ liệu chuẩn hóa Python

Chia tỷ lệ tính năng là nơi chúng tôi buộc các giá trị từ các cột khác nhau tồn tại trên cùng một tỷ lệ, để nâng cao khả năng học tập của mô hình. Hai kỹ thuật mở rộng tính năng phổ biến nhất là Chuẩn hóa và Chuẩn hóa

tiêu chuẩn hóa

Chuẩn hóa tính lại dữ liệu để có giá trị trung bình là 0 và độ lệch chuẩn là 1. Nó giả định rằng dữ liệu của bạn có phân phối Gaussian (đường cong hình chuông)

Hình ảnh của tác giả

Như một ví dụ (*xem hình trên), chiều cao được đo bằng mét và cân nặng được đo bằng kilôgam. Ở đây họ phần nào có biến thể tương tự

Tuy nhiên, nếu bạn vẽ cả hai thang đo trên mỗi trục trên một biểu đồ phân tán, thì trọng lượng sẽ trải rộng hơn nhiều so với chiều cao, điều này có vẻ như cả hai đều giống hệt nhau mặc dù chúng ta biết rằng chúng không giống nhau. (*xem hình bên dưới)

Hình ảnh của tác giả

Lý do cho điều này là chiều cao và cân nặng đang được đo trên các thang đo khác nhau

Để chuẩn hóa dữ liệu của bạn, bạn lấy từng giá trị và trừ đi giá trị trung bình của tất cả các giá trị rồi chia chúng cho độ lệch chuẩn để mỗi điểm dữ liệu hiện được biểu thị bằng số độ lệch chuẩn khác với giá trị trung bình được biểu thị bằng 0

Vì vậy, những gì đang xảy ra dưới mui xe của kỹ thuật này?

Bước đầu tiên. Lấy tổng giá trị trung bình và độ lệch chuẩn của từng cột

Hình ảnh của tác giả

Bước thứ hai. Lấy từng giá trị và tính toán tương ứng theo công thức

Hình ảnh của tác giả

Ở đây, chúng tôi đang tính toán hàng đầu tiên hoặc mục nhập có chiều cao cột là 1. 98 trừ đi giá trị trung bình (như được tính ở trên trong bước đầu tiên) là 1. 79 và chia nó với độ lệch chuẩn (như đã tính ở bước đầu tiên) là 0. 10954 và chúng tôi nhận được kết quả là 1. 73

bước thứ ba. Lặp lại cho đến khi tất cả các giá trị được tính cho cả hai cột

Hình ảnh của tác giả

Bây giờ, nếu chúng ta vẽ các giá trị theo tỷ lệ của cả chiều cao và cân nặng, chúng ta có thể thấy rằng chúng hiện có thể so sánh được vì chúng hiện tồn tại trong cùng một tỷ lệ

Hình ảnh của tác giả

Mẫu mã tiêu chuẩn hóa

bình thường hóa

Chuẩn hóa định cỡ lại dữ liệu sao cho dữ liệu tồn tại trong phạm vi từ 0 đến 1. Đây là một kỹ thuật tốt để sử dụng khi bạn không biết phân phối dữ liệu của mình hoặc khi bạn biết phân phối không phải là Gaussian (đường cong hình chuông)

Để chuẩn hóa dữ liệu của bạn, bạn lấy từng giá trị và trừ đi giá trị nhỏ nhất của cột rồi chia giá trị này cho giá trị lớn nhất của cột trừ giá trị nhỏ nhất của cột. Điều này có nghĩa là các giá trị của bạn sẽ luôn tồn tại trong khoảng từ 0 đến 1, với giá trị tối đa của cột nhận giá trị chuẩn hóa là 1 và giá trị tối thiểu của cột nhận giá trị chuẩn hóa 0

Ở đây, bạn không cần giá trị trung bình hoặc độ lệch chuẩn. Bạn chỉ cần giá trị tối thiểu và tối đa cho mỗi cột của mình

Sử dụng cùng một ví dụ trước đó, đây là những gì đang xảy ra dưới mui xe cho Chuẩn hóa

Bước đầu tiên. Nhận tối thiểu và tối đa của mỗi cột

Hình ảnh của tác giả

Bước thứ hai. Lấy từng giá trị và tính toán tương ứng theo công thức

Hình ảnh của tác giả

bước thứ ba. Lặp lại cho đến khi tất cả các giá trị được tính cho cả hai cột

Hình ảnh của tác giả

So sánh tất cả các biểu đồ, giờ đây chúng ta có thể thấy mức độ lan truyền dữ liệu của phiên bản chuẩn hóa và nó trông giống với phiên bản chuẩn hóa thường xảy ra

Câu hỏi bây giờ là bạn nên sử dụng kỹ thuật nào trong hai kỹ thuật này trong mô hình máy học của mình và khi nào bạn nên sử dụng một trong hai kỹ thuật? . Nhưng nói chung, người ta thường đi theo tiêu chuẩn hóa

Hình ảnh của tác giả

Mẫu mã chuẩn hóa

Ghi chú. Không cần mở rộng tính năng ngay cả khi đó là một bước quan trọng. Nó thường dẫn đến sự đánh đổi giữa Độ chính xác so với. Diễn dịch

Nếu bạn chia tỷ lệ các giá trị của mình, bạn sẽ khó hiểu ý nghĩa thực sự của bất kỳ hệ số nào xét về giá trị thực của chúng vì bạn đã chuyển đổi nó sang một tỷ lệ khác để chúng có thể tồn tại cùng nhau. Thường đáng để thử chạy mô hình có và không có tỷ lệ. Nếu nó dường như không tạo ra bất kỳ sự khác biệt nào đối với độ chính xác, thì bạn có thể nói rằng bạn không cần thu nhỏ dữ liệu của mình và bạn sẽ dễ dàng diễn giải dự đoán của mô hình hơn

import8_______1_______8 numpy as np0numpy as np1 numpy as np2 import5numpy as np4 numpy as np5matplotlib.pyplot as plt9_______1_______6numpy as np4 numpy as np9

nums1 = [1,1,2,3,3,3,3,3,4,5,6,6,6,7,8,8,9,10,12,12,12,12,14,18

nums2= [10,12,13,13,14,14,15,15,15,16,17,18,20,22,23]

hình, rìu = plt. subplots() # Khởi tạo đối tượng hình và trục

cây rìu. hist(nums1, label="nums1", histtype="step", density=True) # Vẽ biểu đồ biểu đồ của nums1

cây rìu. hist(nums2, label="nums2", histtype="step", density=True) # Vẽ biểu đồ biểu đồ của nums2