Khi nào nên sử dụng Standard Scaler và khi nào Standardizer?


12

Tôi hiểu những gì Standard Scalar làm và những gì Trình chuẩn hóa làm, theo tài liệu scikit: Chuẩn hóa , Chuẩn mở rộng .

Tôi biết khi Standard Scaler được áp dụng. Nhưng trong kịch bản nào là Bình thường hóa được áp dụng? Có kịch bản nào cái này được ưa thích hơn cái kia không?


Bạn không phải lúc nào cũng cần sử dụng : Cũng đáng để thêm thuật toán phân loại / hồi quy dựa trên cây (RF / XGB / GBT) không cần tiêu chuẩn hóa, bạn chỉ cần cung cấp cho chúng dữ liệu thô. (Dù sao bạn vẫn có thể chọn thực hiện tiêu chuẩn hóa, ví dụ như để vẽ đồ thị, tương quan, các biện pháp liên kết)
smci

Câu trả lời:


9

Chúng được sử dụng cho hai mục đích khác nhau.

StandardScalerthay đổi từng cột tính năng thànhf:,i

f:,i=f:,imean(f:,i)std(f:,i).

Normalizerthay đổi từng mẫu thành trong đó choxn=(fn,1,...,fn,d)

xn=xnsize(xn),
size(xn)

  1. l1định mức là,xn1=|fn,1|+...+|fn,d|
  2. l2định mức là ,xn2=fn,12+...+fn,d2
  3. maxđịnh mức là .xn=max{|fn,1|,...,|fn,d|}

Để minh họa độ tương phản, hãy xem xét tập dữ liệu là một chiều (mỗi điểm dữ liệu có một tính năng), Sau khi áp dụng , tập dữ liệu sẽ trở thành . Sau khi áp dụng bất kỳ loại nào , tập dữ liệu sẽ trở thành , vì tính năng duy nhất được chia cho chính nó. Vì vậy, không có sử dụng cho trường hợp này. Nó cũng không được sử dụng khi các tính năng có các đơn vị khác nhau, ví dụ .{1,2,3,4,5}
StandardScaler{1.41,0.71,0.,0.71,1.41}
Normalizer{1.,1.,1.,1.,1.}Normalizer(height,age,income)

Như đã đề cập trong câu trả lời này , Normalizerphần lớn hữu ích cho việc kiểm soát kích thước của vectơ trong quy trình lặp, ví dụ vectơ tham số trong quá trình đào tạo, để tránh sự mất ổn định số do giá trị lớn.


2
  • StandardScaler: Nó biến đổi dữ liệu theo cách có nghĩa là 0 và độ lệch chuẩn là 1. Nói tóm lại, nó chuẩn hóa dữ liệu . Tiêu chuẩn hóa rất hữu ích cho dữ liệu có giá trị âm. Nó sắp xếp dữ liệu trong một phân phối chuẩn thông thường . hữu ích trong phân loại hơn hồi quy . Bạn có thể đọc blog này của tôi.

  • Normalizer: Nó nén dữ liệu từ 0 đến 1. Nó thực hiện chuẩn hóa . Do phạm vi và cường độ giảm, độ dốc trong quá trình đào tạo không nổ và bạn không nhận được giá trị tổn thất cao hơn. Là hữu ích trong hồi quy hơn phân loại . Bạn có thể đọc blog này của tôi.


2
Trình chuẩn hóa mà bạn đã xác định trong blog của mình là MinMax scaler. Liên kết mà tôi đã đặt để chuẩn hóa là khác nhau. Nó làm cho định mức l2 của mỗi hàng dữ liệu bằng 1.
Heisenorms

Câu trả lời này có thể giúp bạn.
Shubham Panchal

7
-1: "[tiêu chuẩn hóa] sắp xếp dữ liệu trong phân phối bình thường." bạn nên làm rõ những gì bạn có ý nghĩa bởi điều này. Tôi đọc điều này là "tiêu chuẩn hóa biến đổi dữ liệu để có phân phối bình thường", điều này không đúng. Bạn cũng nên giải thích tại sao tiêu chuẩn hóa lại hữu ích hơn trong phân loại hơn hồi quy (và ngược lại đối với chuẩn hóa); Tôi nghi ngờ yêu sách đó.
Artem Mavrin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.