Chuẩn hóa dữ liệu trong Python là gì

Làm cách nào để bạn chuẩn hóa dữ liệu của mình bằng python?

 

Đôi khi, để cải thiện hiệu suất của mô hình, bạn sẽ cần thay đổi phân phối cơ bản của dữ liệu mà không nhất thiết phải thay đổi thông tin trong dữ liệu. Bình thường hóa giúp bạn làm điều đó

 

Trong bài viết này, tôi sẽ chia sẻ với bạn chuẩn hóa là gì, tại sao nó quan trọng và cách thực hiện nó trong Python

 

Bình thường hóa là gì?

Chuẩn hóa là quá trình thay đổi hình dạng phân phối để có phân phối Chuẩn [Gaussian]. Đây là một kỹ thuật rất hữu ích nếu chúng ta biết rằng phân phối tính năng cơ bản không phải là Bình thường.  

 

Quá trình chuẩn hóa hoạt động bằng cách điều chỉnh giá trị của các biến số mà không thay đổi tỷ lệ/phạm vi dữ liệu của bạn. Nó có thể được coi là một kỹ thuật thay đổi kích thước. Nhưng sự khác biệt nằm ở chỗ, việc chia tỷ lệ thu nhỏ/mở rộng dữ liệu để phù hợp với một phạm vi cụ thể trong khi quá trình chuẩn hóa thì không

 

NB. Trong rất nhiều bài báo và tài liệu trực tuyến, thay đổi kích thước, tiêu chuẩn hóa và chuẩn hóa đôi khi được sử dụng thay thế cho nhau và có thể gây nhầm lẫn cái nào là cái nào. Chuẩn hóa và thay đổi tỷ lệ gần như có cùng một mục tiêu, nhưng tôi thích định nghĩa chuẩn hóa này hơn vì nó tự nhiên hơn. Để biết các kỹ thuật liên quan đến chuyển đổi tiêu chuẩn hóa, vui lòng xem bài viết này về tiêu chuẩn hóa, và để biết các kỹ thuật thay đổi tỷ lệ chuyển đổi, vui lòng xem bài viết này.

 

 

Tại sao chuẩn hóa dữ liệu lại quan trọng?

Chuẩn hóa dữ liệu rất quan trọng vì nhu cầu thay đổi hình dạng của dữ liệu ở dạng có lợi hơn. Thật vậy, một số mô hình đã được chứng minh là hoạt động tốt nhất nếu phân phối cơ bản của chúng là bình thường. Chuẩn hóa cho phép chúng tôi chuyển đổi một tính năng không có phân phối bình thường cơ bản thành bình thường

 

Phân phối bình thường đôi khi là một giả định đối với một số mô hình học máy. Vì vậy, Chuẩn hóa cải thiện khả năng giải quyết các hệ số của mô hình của bạn, đây là thước đo mức độ thay đổi của một dự đoán tính năng sẽ thay đổi một dự đoán khác. Điều này là do các tính năng được chuẩn hóa làm cho các mô hình ít nhạy cảm hơn với tỷ lệ của chúng

 

Làm cách nào để chuẩn hóa dữ liệu của bạn bằng Python?

Để khám phá các kỹ thuật khác nhau được sử dụng để chuẩn hóa dữ liệu của bạn trong python, hãy thiết lập tập dữ liệu đại diện cho một cột/đối tượng địa lý có phân phối gamma. Tùy thuộc vào trường hợp, nói chung có 5 cách để chuẩn hóa dữ liệu của bạn và chúng tôi sẽ sử dụng python để minh họa chúng

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

x = stats.gamma.rvs[1, size=5000]+5
sns.set_style["whitegrid"]

ax = sns.displot[x, kind = "kde",color = "#e64e4e", height=10, aspect=2,
            linewidth = 5 ]
ax.fig.suptitle['Original distribution', size = 20]

 

Đối với tất cả các phương pháp được mô tả bên dưới, tôi sẽ sử dụng cùng một phân phối ở trên và xem các giá trị chuẩn hóa thu được

 

1. HộpCox Chuyển đổi

Đó là phương pháp số 1 của tôi để chuyển đổi và chuẩn hóa hầu hết các tính năng. Nó được thể hiện bằng công thức dưới đây

 

 

Chuyển đổi BoxCox lấy tên từ các tác giả của nó, nhà thống kê George Box và David Cox. Họ đã phát triển một quy trình hoạt động bằng cách xác định một lambda lý tưởng để chuyển đổi đối tượng địa lý thành dạng Gaussian [bình thường]. Lambda là sức mạnh mà tại đó các giá trị sẽ được nâng lên và thuật toán tìm kiếm giá trị lambda tốt nhất từ ​​-5 đến 5

 

Box-Cox không đảm bảo tính quy tắc vì không có kiểm tra tính quy tắc trong thuật toán. Nó chỉ kiểm tra độ lệch chuẩn nhỏ nhất. Tuy nhiên, khả năng rất cao là dữ liệu được phân phối chuẩn khi độ lệch chuẩn nhỏ nhất. Kiểm tra tính quy tắc [thông qua biểu đồ xác suất] cần được thực hiện để chắc chắn 100%

# Apply Normalization
x_norm, _ = stats.boxcox[x]

# Plot the distribution
ax = sns.displot[x_norm, kind = "kde",color = "#e64e4e", height=10, aspect=2,
            linewidth = 5 ]
ax.fig.suptitle['Distribution after BoxCox transfomation', size = 20]

 

2. YeoJohnson

Phép biến đổi Yeo-Johnson là một cách khác để chuẩn hóa dữ liệu của bạn. Nó hoạt động tương tự như phép biến đổi Box Cox nhưng Yeo Johnson tạo ra một phân phối đối xứng hơn và CÓ THỂ được sử dụng với các giá trị âm

from scipy.stats import yeojohnson
x_norm, _ = yeojohnson[x]
ax = sns.displot[x_norm, kind = "kde",color = "#e64e4e", height=10, aspect=2,
            linewidth = 5 ]
ax.fig.suptitle['Distribution after YeoJohnson transfomation', size = 20]

 

Nếu các giá trị hoàn toàn dương, thì phép biến đổi Yeo-Johnson giống như phép biến đổi lũy thừa BoxCox của [y+1]. Nếu chúng hoàn toàn âm, thì phép biến đổi Yeo-Johnson là phép biến đổi lũy thừa Box-Cox của [-y +x], nhưng với lũy thừa 2-lambda. Điều này cho phép nó được sử dụng cho cả giá trị dương và âm.  

 

3. Chuyển đổi nhật ký

Trong chuyển đổi nhật ký, bạn có thể thay đổi từng giá trị của tính năng theo cơ số 2, 10 hoặc nhật ký tự nhiên. Nó được đại diện với np. chức năng nhật ký.  

 

Bạn nên sử dụng Chuyển đổi nhật ký khi bạn có bản phân phối gốc bị sai lệch. Độ lệch có thể được gây ra bởi phân phối theo cấp số nhân cao, các giá trị ngoại lệ, v.v.

 

Đây là cách chuẩn hóa dữ liệu bằng log-transform với python. Nó khá đơn giản

x_norm = np.log[x]

ax = sns.displot[x_norm, kind = "kde",color = "#e64e4e", height=10, aspect=2,
            linewidth = 5 ]
ax.fig.suptitle['Distribution after Log transfomation', size = 20]

 

4. chuyển đổi đối ứng

Trong phương pháp này, chúng ta sẽ chỉ cần thay thế từng giá trị bằng nghịch đảo của nó bằng cách sử dụng [1/x]. Phương pháp này ít ảnh hưởng đến hình dạng của phân phối so với các phương pháp khác và chỉ có thể được sử dụng cho các giá trị khác không

x_norm = 1/x

ax = sns.displot[x_norm, kind = "kde",color = "#e64e4e", height=10, aspect=2,
            linewidth = 5 ]
ax.fig.suptitle['Distribution after Reciprocal transfomation', size = 20]

 

5. Phép biến đổi căn bậc hai

n phương pháp này, chúng tôi sẽ thay thế từng giá trị của bản gốc bằng căn bậc hai của nó bằng cách áp dụng np. sqrt[x] để lấy các giá trị căn bậc hai. Nó có tác dụng đáng chú ý đối với phân phối và có thể được sử dụng trên các giá trị bằng không

x_norm = np.sqrt[x]

ax = sns.displot[x_norm, kind = "kde",color = "#e64e4e", height=10, aspect=2,
            linewidth = 5 ]
ax.fig.suptitle['Distribution after Squareroot transfomation', size = 20]

 

Thưởng. Biến đổi véc tơ đơn vị

Tôi đã đề cập đến phép biến đổi vectơ đơn vị vì scikit learn có chức năng Chuẩn hóa viết tắt của chuẩn hóa vectơ đơn vị, chỉ có thể áp dụng cho các hàng

 

Đó là một quá trình chia tỷ lệ các mẫu riêng lẻ để có dạng đơn vị. Theo tài liệu. “Chuyển đổi vectơ đơn vị có thể hữu ích nếu bạn dự định sử dụng một dạng bậc hai chẳng hạn như tích vô hướng hoặc bất kỳ hạt nhân nào khác để định lượng mức độ giống nhau của bất kỳ cặp mẫu nào”.  

from sklearn import preprocessing
X = [[ 1., -1.,  2.],
     [ 2.,  0.,  0.],
     [ 0.,  1., -1.]]
X_norm = preprocessing.normalize[X, norm='l2']
X_norm
array[[[ 0.40824829, -0.40824829,  0.81649658],
       [ 1.        ,  0.        ,  0.        ],
       [ 0.        ,  0.70710678, -0.70710678]]]

 

Nếu bạn đã thực hiện đến đây trong bài viết, cảm ơn bạn rất nhiều

 

Tôi hy vọng thông tin này được sử dụng cho bạn.  

 

Vui lòng sử dụng bất kỳ thông tin nào từ trang này. Tôi sẽ đánh giá cao nếu bạn có thể chỉ cần liên kết đến bài viết này dưới dạng nguồn. Nếu có thêm bất kỳ câu hỏi nào, bạn có thể liên hệ với hoặc nhắn tin cho tôi trên Twitter . Nếu bạn muốn nhiều nội dung như thế này, hãy tham gia danh sách email của tôi để nhận các bài viết mới nhất. Mình cam kết không spam.

Chuẩn hóa dữ liệu là gì?

Chuẩn hóa dữ liệu là việc tổ chức dữ liệu để có vẻ giống nhau trên tất cả các bản ghi và trường . Nó làm tăng sự gắn kết của các loại mục nhập dẫn đến làm sạch, tạo khách hàng tiềm năng, phân khúc và dữ liệu chất lượng cao hơn.

Chuẩn hóa dữ liệu trong gấu trúc là gì?

Chuẩn hóa dữ liệu. Chuẩn hóa dữ liệu cũng có thể là một phương pháp điển hình trong học máy bao gồm chuyển đổi các cột số thành thang đo tiêu chuẩn . Trong học máy, một số giá trị tính năng khác với các giá trị khác nhiều lần. Các tính năng có giá trị cao hơn sẽ chiếm ưu thế trong quá trình học tập.

chuẩn hóa dữ liệu ví dụ là gì?

Về cơ bản, chuẩn hóa dữ liệu định dạng dữ liệu của bạn để nhìn và đọc giống nhau trên tất cả các bản ghi trong cơ sở dữ liệu. Ví dụ: bạn có thể muốn tất cả các số điện thoại bao gồm dấu gạch ngang [2345678910 trở thành 234-567-8910] hoặc tất cả các tiểu bang được viết tắt [California trở thành CA] .

Chủ Đề