Hỗ trợ hồi quy véc tơ trên dữ liệu lệch / cao


8

Tôi đang sử dụng hồi quy vectơ hỗ trợ để mô hình hóa một số dữ liệu khá sai lệch (với mức độ tổn thương cao). Tôi đã thử mô hình hóa dữ liệu trực tiếp nhưng tôi nhận được dự đoán sai, tôi nghĩ chủ yếu là do phân phối dữ liệu, bị lệch với đuôi rất mập. Tôi khá chắc chắn rằng một số ngoại lệ (là các điểm dữ liệu hợp pháp) đang ảnh hưởng đến đào tạo SVR, và có lẽ trong quá trình xác nhận chéo, tại thời điểm này tôi đang tối ưu hóa các siêu đường kính bằng cách giảm thiểu lỗi bình phương trung bình.

Tôi đã cố gắng chia tỷ lệ dữ liệu của mình trước khi áp dụng SVR (ví dụ: sử dụng hàm sqrt để giảm các ngoại lệ) cũng như sử dụng hàm giảm thiểu siêu tham số khác (ví dụ: lỗi tuyệt đối), có vẻ cho kết quả tốt hơn, nhưng vẫn không tốt lắm. Tôi tò mò liệu có ai gặp phải vấn đề tương tự không và làm thế nào họ tiếp cận nó? Bất kỳ đề xuất và / hoặc phương pháp thay thế đều được chào đón nhất.


nếu các biến là tích cực hơn áp dụng nhật ký (một trường hợp đặc biệt của chuyển đổi Box-Cox) có thể hữu ích
Yevgeny

Cảm ơn Yevgeny. Các biến không may là cả tích cực và tiêu cực. Có còn cách nào để áp dụng biến đổi năng lượng hay biến đổi Box-Cox không?
tomas

Câu trả lời:


8

Bạn có thể sử dụng các bản phân phối Lambert W bị lệch hoặc nặng để biến đổi dữ liệu của bạn thành một thứ gì đó hoạt động tốt hơn (từ chối trách nhiệm: Tôi là tác giả của cả hai bài báo và gói LambertW R). Ưu điểm của phép biến đổi Box-Cox là chúng không có bất kỳ hạn chế tích cực nào, các tham số tối ưu của phép chuyển đổi có thể được ước tính (MLE) từ dữ liệu và bạn cũng có thể quên chuyển đổi và mô hình hóa dữ liệu của mình dưới dạng Lambert W x Phân phối F trực tiếp.

Gói LambertW R cung cấp một số công cụ ước tính, biến đổi, phương thức, v.v. Tôi đặc biệt khuyên bạn nên xem qua

   Gaussianize()
   IGMM()
   MLE_LambertW()

Phân phối Lambert W x F bị lệch là một khung chung để tạo một phiên bản sai lệch của bất kỳ phân phối nào F. Ngược lại, bạn có thể làm cho dữ liệu bị lệch của mình trở lại đối xứng; phân phối dữ liệu đối xứng này về cơ bản xác định loại Lambert W x F bạn có; nếu dữ liệu chỉ là một chút bất đối xứng, thì bạn có thể có một Lambert W x Gaussian bị lệch; nếu dữ liệu của bạn có đuôi quá nặng, có thể bạn có thể thử Lambert W x t.

Lambert W x F đuôi nặng là một khái quát của phân phối h của Tukey và chúng cung cấp một phép biến đổi ngược để tạo ra dữ liệu Gaussian (cũng từ bất đối xứng). Trong bài báo tôi chứng minh rằng ngay cả một Cauchy cũng có thể được Gaussianized đến một mức độ mà bạn - và cả một số bài kiểm tra Định mức - không thể phân biệt nó với một mẫu Bình thường.


Chào mừng đến với trang web của chúng tôi, Georg!
whuber

1

Một cách để đối phó với các giá trị âm là chuyển các biến sang phạm vi dương (nói lớn hơn hoặc bằng 0,1), áp dụng biến đổi Box-Cox (hoặc chỉ log () để kiểm tra nhanh), sau đó chuẩn hóa. Việc tiêu chuẩn hóa có thể quan trọng đối với SVR vì SVR dựa trên hình phạt bậc hai được áp dụng cho tất cả các hệ số (vì vậy SVR không phải là bất biến tỷ lệ và có thể hưởng lợi từ tiêu chuẩn hóa thay đổi). Đảm bảo kiểm tra các phân phối biến kết quả - chúng không nên bị sai lệch nhiều (lý tưởng là chúng nên nhìn Gaussian)

Một kỹ thuật khác mà người ta có thể thử là áp dụng phép biến đổi "dấu hiệu không gian" cho các vectơ đầu vào x <- x / norm(x)theo quy trình tiền xử lý dấu hiệu không gian: một cách đơn giản để truyền đạt độ mạnh vừa phải cho các công cụ ước tính đa biến. J. Hóa. Thông tin Mô hình (2006) tập. 46 (3) Trang 1402 Từ1409 Tôi không gặp nhiều may mắn với kỹ thuật này nhưng số dặm có thể thay đổi.


1
Cảm ơn Yevgeny. Tôi sẽ xem xét nó. Tôi đã suy nghĩ về việc sử dụng một phép biến đổi hình sin hyperbol ngược vì đây là một kỹ thuật dường như hoạt động cho cả giá trị dương và âm. Thật không may, tôi không chắc làm thế nào để ước tính tham số theta. Bạn có quen thuộc với điều này không? Cảm ơn.
tomas

Tôi đã thấy công thức (tham số miễn phí) này: x <- log (x + sqrt (x ^ 2 + 1))
Yevgeny

0

Một cách để tiếp cận giải pháp sẽ là xây dựng hai mô hình: một cho các giá trị phù hợp với phân phối và một cho các ngoại lệ. Đề xuất của tôi về vấn đề này sẽ là tạo một biến phản hồi nhị phân (0,1) với 0 là giá trị nếu datapoint nằm trong giới hạn phân phối của bạn và 1 nếu nó nằm bên ngoài. Vì vậy, đối với các trường hợp ngoại lệ mà bạn muốn giữ trong dữ liệu của mình, bạn sẽ có 1 trong biến mục tiêu và phần còn lại là 0. Bây giờ hãy chạy hồi quy logistic để dự đoán xác suất của các ngoại lệ và bạn có thể nhân giá trị trung bình cho nhóm các ngoại lệ với xác suất riêng lẻ để có được các dự đoán. Đối với phần còn lại của dữ liệu, bạn có thể chạy SVM của mình để dự đoán các giá trị.

Bởi vì các giá trị là ngoại lệ, chúng sẽ có xác suất thấp liên quan đến nó và ngay cả khi bạn hiểu ý nghĩa của các ngoại lệ sẽ bị sai lệch, giá trị kỳ vọng của các ngoại lệ sẽ bị kéo xuống bởi xác suất thấp được đính kèm của chúng và bằng cách làm cho nó nhiều hơn dự đoán hợp lý.

Đã gặp một kịch bản tương tự trong khi dự đoán số tiền yêu cầu bồi thường cho một nhà cung cấp dịch vụ bảo hiểm. Tôi đã sử dụng kỹ thuật nói trên để tăng hiệu suất của mô hình của mình một cách quyết liệt.

Một cách khác có thể là thực hiện chuyển đổi nhật ký của biến mục tiêu của bạn, điều này là có thể nếu bạn chỉ có giá trị dương trong biến mục tiêu. Nhưng hãy chắc chắn rằng nếu bạn đang thực hiện chuyển đổi nhật ký của biến mục tiêu, đồng thời dự đoán biến bạn cần bao gồm cả thành phần lỗi.

đăng nhập(Y)= =một+B'X+ε

Y= =điểm kinh nghiệm(một+B'X+ε)

Bạn có thể xem qua liên kết sau đây để chuyển đổi log: http://www.vims.edu/people/newman_mc/pub/Newman1993.pdf

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.