Đối với phân loại tuyến tính, các hệ số lớn hơn có nghĩa là các tính năng quan trọng hơn?


15

Tôi là một kỹ sư phần mềm làm việc về học máy. Theo hiểu biết của tôi, hồi quy tuyến tính (như OLS) và phân loại tuyến tính (như hồi quy logistic và SVM) đưa ra dự đoán dựa trên một sản phẩm bên trong giữa các hệ số được đào tạo và các biến tính năng x :wx

y^=f(wx)=f(iwixi)

Câu hỏi của tôi là: Sau khi mô hình đã được đào tạo (nghĩa là sau khi các hệ số đã được tính toán), có phải trường hợp nào các hệ số sẽ lớn hơn cho các biến tính năng quan trọng hơn để mô hình dự đoán chính xác hơn không?wTôi

Nói cách khác, tôi đang hỏi liệu cường độ tương đối của các hệ số có thể được sử dụng để lựa chọn tính năng hay không bằng cách chỉ sắp xếp các biến theo giá trị hệ số và sau đó chọn các tính năng có hệ số cao nhất? Nếu phương pháp này hợp lệ, thì tại sao nó không được đề cập để lựa chọn tính năng (cùng với các phương thức trình bao bọc và bộ lọc, v.v.).

Lý do tôi hỏi điều này là vì tôi đã bắt gặp một cuộc thảo luận về chính quy hóa L1 so với L2 . Có một lời nói rằng:

Lựa chọn tính năng tích hợp thường được đề cập như một thuộc tính hữu ích của định mức L1, mà định mức L2 không có. Đây thực sự là kết quả của định mức L1, có xu hướng tạo ra các hệ số thưa thớt (giải thích bên dưới). Giả sử mô hình có 100 hệ số nhưng chỉ có 10 hệ số có hệ số khác không, điều này thực sự nói rằng "90 dự đoán khác là vô ích trong việc dự đoán các giá trị mục tiêu".

Đọc giữa các dòng, tôi sẽ đoán rằng nếu một hệ số gần bằng 0, thì biến tính năng với hệ số đó phải có ít khả năng dự đoán.

EDIT : Tôi cũng đang áp dụng quy mô z cho các biến số của mình.


1
Lưu ý rằng các mã cơ bản phân tích LASSO (L1-Norm) và hồi quy sườn (L2-Norm) nên chia tỷ lệ trước các biến dự đoán trước khi phân tích, ngay cả khi mã sau đó chuyển đổi các hệ số trở lại thang đo biến ban đầu. Những người sử dụng mã không có quy mô trước kết thúc với các vấn đề được ghi nhận trong câu trả lời từ @josliber cho dù họ đang thực hiện OLS, LASSO hay sườn núi.
EdM

3
Tôi nghĩ một điều đáng nói là, khi bạn suy nghĩ về những gì đang cố gắng diễn đạt bằng cụm từ "thì biến tính năng với hệ số đó phải có ít sức mạnh dự đoán", bạn có thể trình bày chính xác điều đó thực sự có nghĩa là gì không? Mặc dù tôi đã thấy rằng khái niệm "sức mạnh dự đoán" của một biến riêng lẻ trong một mô hình đa biến không có cơ sở khái niệm chung nào được thống nhất.
Matthew Drury

4
Tôi nghĩ rằng lỗi trong kiểu suy nghĩ đó là bạn có thể không bị giới hạn trong việc tạo ra một mô hình một biến. Nếu bạn là và bạn muốn cung cấp một mô hình với độ chính xác tốt nhất, họ chắc chắn, đó là một điều hợp lý để làm. Nếu bạn không, tức là nếu bạn định sản xuất một mô hình đa biến, thì, như câu trả lời @EdM, khái niệm về tầm quan trọng của biến là rất, rất trơn và thiếu một nền tảng khái niệm vững chắc. Không rõ ràng rằng sức mạnh dự đoán trong một mô hình đơn biến nên được xem là có liên quan trong một thiết lập đa biến.
Matthew Drury

1
@MatthewDrury: Tôi không chắc tại sao bạn lại kiếm được nhiều tiền từ đa tính năng. Có cả một lĩnh vực "lựa chọn tính năng" (ví dụ: các phương thức trình bao bọc) tồn tại; bạn có gợi ý rằng lĩnh vực này thiếu một nền tảng khái niệm vững chắc?
stackoverflowuser2010

1
@ stackoverflowuser2010 Yah, tôi có lẽ là một ngoại lệ trong quan điểm của tôi ở đây, nhưng đó sẽ là một mô tả hơi chính xác về quan điểm của tôi.
Matthew Drury

Câu trả lời:


24

Không có gì. Độ lớn của các hệ số phụ thuộc trực tiếp vào các thang đo được chọn cho các biến, đây là một quyết định mô hình hóa tùy ý.

Để thấy điều này, hãy xem xét một mô hình hồi quy tuyến tính dự đoán chiều rộng cánh hoa của mống mắt (tính bằng centimet) với chiều dài cánh hoa của nó (tính bằng centimet):

summary(lm(Petal.Width~Petal.Length, data=iris))
# Call:
# lm(formula = Petal.Width ~ Petal.Length, data = iris)
# 
# Residuals:
#      Min       1Q   Median       3Q      Max 
# -0.56515 -0.12358 -0.01898  0.13288  0.64272 
# 
# Coefficients:
#               Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  -0.363076   0.039762  -9.131  4.7e-16 ***
# Petal.Length  0.415755   0.009582  43.387  < 2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.2065 on 148 degrees of freedom
# Multiple R-squared:  0.9271,  Adjusted R-squared:  0.9266 
# F-statistic:  1882 on 1 and 148 DF,  p-value: < 2.2e-16

Mô hình của chúng tôi đạt được giá trị R ^ 2 đã điều chỉnh là 0,9266 và gán giá trị hệ số 0,415755 cho biến Petal.Lipse.

Tuy nhiên, lựa chọn xác định Petal. Bước sóng tính bằng centimet khá tùy ý và thay vào đó chúng ta có thể định nghĩa biến theo mét:

iris$Petal.Length.Meters <- iris$Petal.Length / 100
summary(lm(Petal.Width~Petal.Length.Meters, data=iris))
# Call:
# lm(formula = Petal.Width ~ Petal.Length.Meters, data = iris)
# 
# Residuals:
#      Min       1Q   Median       3Q      Max 
# -0.56515 -0.12358 -0.01898  0.13288  0.64272 
# 
# Coefficients:
#                     Estimate Std. Error t value Pr(>|t|)    
# (Intercept)         -0.36308    0.03976  -9.131  4.7e-16 ***
# Petal.Length.Meters 41.57554    0.95824  43.387  < 2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.2065 on 148 degrees of freedom
# Multiple R-squared:  0.9271,  Adjusted R-squared:  0.9266 
# F-statistic:  1882 on 1 and 148 DF,  p-value: < 2.2e-16

Tất nhiên, điều này không thực sự ảnh hưởng đến mô hình được trang bị theo bất kỳ cách nào - chúng tôi chỉ cần gán một hệ số lớn hơn 100 lần cho Petal.Lipse.Meter (41,57554) so ​​với Petal.Lipse (0.415755). Tất cả các thuộc tính khác của mô hình (được điều chỉnh R ^ 2, thống kê t, giá trị p, v.v.) là giống hệt nhau.

Thông thường, khi điều chỉnh các mô hình tuyến tính chính quy, trước tiên, người ta sẽ bình thường hóa các biến (ví dụ: có trung bình 0 và phương sai đơn vị) để tránh ưu tiên một số biến hơn các biến khác dựa trên thang đo đã chọn.

Giả sử dữ liệu chuẩn hóa

Ngay cả khi bạn đã bình thường hóa tất cả các biến, các biến có hệ số cao hơn vẫn có thể không hữu ích trong dự đoán vì các biến độc lập hiếm khi được đặt (có phương sai thấp). Ví dụ, xem xét một tập dữ liệu với biến phụ thuộc Z và biến độc lập X và Y lấy giá trị nhị phân

set.seed(144)
dat <- data.frame(X=rep(c(0, 1), each=50000),
                  Y=rep(c(0, 1), c(1000, 99000)))
dat$Z <- dat$X + 2*dat$Y + rnorm(100000)

Bằng cách xây dựng, hệ số cho Y lớn gấp đôi hệ số của X khi cả hai được sử dụng để dự đoán Z thông qua hồi quy tuyến tính:

summary(lm(Z~X+Y, data=dat))
# Call:
# lm(formula = Z ~ X + Y, data = dat)
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -4.4991 -0.6749 -0.0056  0.6723  4.7342 
# 
# Coefficients:
#              Estimate Std. Error t value Pr(>|t|)    
# (Intercept) -0.094793   0.031598   -3.00   0.0027 ** 
# X            0.999435   0.006352  157.35   <2e-16 ***
# Y            2.099410   0.031919   65.77   <2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.9992 on 99997 degrees of freedom
# Multiple R-squared:  0.2394,  Adjusted R-squared:  0.2394 
# F-statistic: 1.574e+04 on 2 and 99997 DF,  p-value: < 2.2e-16

Tuy nhiên, X giải thích nhiều hơn về phương sai trong Z so với Y (mô hình hồi quy tuyến tính dự đoán Z với X có giá trị R ^ 2 0,2065, trong khi mô hình hồi quy tuyến tính dự đoán Z với Y có R ^ 2 giá trị 0,0511):

summary(lm(Z~X, data=dat))
# Call:
# lm(formula = Z ~ X, data = dat)
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -5.2587 -0.6759  0.0038  0.6842  4.7342 
# 
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 1.962629   0.004564   430.0   <2e-16 ***
# X           1.041424   0.006455   161.3   <2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 1.021 on 99998 degrees of freedom
# Multiple R-squared:  0.2065,  Adjusted R-squared:  0.2065 
# F-statistic: 2.603e+04 on 1 and 99998 DF,  p-value: < 2.2e-16

đấu với:

summary(lm(Z~Y, data=dat))
# Call:
# lm(formula = Z ~ Y, data = dat)
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -5.0038 -0.7638 -0.0007  0.7610  5.2288 
# 
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept) -0.09479    0.03529  -2.686  0.00724 ** 
# Y            2.60418    0.03547  73.416  < 2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 1.116 on 99998 degrees of freedom
# Multiple R-squared:  0.05114, Adjusted R-squared:  0.05113 
# F-statistic:  5390 on 1 and 99998 DF,  p-value: < 2.2e-16

Trường hợp đa cộng đồng

Trường hợp thứ ba trong đó các giá trị hệ số lớn có thể bị đánh lừa sẽ là trong trường hợp đa cộng tuyến đáng kể giữa các biến. Ví dụ, xem xét một tập dữ liệu trong đó X và Y có mối tương quan cao nhưng W không tương quan cao với hai dữ liệu kia; chúng tôi đang cố gắng dự đoán Z:

set.seed(144)
dat <- data.frame(W=rnorm(100000),
                  X=rnorm(100000))
dat$Y <- dat$X + rnorm(100000, 0, 0.001)
dat$Z <- 2*dat$W+10*dat$X-11*dat$Y + rnorm(100000)
cor(dat)
#              W             X             Y          Z
# W 1.000000e+00  5.191809e-05  5.200434e-05  0.8161636
# X 5.191809e-05  1.000000e+00  9.999995e-01 -0.4079183
# Y 5.200434e-05  9.999995e-01  1.000000e+00 -0.4079246
# Z 8.161636e-01 -4.079183e-01 -4.079246e-01  1.0000000

Các biến này khá nhiều có cùng giá trị trung bình (0) và phương sai (~ 1) và hồi quy tuyến tính gán các giá trị hệ số cao hơn (về giá trị tuyệt đối) cho X (khoảng 15) và Y (khoảng -16) so với W (khoảng -16) so với W ( khoảng 2):

summary(lm(Z~W+X+Y, data=dat))
# Call:
# lm(formula = Z ~ W + X + Y, data = dat)
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -4.1886 -0.6760  0.0026  0.6679  4.2232 
# 
# Coefficients:
#               Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  1.831e-04  3.170e-03   0.058    0.954    
# W            2.001e+00  3.172e-03 630.811  < 2e-16 ***
# X            1.509e+01  3.177e+00   4.748 2.05e-06 ***
# Y           -1.609e+01  3.177e+00  -5.063 4.13e-07 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 1.002 on 99996 degrees of freedom
# Multiple R-squared:  0.8326,  Adjusted R-squared:  0.8326 
# F-statistic: 1.658e+05 on 3 and 99996 DF,  p-value: < 2.2e-16

Tuy nhiên, trong số ba biến trong mô hình W là quan trọng nhất: Nếu bạn loại bỏ W khỏi mô hình đầy đủ, R ^ 2 giảm từ 0,833 xuống 0,125, trong khi nếu bạn thả X hoặc Y thì R ^ 2 hầu như không thay đổi.


1
(+1) Tôi nghĩ rằng đây là một câu trả lời tốt, và điểm này phải được thực hiện. Mặt khác, tôi tin rằng có rất nhiều điều để nói ngay cả khi các biến đã được tiêu chuẩn hóa (và do đó, không có đơn vị), vì vậy có nhiều câu trả lời hơn.
Matthew Drury

Cảm ơn câu trả lời. Mặc dù bài viết của bạn dài, nhưng nó không kỹ lưỡng lắm vì bạn đang rút ra kết luận từ dữ liệu tổng hợp nhỏ. Ngoài ra, R ^ 2 là đặc trưng cho hồi quy tuyến tính. Tôi tin rằng số liệu lỗi thích hợp hơn là RMSE, hoặc độ chính xác / F1 cho các vấn đề phân loại.
stackoverflowuser2010

1
NHƯNG nếu bạn chia tỷ lệ dữ liệu trong ví dụ trước, bạn có biến số quan trọng duy nhất là W
marcodena

11

"Tầm quan trọng của tính năng" là một khái niệm rất trơn tru ngay cả khi tất cả các yếu tố dự đoán đã được điều chỉnh theo thang đo chung (bản thân nó là một vấn đề không hề nhỏ trong nhiều ứng dụng thực tế liên quan đến các biến phân loại hoặc phân phối sai lệch). Vì vậy, nếu bạn tránh được các vấn đề mở rộng được chỉ ra trong câu trả lời của @josliber hoặc vấn đề phương sai dự đoán thấp do @dsaxton nêu ra, bạn vẫn có thêm vấn đề.

Ví dụ, một thước đo hữu ích hơn về tầm quan trọng của tính năng có thể là tỷ lệ của hệ số của nó với sai số ước tính của hệ số của nó. Một hệ số cao với sai số ước tính lớn sẽ không nhất thiết hữu ích trong các dự đoán. Vì vậy, cường độ hệ số một mình, ngay cả trong tình huống có tỷ lệ trước, không phải là một hướng dẫn tốt về "tầm quan trọng".

Tuy nhiên, một yếu tố dự đoán có thể quan trọng ngay cả khi tỷ lệ cường độ sai số của hệ số của nó thấp (nghĩa là nó không "có ý nghĩa thống kê"). Các mô hình tuyến tính cung cấp khả năng đưa nhiều biến dự đoán vào cùng một lúc, do đó, bao gồm một yếu tố dự đoán "không đáng kể" trong mô hình có thể cải thiện hiệu suất tổng thể được cung cấp bởi bộ sưu tập các yếu tố dự đoán kết hợp.

Hơn nữa, các nỗ lực chọn các biến dự đoán "quan trọng" có xu hướng phụ thuộc nhiều vào mẫu dữ liệu cụ thể và thường không mở rộng tốt cho các mẫu tiếp theo, đặc biệt nếu các biến có tương quan. Bạn có thể tự mình nhìn thấy điều này bằng cách lặp lại lựa chọn tính năng trên nhiều mẫu bootstrap của cùng một bộ dữ liệu. Frank Harrell, trong câu trả lời này cho thấy cách sử dụng rmsgói của anh ấy trong R để xếp hạng tầm quan trọng của tính năng và lưu ý trong câu trả lời này cách sử dụng bootstrap để có được khoảng tin cậy cho các cấp bậc. Bootstrapping có thể phục vụ như một sự thận trọng cho những người đặt quá nhiều tầm quan trọng vào "tầm quan trọng của tính năng".

Câu hỏi này từ gần 3 năm trước, được chỉ ra bởi @amoeba, cũng đi sâu vào chi tiết về những khó khăn với tầm quan trọng của tính năng trong nhiều mô hình hồi quy.


Tỷ lệ sai số ước tính. Đây có phải là "hệ số chuẩn" không?
SmallChess

@StudentT một " hệ số chuẩn hóa " là một hệ số hồi quy khi tất cả các biến độc lập và phụ thuộc đều được thu nhỏ để có phương sai đơn vị. Điều đó bao gồm không có thông tin về lỗi ước tính trong hệ số. Tỷ lệ tôi mô tả là căn bậc hai của thống kê Wald được sử dụng bởi Harrell như một thước đo tầm quan trọng thay đổi trong liên kết đầu tiên của tôi.
EdM

6

Chỉ cần thêm vào câu trả lời trước đó, bản thân hệ số cũng không nắm bắt được mức độ biến đổi của một yếu tố dự đoán, điều này có ảnh hưởng lớn đến mức độ hữu ích của nó trong việc đưa ra dự đoán. Hãy xem xét mô hình đơn giản

E(YTôi)= =α+βXTôi

Ở đâu XTôi là một Bernoulli(p)biến ngẫu nhiên. Bằng cách lấyp0 chúng ta cũng có thể gửi mức độ hữu dụng của công cụ dự đoán này về 0, nhưng hệ số sẽ luôn là β.

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.