Lý do đằng sau việc chuyển đổi log của một vài biến liên tục là gì?


16

Tôi đã làm một vấn đề phân loại và tôi đã đọc nhiều mã và hướng dẫn của mọi người. Một điều tôi nhận thấy là nhiều người lấy np.loghoặc logbiến liên tục như loan_amounthoặc applicant_incomev.v.

Tôi chỉ muốn hiểu lý do đằng sau nó. Liệu nó có giúp cải thiện độ chính xác dự đoán mô hình của chúng tôi. Có bắt buộc không? hoặc có logic nào đằng sau nó không?

Vui lòng cung cấp một số giải thích nếu có thể. Cảm ơn bạn.

Câu trả lời:


27

Điều này được thực hiện khi các biến kéo dài một số bậc độ lớn. Thu nhập là một ví dụ điển hình: phân phối của nó là "luật quyền lực", có nghĩa là phần lớn thu nhập là nhỏ và rất ít là lớn.

Kiểu phân phối "chất béo đuôi" này được nghiên cứu theo thang logarit vì các tính chất toán học của logarit:

log(xn)=nlog(x)

ngụ ý

log(104)=4log(10)

log(103)=3log(10)

mà biến đổi một sự khác biệt rất lớn

104103
trong một nhỏ hơn
43
Làm cho các giá trị có thể so sánh được.


2
Câu trả lời tốt đẹp đặc biệt nói về phân phối theo cấp số nhân.
Kasra Manshaei

1
@KasraManshaei Tôi đã nói về luật quyền lực nói riêng (thu nhập là một ví dụ điển hình): các giá trị cực đoan trong phân phối theo cấp số nhân theo định nghĩa là rất hiếm. Do đó, dữ liệu kéo dài nhiều bậc độ lớn thường là luật công suất.
Duccio Piovani

1
nhưng tất nhiên trong những trường hợp như vậy log ---> ln, điều này hoàn toàn không thay đổi điểm của câu trả lời.
Duccio Piovani

Vâng tôi hiểu rồi. Như bạn đã nói không có nhiều thay đổi.
Kasra Manshaei

6

Chủ yếu là do phân phối lệch. Logarit tự nhiên làm giảm phạm vi động của một biến để các khác biệt được bảo toàn trong khi thang đo không bị sai lệch đáng kể. Hãy tưởng tượng một số người nhận được 100.000.000 khoản vay và một số có 10000 và một số 0. Bất kỳ tỷ lệ tính năng nào cũng có thể đặt 0 và 10000 gần nhau như một con số lớn nhất dù sao cũng đẩy ranh giới. Logarit giải quyết vấn đề.


Manshael, vậy tôi có thể sử dụng MinMaxScaler hay StandardScaler phải không? hoặc có cần thiết phải đăng nhập?
Sai Kumar

Cần thiết. Nếu bạn sử dụng bộ chia tỷ lệ, chúng nén các giá trị nhỏ một cách đáng kể. Đó là những gì tôi muốn nói.
Kasra Manshaei

2
Đúng. Nếu bạn lấy các giá trị 1000.000.000 và 10000 và 0 vào tài khoản. Trong nhiều trường hợp, cái đầu tiên quá lớn để cho người khác thấy đúng mô hình của bạn. Nhưng nếu bạn lấy logarit, bạn sẽ có 9, 4 và 0 tương ứng. Như bạn thấy phạm vi động bị giảm trong khi sự khác biệt gần như được bảo tồn. Nó đến từ bất kỳ tính chất theo cấp số nhân trong tính năng của bạn. Trong những trường hợp đó, bạn cần logarit như câu trả lời khác được mô tả. Hy vọng nó sẽ giúp :)
Kasra Manshaei

2
Vâng, nhân rộng! Hãy tưởng tượng hai biến có phân phối bình thường (vì vậy không cần logarit) nhưng một trong số chúng có tỷ lệ 10ish và biến còn lại theo tỷ lệ hàng triệu. Một lần nữa cho chúng ăn mô hình làm cho cái nhỏ trở nên vô hình. Trong trường hợp này, bạn sử dụng các thang đo để làm cho quy mô của họ hợp lý.
Kasra Manshaei

1
@KasraManshaei log (0) = -inf mặc dù.
JAD

5

đăng nhậpx0<x<-<đăng nhậpx<

x


3

Tuy nhiên, một lý do khác tại sao các phép biến đổi logarit rất hữu ích cho dữ liệu tỷ lệ, do thực tế là như vậy log(A/B) = -log(B/A). Nếu bạn vẽ một phân phối tỷ lệ theo tỷ lệ thô, điểm của bạn sẽ nằm trong phạm vi (0, Inf). Bất kỳ tỷ lệ nào nhỏ hơn 1 sẽ được đặt vào một khu vực nhỏ của ô, và hơn nữa, cốt truyện sẽ trông hoàn toàn khác nếu bạn lật tỷ lệ này (B/A)thay vì (A/B). Nếu bạn thực hiện điều này theo thang logarit, thì phạm vi bây giờ (-Inf, +Inf), có nghĩa là tỷ lệ nhỏ hơn 1 và lớn hơn 1 được trải đều hơn. Nếu bạn quyết định lật tỷ lệ, bạn chỉ cần lật cốt truyện xung quanh 0, nếu không nó trông giống hệt nhau. Trên thang đo nhật ký, sẽ không thực sự quan trọng nếu bạn hiển thị tỷ lệ 1/10 or 10/1, điều này rất hữu ích khi không có sự lựa chọn rõ ràng nào về tỷ lệ đó.


3

Bạn nên nhìn vào phân phối lognatural .

Mọi người có thể sử dụng nhật ký vì họ nghĩ rằng nó nén quy mô hoặc thứ gì đó, nhưng nguyên tắc sử dụng nhật ký là bạn đang làm việc với dữ liệu có phân phối lognatural. Điều này sẽ có xu hướng là những thứ như tiền lương, giá nhà đất, vv, trong đó tất cả các giá trị là tích cực và hầu hết là tương đối khiêm tốn, nhưng một số rất lớn.

Nếu bạn có thể lấy nhật ký của dữ liệu và nó trở nên bình thường, thì bạn có thể tận dụng nhiều tính năng của phân phối bình thường, như trung bình được xác định rõ, độ lệch chuẩn (và do đó là z-points), đối xứng, v.v.

Tương tự, việc thêm các bản ghi cũng giống như phép nhân của các giá trị un-log'd. Điều đó có nghĩa là bạn đã biến một bản phân phối trong đó các lỗi là phụ gia thành một trong đó chúng được nhân lên (tức là dựa trên tỷ lệ phần trăm). Vì các kỹ thuật như hồi quy OLS yêu cầu phân phối lỗi bình thường, làm việc với các bản ghi sẽ mở rộng khả năng ứng dụng của chúng từ phụ gia sang quy trình nhân.


1
Nếu bạn muốn so sánh các mục theo cách không phân phối, sẽ tốt hơn nếu lấy phần trăm hoặc phần giải mã và sử dụng các mục thay vì giá trị ban đầu?
William Payne

1
@WilliamPayne Chắc chắn, bạn có thể sử dụng phương pháp không phân phối, mặc dù bạn cũng đang từ bỏ một số sức mạnh của việc phân phối ... nếu các giả định phân phối của bạn là chính xác. Với giả định (chính xác) lớn hơn sẽ có sức mạnh lớn hơn. Phần trăm về cơ bản là xếp hạng, do đó bạn vứt bỏ thông tin khoảng cách bạn có và phần trăm của một mẫu cụ thể là ước tính điểm. Chúng tôi thường thích phân phối cho các điểm.
Wayne

0

Tôi muốn nói lý do chính không phải là phân phối mà là vì mối quan hệ phi tuyến tính. Nhật ký thường nắm bắt các mối quan hệ bão hòa ...

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.