2014-04-04 20 views
15

Tôi đang sử dụng sklearn.linear_model.LogisticRegression trong scikit learn để chạy hồi quy logistic.Nghịch đảo của cường độ chuẩn hóa trong hồi quy logistic là gì? Làm thế nào nó sẽ ảnh hưởng đến mã của tôi?

C : float, optional (default=1.0) Inverse of regularization strength; 
    must be a positive float. Like in support vector machines, smaller 
    values specify stronger regularization. 

C có nghĩa là gì ở đây đơn giản? Sức mạnh chuẩn hóa là gì?

+0

Bạn đã hỏi Google chưa? Tôi đã làm. [Liên kết này] (http://compbio.soe.ucsc.edu/html_format_papers/hughkrogh96/node6.html) là người đầu tiên –

+0

@RichardScriven Tôi đã làm, và thấy nó rất phức tạp và hy vọng một người nào đó sẽ tử tế, đủ để phá vỡ nó xuống tiếng Anh đơn giản cho tôi! Cảm ơn bạn đã liên kết :) – user3427495

+2

Không sao. Mặc dù nó trông giống như toán học khó hơn tiếng anh đơn giản. :) –

Trả lời

31

Regularization áp dụng hình phạt để tăng cường độ của giá trị tham số để giảm overfitting. Khi bạn đào tạo một mô hình như mô hình hồi quy logistic, bạn đang lựa chọn các tham số cho phù hợp nhất với dữ liệu. Điều này có nghĩa là giảm thiểu lỗi giữa những gì mô hình dự đoán cho biến phụ thuộc của bạn cho dữ liệu của bạn so với những gì biến phụ thuộc của bạn thực sự là.

Sự cố xảy ra khi bạn có nhiều tham số (nhiều biến độc lập) nhưng không quá nhiều dữ liệu. Trong trường hợp này, mô hình sẽ thường điều chỉnh các giá trị tham số thành idiosyncrasies trong dữ liệu của bạn - điều đó có nghĩa là nó phù hợp với dữ liệu của bạn gần như hoàn hảo. Tuy nhiên, vì những idiosyncrasies không xuất hiện trong dữ liệu trong tương lai bạn thấy, mô hình của bạn dự đoán kém.

Để giải quyết điều này, cũng như giảm thiểu lỗi như đã thảo luận, bạn thêm vào những gì được thu nhỏ và cũng giảm thiểu một chức năng xử phạt các giá trị lớn của các tham số. Thông thường chức năng là λΣθ j , đó là một số lần λ liên tục tổng các giá trị tham số bình phương q j . Các larger lớn hơn là ít có khả năng là các thông số sẽ được tăng cường độ đơn giản để điều chỉnh cho các nhiễu loạn nhỏ trong dữ liệu. Tuy nhiên, trong trường hợp của bạn, thay vì chỉ định λ, bạn chỉ định C = 1/λ.

+0

Câu trả lời hay! Cảm ơn bạn rất nhiều :) – user3427495

+0

Theo hiểu biết tốt nhất của tôi, việc xử phạt được áp dụng để ** giảm ** độ lớn của các thông số. –

+0

@ArtonDorneles có _penalty_ cho _increasing_ độ lớn của các tham số. Ngược lại, có xu hướng là _benefit_ để _decreasing_ độ lớn của các tham số. – TooTone

1

Có một câu trả lời hay trong ghi chú cs231n course từ stanford.

Notation:

Δ ám chỉ tôi tin rằng đến C trong việc thực hiện scikit-học. W là ma trận có trọng số λ là thông số chuẩn hóa.

Tôi đề nghị đi trên trang, nhưng cho đầy đủ đây là một trích dẫn có liên quan:

"Thiết Delta Lưu ý rằng chúng tôi chải qua hyperparameter Δ và thiết lập của nó giá trị gì nó nên được đặt thành.. Nó chỉ ra rằng siêu tham số này một cách an toàn có thể được thiết lập để Δ = 1.0 trong tất cả các trường hợp. cùng sự cân bằng: The sự cân bằng giữa mất mát dữ liệu và việc thường xuyên hóa mất mát trong mục tiêu. Chìa khóa để hiểu được điều này là độ lớn của trọng số WW có ảnh hưởng trực tiếp đến điểm số (và do đó cũng có sự khác biệt của chúng): Khi chúng ta thu hẹp tất cả các giá trị bên trong W, số điểm khác nhau sẽ giảm xuống, và khi chúng ta mở rộng trọng số của sự khác biệt số điểm tất cả sẽ trở nên cao hơn. Do đó, giá trị chính xác của lề giữa các điểm số (ví dụ:Δ = 1, hoặc Δ = 100) ở một số cảm giác vô nghĩa vì trọng số có thể co lại hoặc kéo dài sự khác biệt khác biệt. Do đó, sự cân bằng thực duy nhất là lớn như thế nào chúng tôi cho phép các trọng để phát triển (thông qua sức mạnh quy tắc λ)."

Các lấy đi được về cơ bản mà phụ thuộc vào việc thực hiện bạn cần phải điều chỉnh Δ hoặc λ và họ kiểm soát mức độ thông thường. Không cần phải "điều chỉnh" cả hai!

Các vấn đề liên quan