Cách rời rạc hóa dữ liệu liên tục trong python

Một bước phổ biến trước khi đào tạo các thuật toán học máy là rời rạc hóa các biến liên tục. Nhưng, tại sao chúng ta rời rạc hóa các biến liên tục và làm cách nào để sắp xếp dữ liệu liên tục thành các giá trị rời rạc?

Rời rạc hóa là quá trình qua đó chúng ta có thể biến đổi các biến, mô hình hoặc hàm liên tục thành một dạng rời rạc. Chúng tôi làm điều này bằng cách tạo một tập hợp các khoảng liền kề [hoặc các ngăn] đi qua phạm vi của biến/mô hình/hàm mong muốn của chúng tôi

Dữ liệu liên tục được đo, trong khi dữ liệu rời rạc được tính

Tôi. Tại sao rời rạc hóa lại quan trọng

Các bài toán với dữ liệu liên tục có vô số DoF. Một vấn đề như vậy sẽ đòi hỏi phải có bậc tự do hạn chế [DoF] vì các tính toán của chúng tôi không thể tiếp tục mãi mãi. Các nhà khoa học dữ liệu yêu cầu sử dụng Discretization vì một số lý do. Nhiều đóng góp hàng đầu trên Kaggle sử dụng rời rạc hóa vì một số lý do sau

Photo by Ryoji Iwata on Unsplash

Phù hợp với tuyên bố vấn đề

Thông thường, dữ liệu liên tục [chẳng hạn như trọng lượng] sẽ dễ hiểu hơn khi được chia và lưu trữ thành các danh mục hoặc nhóm có ý nghĩa. Ví dụ: chúng ta có thể chia một biến liên tục, trọng số và lưu trữ nó trong các nhóm sau.
Dưới 100 lbs [nhẹ], từ 140–160 lbs [trung bình] và trên 200 lbs [nặng]

Chúng tôi sẽ coi cấu trúc này là hữu ích nếu chúng tôi thấy không có sự khác biệt khách quan giữa các biến thuộc cùng một loại trọng số.
Trong ví dụ của chúng tôi, trọng lượng 85 lbs và 56 lbs truyền tải cùng một thông tin [đối tượng nhẹ]. Do đó, rời rạc hóa giúp làm cho dữ liệu của chúng ta dễ hiểu hơn nếu nó phù hợp với tuyên bố vấn đề.

Ảnh của William Daigneault trên Bapt

Phiên dịch các tính năng

Các tính năng liên tục có cơ hội tương quan với biến mục tiêu nhỏ hơn do bậc tự do vô hạn và có thể có mối quan hệ phi tuyến tính phức tạp. Do đó, có thể khó giải thích một chức năng như vậy. Sau khi rời rạc hóa một biến, các nhóm tương ứng với mục tiêu có thể được diễn giải

Ảnh của Franck V. trên Bapt

Không tương thích với các mô hình/phương pháp

Một số mô hình có thể không tương thích với dữ liệu liên tục, ví dụ: các mô hình cây quyết định thay thế như mô hình Rừng ngẫu nhiên không phù hợp với các tính năng liên tục

Các phương pháp kỹ thuật tính năng, chẳng hạn như bất kỳ phương pháp dựa trên entropy nào có thể không hoạt động với dữ liệu liên tục, do đó chúng tôi sẽ phân biệt các biến để hoạt động với các mô hình & phương pháp khác nhau

Ảnh của Mariano Werneck trên Bapt

Tỷ lệ tín hiệu trên tạp âm

Khi chúng tôi rời rạc hóa một mô hình, chúng tôi đang lắp nó vào các thùng và giảm tác động của những biến động nhỏ trong dữ liệu. Thông thường, chúng ta sẽ coi những biến động nhỏ là tiếng ồn. Chúng ta có thể giảm tiếng ồn này thông qua rời rạc hóa. Đây là quá trình “làm mịn”, trong đó mỗi thùng làm mịn các dao động, do đó giảm nhiễu trong dữ liệu

II. Phương pháp tiếp cận rời rạc hóa

  • Không giám sát.
    — Chiều rộng bằng nhau
    — Tần số bằng nhau
    — K-Means
  • Được giám sát.
    — Cây quyết định
III. Rời rạc hóa chiều rộng bằng nhau

Tách tất cả các giá trị có thể thành số lượng 'N' ngăn, mỗi ngăn có cùng chiều rộng. Công thức cho độ rộng khoảng

Chiều rộng = [giá trị lớn nhất - giá trị nhỏ nhất] / N
* trong đó N là số ngăn hoặc khoảng.

Trên python, bạn sẽ muốn nhập phần sau để phân biệt

from sklearn.preprocessing import KBinsDiscretizer
from feature_engine.discretisers import EqualWidthDiscretiser

Thiết lập Equal-Width Discretizer theo cách sau

discretizer = EqualWidthDiscretiser[bins=10, variables = ['var1', 'var2']]#OR discretizer = KBinsDiscretizer[n_bins=10, encode='ordinal', strategy='uniform']
  • Chiều rộng bằng nhau không cải thiện chênh lệch giá trị
  • Nó có thể xử lý các ngoại lệ
  • Có thể được kết hợp với mã hóa phân loại

IV. Phân biệt tần số bằng nhau

Tách tất cả các giá trị có thể thành số lượng 'N' thùng, mỗi thùng có cùng số lượng quan sát. Các khoảng có thể tương ứng với các giá trị lượng tử

Trên python, bạn sẽ muốn nhập phần sau để phân biệt

from sklearn.preprocessing import KBinsDiscretizer
from feature_engine.discretisers import EqualFrequencyDiscretiser

Thiết lập Equal-Frequency Discretizer theo cách sau

discretizer = KBinsDiscretizer[n_bins=10, encode='ordinal', strategy='quantile']#OR discretizer = EqualFrequencyDiscretiser[q=10, variables = ['var1', 'var2']]
  • Tần số bằng nhau cải thiện sự lan truyền giá trị
  • Nó có thể xử lý các ngoại lệ
  • Có thể được kết hợp với mã hóa phân loại

V. K-Means rời rạc hóa

Chúng tôi áp dụng phân cụm K-Means cho biến liên tục, do đó chia nó thành các nhóm hoặc cụm riêng biệt

Trên python, bạn sẽ muốn nhập phần sau để phân biệt với K-means

from sklearn.preprocessing import KBinsDiscretizer

Thiết lập K-means Discretizer theo cách sau

discretizer = KBinsDiscretizer[n_bins=5, encode='ordinal', strategy='kmeans']
  • K-Means không cải thiện chênh lệch giá trị
  • Nó có thể xử lý các ngoại lệ, tuy nhiên có thể tồn tại sự thiên vị trọng tâm
  • Có thể được kết hợp với mã hóa phân loại

VI. Phân biệt với cây quyết định

Chúng tôi sử dụng cây quyết định để xác định số lượng thùng tối ưu. Khi mô hình đưa ra quyết định, nó sẽ chỉ định một quan sát cho mỗi nút. Những quan sát này sau đó được phân loại thành đầu ra rời rạc cho biến của chúng tôi

Disretization trong Python là gì?

Rời rạc hóa dữ liệu là quá trình chuyển đổi dữ liệu liên tục thành các nhóm rời rạc bằng cách nhóm dữ liệu đó . Disretization cũng được biết đến với khả năng duy trì dễ dàng của dữ liệu. Đào tạo một mô hình với dữ liệu rời rạc trở nên nhanh hơn và hiệu quả hơn so với khi cố gắng tương tự với dữ liệu liên tục.

Các kỹ thuật để rời rạc hóa dữ liệu là gì?

Có nhiều kỹ thuật rời rạc hóa khác nhau. Rời rạc hóa bằng cách tạo thùng . Đó là phương pháp phân vùng dữ liệu không giám sát dựa trên các phân vùng bằng nhau, theo chiều rộng bằng nhau hoặc theo tần suất bằng nhau. Rời rạc hóa theo cụm. phân cụm có thể được áp dụng để rời rạc hóa các thuộc tính số.

Quá trình chuyển đổi các giá trị thuộc tính dữ liệu liên tục thành một tập hợp các khoảng hữu hạn là gì?

Phân biệt dữ liệu được định nghĩa là một quá trình chuyển đổi các giá trị thuộc tính dữ liệu liên tục thành một tập hợp hữu hạn các khoảng và liên kết với mỗi khoảng một số giá trị dữ liệu cụ thể.

Sự khác biệt giữa dữ liệu rời rạc và liên tục là gì?

Dữ liệu rời rạc là một loại dữ liệu số bao gồm các số nguyên, cụ thể với các giá trị dữ liệu cụ thể và cố định được xác định bằng cách đếm. Dữ liệu liên tục bao gồm các số phức và các giá trị dữ liệu khác nhau được đo trong một khoảng thời gian cụ thể

Chủ Đề