Chuyển đổi lượng tử với phân phối Gaussian - Thực hiện Sklearn


8

Đây có thể là một câu hỏi mơ hồ, nhưng tôi tự hỏi làm thế nào việc chuyển đổi lượng tử của Scikit-Learn được thực hiện?

Tôi đang tự hỏi làm thế nào một bộ dữ liệu sai lệch có thể được chuyển đổi thành một bản phân phối bình thường như thế này ?

Thông thường scikit-learn cung cấp một liên kết đến wiki, nhưng không phải là sự chuyển đổi này.

Ai đó có thể chỉ cho tôi đi đúng hướng?

Cảm ơn

Câu trả lời:


12

Vâng, nó dường như được mô tả ở một vài nơi khác nhau, không có liên kết đến bất kỳ giấy tờ nào.

Các tài liệu hướng dẫn lớp tóm tắt các thuật toán như sau:

Việc chuyển đổi được áp dụng trên từng tính năng một cách độc lập. Hàm mật độ tích lũy của một tính năng được sử dụng để chiếu các giá trị gốc. Các giá trị tính năng của dữ liệu mới / chưa thấy nằm dưới hoặc trên phạm vi được trang bị sẽ được ánh xạ tới các giới hạn của phân phối đầu ra. Lưu ý rằng biến đổi này là phi tuyến tính. Nó có thể bóp méo mối tương quan tuyến tính giữa các biến được đo ở cùng một thang đo nhưng làm cho các biến được đo ở các thang đo khác nhau có thể so sánh trực tiếp hơn.

hướng dẫn sử dụng thêm một số thông tin mới:

Tuy nhiên, bằng cách thực hiện chuyển đổi thứ hạng, nó làm mịn các phân phối bất thường và ít bị ảnh hưởng bởi các ngoại lệ hơn so với các phương pháp chia tỷ lệ. Tuy nhiên, nó làm sai lệch các mối tương quan và khoảng cách trong và trên các tính năng.

Cụ thể, đối với chuyển đổi Bình thường:

Do đó, trung vị của đầu vào trở thành giá trị trung bình của đầu ra, tập trung ở mức 0. Đầu ra bình thường được cắt bớt sao cho tối thiểu và tối đa của đầu vào - tương ứng với các lượng tử 1e-7 và 1 - 1e-7 - không trở thành vô hạn theo sự biến đổi.

Các yêu cầu kéo GitHub cho ước lượng tài liệu tham khảo này một một lớn hơn mà chương trình đó đã được ban đầu sẽ được đặt tên là một "bậc scaler".

Theo nghĩa rộng hơn, bài viết này cung cấp một bản tóm tắt tốt về các cách khác nhau mà "các phép biến đổi thông thường nghịch đảo (INT)" có thể được thực hiện:

INT là cách biến đổi phân phối mẫu của một biến liên tục để làm cho nó xuất hiện phân phối bình thường hơn. Có một số loại INT. Sự khác biệt đầu tiên chúng tôi thực hiện là giữa các INT dựa trên xếp hạng và không dựa trên xếp hạng. Các INT không dựa trên xếp hạng đòi hỏi phải có một hàm phân phối tích lũy (CDF) cụ thể cho dữ liệu được quan sát, ước tính các tham số của phân phối đó, chuyển đổi điểm số quan sát thành lượng tử ước tính từ CDF, sau đó chuyển đổi các lượng tử này thành độ lệch chuẩn thông thường bằng cách sử dụng nghịch đảo bình thường (hoặc chức năng probit). Các INT không dựa trên xếp hạng như vậy thường được gọi là các công thức (Basrak et al. 2004; Li et al. 2006) và sẽ không được xem xét thêm. Điều đáng chú ý, tuy nhiên, rằng các INT dựa trên xếp hạng có thể được biểu thị như một trường hợp đặc biệt của phương pháp copula trong đó CDF theo kinh nghiệm được sử dụng thay vì giới hạn CDF đối với một số họ phân phối. Đó là, mọi khoảnh khắc đều có hiệu lực được ước tính từ dữ liệu và các lượng tử trở thành các hàm đơn giản của các cấp bậc.

Các INT dựa trên xếp hạng bao gồm một bước sơ bộ để chuyển đổi một biến thành các cấp bậc và có thể được chia thành hai lớp: các lớp liên quan đến một yếu tố ngẫu nhiên và các biến có tính xác định. Chúng tôi biết rằng chỉ có một INT liên quan đến một yếu tố ngẫu nhiên và cách tiếp cận này đã được gọi là việc sử dụng các sai lệch bình thường ngẫu nhiên của Hồi (Conover 1980). Một điều ngăn cản cách tiếp cận này là mỗi điều tra viên áp dụng cùng một phương pháp cho cùng một bộ dữ liệu sẽ có được một câu trả lời hơi khác nhau, điều này có thể không thỏa mãn với một số người. Cách tiếp cận này có lợi thế về mặt lý thuyết là tránh độ chi tiết trong phân phối các giá trị P, một vấn đề thường gây khó khăn cho nhiều thử nghiệm không theo dõi. Tuy nhiên, bản chất ngẫu nhiên của các INT này dường như làm nản lòng các nhà nghiên cứu và chúng hiếm khi được sử dụng.

Các INT dựa trên xếp hạng xác định có thể được phân loại thành các INT sử dụng điểm số bình thường dự kiến ​​(Fisher và Yates 1938) so với các INT sử dụng phép biến đổi ngược của lượng tử mẫu (hoặc xếp hạng phân số) để xấp xỉ điểm bình thường dự kiến. Sử dụng tích hợp số, Harter (1961) đã cung cấp bảng đầy đủ nhất về điểm số bình thường dự kiến. Các INT liên quan đến việc chuyển đổi trở lại các cấp bậc phân số để xấp xỉ điểm số bình thường dự kiến ​​của Fisher và Yates (Maritz 1982) dường như được sử dụng phổ biến nhất trong nghiên cứu di truyền và sẽ là trọng tâm chính của sự chú ý. Trong các cấp bậc biến đổi ngược, một phần bù phân đoạn là cần thiết để tránh có các quan sát tối thiểu và tối đa được chuyển thành vô cực âm và dương tương ứng.

Nhìn vào QuantileTransformer , nó trông giống như mục cuối cùng trong danh sách: một INT dựa trên xếp hạng xác định để tính toán một biến thứ hạng được sửa đổi.

Tuy nhiên, đó là một cách thực hiện tương đối đơn giản:

  1. tính toán xếp hạng thực nghiệm, sử dụng numpy.percentile
  2. sửa đổi thứ hạng thông qua nội suy, sử dụng numpy.interp
  3. ánh xạ tới phân phối chuẩn bằng cách đảo ngược CDF, sử dụng scipy.stats.norm.ppf

quan tâm để đối phó với giới hạn ở các chi.

yi=Φ1(F(xi))FΦ


Thật là một câu trả lời xuất sắc, kỹ lưỡng. Điều này rất hữu ích cho tôi. Cảm ơn bạn đã bao gồm ánh xạ đơn giản hóa ở cuối để khái niệm dễ dàng hơn.
Sói đơn độc

1

nếu a là qutantile qth, q trong [0, 1]. Sau đó, sau khi ánh xạ, giá trị tương ứng với a là Norm.ppf (q). ppf là nghịch đảo của cdf.


Cách tiếp cận này không dựa trên lý thuyết thống kê. Đầu tiên, chúng tôi quan tâm đến phân phối có điều kiện, không phân phối cận biên. Thứ hai, chúng tôi không quan tâm nhiều đến việc phân phối các yếu tố dự đoán, chỉ về phân phối có điều kiện của Y cho X. Thứ ba, có các cách tiếp cận nguyên tắc đối với hồi quy mạnh như mô hình bán đảo không cần chuyển đổi Y.
Frank Harrell
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.