Chia tỷ lệ tính năng là một bước quan trọng trong giai đoạn xử lý trước dữ liệu trong việc xây dựng các thuật toán học máy. Nó giúp chuẩn hóa dữ liệu nằm trong một phạm vi cụ thể.
Đôi khi, nó cũng giúp tăng tốc độ thực hiện các phép tính của máy.
Tại sao nó lại cần thiết?
Dữ liệu được cung cấp cho thuật toán học tập dưới dạng đầu vào phải duy trì nhất quán và có cấu trúc. Tất cả các đặc điểm của dữ liệu đầu vào nên nằm trên một thang đo duy nhất để dự đoán các giá trị một cách hiệu quả. Nhưng trong thế giới thực, dữ liệu là không có cấu trúc và hầu hết các trường hợp, không ở cùng một quy mô.
Đây là khi quá trình chuẩn hóa đi vào hình ảnh. Đây là một trong những quá trình chuẩn bị dữ liệu quan trọng nhất. Nó giúp thay đổi giá trị của các cột trong tập dữ liệu đầu vào theo cùng một tỷ lệ.
Hãy cho chúng tôi hiểu cách sử dụng thư viện Scikit learning để thực hiện việc mở rộng tính năng trong Python.
Ví dụ
import numpy as np from sklearn import preprocessing input_data = np.array( [[34.78, 31.9, -65.5], [-16.5, 2.45, -83.5], [0.5, -87.98, 45.62], [5.9, 2.38, -55.82]]) data_scaler_minmax = preprocessing.MinMaxScaler(feature_range=(0,1)) data_scaled_minmax = data_scaler_minmax.fit_transform(input_data) print ("\nThe scaled data is \n", data_scaled_minmax)
Đầu ra
The scaled data is [[1. 1. 0.1394052 ] [0. 0.75433767 0. ] [0.33151326 0. 1. ] [0.43681747 0.75375375 0.21437423]]
Giải thích
-
Các gói bắt buộc được nhập.
-
Dữ liệu đầu vào được tạo bằng thư viện Numpy.
-
Hàm MinMaxScaler có trong lớp ‘tiền xử lý’ được sử dụng để chia tỷ lệ dữ liệu nằm trong phạm vi 0 và 1.
-
Bằng cách này, bất kỳ dữ liệu nào trong mảng sẽ được thu nhỏ thành giá trị từ 0 đến 1.
-
Dữ liệu được chia tỷ lệ này được hiển thị trên bảng điều khiển.