Tại sao không tiếp cận phân loại thông qua hồi quy?


51

Một số tài liệu tôi từng thấy về học máy nói rằng việc tiếp cận vấn đề phân loại thông qua hồi quy là một ý tưởng tồi. Nhưng tôi nghĩ rằng luôn luôn có thể thực hiện hồi quy liên tục để phù hợp với dữ liệu và cắt bớt dự đoán liên tục để đưa ra các phân loại rời rạc. Vậy tại sao nó là một ý tưởng tồi?


tôi nghĩ hồi quy luôn phức tạp hơn phân loại trong môi trường sản xuất

Câu trả lời:


57

".. vấn đề phân loại thông qua hồi quy .." bằng "hồi quy" Tôi sẽ giả sử bạn có nghĩa là hồi quy tuyến tính và tôi sẽ so sánh phương pháp này với phương pháp "phân loại" để phù hợp với mô hình hồi quy logistic.

Trước khi chúng ta làm điều này, điều quan trọng là phải làm rõ sự khác biệt giữa mô hình hồi quy và phân loại. Các mô hình hồi quy dự đoán một biến liên tục, chẳng hạn như lượng mưa hoặc cường độ ánh sáng mặt trời. Họ cũng có thể dự đoán xác suất, chẳng hạn như xác suất hình ảnh có chứa một con mèo. Mô hình hồi quy dự đoán xác suất có thể được sử dụng như một phần của phân loại bằng cách áp đặt quy tắc quyết định - ví dụ: nếu xác suất là 50% trở lên, hãy quyết định đó là con mèo.

Hồi quy logistic dự đoán xác suất, và do đó là một thuật toán hồi quy. Tuy nhiên, nó thường được mô tả như một phương pháp phân loại trong tài liệu học máy, bởi vì nó có thể (và thường được sử dụng) để tạo ra các phân loại. Ngoài ra còn có các thuật toán phân loại "đúng", chẳng hạn như SVM, chỉ dự đoán một kết quả và không cung cấp xác suất. Chúng tôi sẽ không thảo luận về loại thuật toán ở đây.

Hồi quy tuyến tính và logistic về các vấn đề phân loại

Như Andrew Ng giải thích , với hồi quy tuyến tính, bạn khớp một đa thức thông qua dữ liệu - giả sử, như trong ví dụ dưới đây, chúng ta khớp một đường thẳng qua {kích thước khối u, loại khối u} :

nhập mô tả hình ảnh ở đây

Ở trên, các khối u ác tính có và các khối u không ác tính có và đường màu xanh lá cây là giả thuyết của chúng tôi . Để đưa ra dự đoán chúng ta có thể nói rằng đối với bất kỳ khối u kích thước nhất định , nếu được lớn hơn chúng tôi dự đoán khối u ác tính, nếu không chúng tôi dự đoán lành tính.10h(x)xh(x)0.5

Có vẻ như chúng ta có thể dự đoán chính xác từng mẫu tập huấn luyện đơn lẻ, nhưng bây giờ chúng ta hãy thay đổi nhiệm vụ một chút.

Theo trực giác rõ ràng rằng tất cả các khối u lớn hơn ngưỡng nhất định là ác tính. Vì vậy, hãy thêm một mẫu khác với kích thước khối u lớn và chạy lại hồi quy tuyến tính:

nhập mô tả hình ảnh ở đây

Bây giờ phải của chúng tôi không còn hoạt động nữa. Để tiếp tục đưa ra dự đoán chính xác, chúng ta cần thay đổi nó thành hoặc một cái gì đó - nhưng đó không phải là cách thuật toán nên hoạt động.h(x)>0.5malignanth(x)>0.2

Chúng ta không thể thay đổi giả thuyết mỗi khi có mẫu mới. Thay vào đó, chúng ta nên tìm hiểu nó từ dữ liệu tập huấn luyện, và sau đó (sử dụng giả thuyết chúng ta đã học) đưa ra dự đoán chính xác cho dữ liệu mà chúng ta chưa từng thấy trước đây.

Hy vọng điều này giải thích tại sao hồi quy tuyến tính không phù hợp nhất cho các vấn đề phân loại! Ngoài ra, bạn có thể muốn xem VI. Hồi quy logistic. Video phân loại trên ml- class.org giải thích ý tưởng chi tiết hơn.


BIÊN TẬP

xác suất đã hỏi những gì một phân loại tốt sẽ làm gì. Trong ví dụ cụ thể này, bạn có thể sẽ sử dụng hồi quy logistic có thể học được một giả thuyết như thế này (tôi chỉ đang thực hiện điều này):

nhập mô tả hình ảnh ở đây

Lưu ý rằng cả hồi quy tuyến tínhhồi quy logistic cung cấp cho bạn một đường thẳng (hoặc đa thức bậc cao hơn) nhưng các dòng đó có ý nghĩa khác nhau:

  • h(x) cho nội suy hồi quy tuyến tính hoặc ngoại suy, đầu ra và dự đoán giá trị cho mà chúng ta chưa thấy. Nó đơn giản giống như cắm một mới và lấy số nguyên, và phù hợp hơn cho các nhiệm vụ như dự đoán, giả sử giá xe dựa trên {kích thước xe, tuổi xe}, v.v.xx
  • h(x) cho hồi quy logistic cho bạn biết khả năng rằng thuộc lớp "tích cực". Đây là lý do tại sao nó được gọi là thuật toán hồi quy - nó ước tính một đại lượng liên tục, xác suất. Tuy nhiên, nếu bạn đặt ngưỡng cho xác suất, chẳng hạn như , bạn có được một bộ phân loại và trong nhiều trường hợp, đây là những gì được thực hiện với đầu ra từ mô hình hồi quy logistic. Điều này tương đương với việc đặt một dòng trên cốt truyện: tất cả các điểm nằm phía trên dòng phân loại thuộc về một lớp trong khi các điểm bên dưới thuộc về lớp khác.x h ( x ) > 0,5xh(x)>0.5

Vì vậy, điểm mấu chốt là trong kịch bản phân loại, chúng tôi sử dụng một lý do hoàn toàn khác và một thuật toán hoàn toàn khác so với trong kịch bản hồi quy.


@andreister: Nhưng điều gì sẽ xảy ra nếu tất cả các ngoại lệ đã bị xóa hoặc cắt bớt, hồi quy tuyến tính vẫn là một ý tưởng tồi?
Tomek Tarczynski

Ví dụ của bạn là tốt, tuy nhiên nó không cho thấy "phân loại tốt" sẽ làm gì. bạn có thể thêm cái này không? lưu ý rằng việc thêm các điểm dữ liệu sẽ thay đổi dòng cho bất kỳ phương thức nào. Bạn đã không giải thích tại sao đây là một thay đổi xấu.
xác suất

1
@andreister: Ví dụ của bạn cho thấy một số dữ liệu xấu có thể làm hỏng hồi quy tuyến tính. Nhưng chúng ta có thể sử dụng hồi quy bậc bốn hoặc giả thuyết phức tạp hơn để biến "hồi quy" thành một phân loại tốt không?
Strin

1
@probabilityislogic - Điểm hay, tôi đã cập nhật câu trả lời.
andreister

2
@Strin: Các giả thuyết phức tạp hơn có nhiều khả năng phù hợp với dữ liệu hơn. (Đó là, để phù hợp với các yêu cầu của dữ liệu bạn có trong tay, dẫn đến việc không phù hợp với dữ liệu trong tương lai.) Tôi nhớ một lớp tôi đã học ở đó một chàng trai ở hàng ghế đầu chỉ chắc chắn rằng giáo sư đã giữ chúng tôi và không cung cấp cho chúng tôi các thuật toán tinh vi sẽ cho phép chúng tôi giết chết thị trường điện ... Anh ấy không bao giờ thực sự hiểu được quá mức.
Wayne

14

Tôi không thể nghĩ ra một ví dụ trong đó phân loại thực sự là mục tiêu cuối cùng. Hầu như luôn luôn mục tiêu thực sự là đưa ra dự đoán chính xác, ví dụ, về xác suất. Theo tinh thần đó, hồi quy (logistic) là bạn của bạn.


5
Dường như đối với tôi, phân loại hiệu quả cuối cùng là mục tiêu trong hầu hết mọi quá trình tự động trong đó không thực tế hoặc không thể có sự can thiệp hay phán xét của con người. Khi nhận, giả sử, tín hiệu kỹ thuật số được truyền nhiễu, người nhận không thể quyết định rằng một bit cụ thể phải là 0,97 thay vì 0 hoặc 1.
hồng y

6
Ngoại trừ thực tế là chi phí của dương tính giả hoặc chi phí của âm tính giả hiếm khi nằm dưới sự kiểm soát của nhà phân tích đã thực hiện phân loại, do đó, nhà phân tích ban đầu không thể tin cậy chọn điểm cắt "đúng" để phân loại. Ngoài ra, thật khôn ngoan khi có "vùng xám" rủi ro trung gian trong đó không có phân loại nào được đưa ra và khuyến nghị là "lấy thêm dữ liệu".
Frank Harrell

1
Tôi nghĩ rằng tôi tin hoàn toàn ngược lại với tuyên bố trong câu trả lời này, và chưa bao giờ gặp phải viễn cảnh này trong toàn bộ nền giáo dục đại học của tôi về học máy. Tôi rất ngạc nhiên khi có ai đó nói điều này. Trong thực tế, tôi hầu như luôn phải đối mặt với những vấn đề mà mọi người nghĩ rằng họ muốn dự đoán số lượng liên tục, nhưng thực sự họ muốn dự đoán thành viên trong các nhóm phân loại khác nhau về số lượng đó. Tôi đấu tranh để tìm các trường hợp trong đó thực sự dự đoán một số lượng liên tục là hữu ích về mặt suy luận thực chất tiềm ẩn vấn đề.
ely

9
Tôi nghĩ rằng bạn đã có rất nhiều giáo điều học máy cho các cấp. Bạn đang thực hiện một số lượng lớn các giả định không chính đáng. Một trong số đó là mọi người thực sự cần một sự lựa chọn bắt buộc vào một cái xô phân loại. Họ có thể tuyên bố muốn điều này nhưng họ thực sự không cần điều này trong hầu hết các tình huống. Lựa chọn không phải bị ép buộc. Một lựa chọn tuyệt vời là "không quyết định, lấy thêm dữ liệu". Dự đoán về số lượng liên tục cơ bản thường là những gì cần thiết. Nó sẽ có giá trị trong khi bạn nghiên cứu lý thuyết quyết định tối ưu (Bayes). Nếu bạn có thể cung cấp một ví dụ cụ thể, tôi sẽ bình luận thêm.
Frank Harrell

11
+1 trên bình luận của @Frank Harrell. Ví dụ, dự đoán nhiệt độ, mưa, mực nước sông vô cùng hữu ích hơn dự đoán rằng trời sẽ nóng hoặc ẩm ướt hoặc sẽ ngập lụt. Ngay cả khi vấn đề là cừu hay dê? một ước tính của pr (cừu) có nhiều thông tin hơn so với "cừu" nhị phân hoặc "dê".
Nick Cox

1

Tại sao không nhìn vào một số bằng chứng? Mặc dù nhiều người cho rằng hồi quy tuyến tính không phù hợp để phân loại, nhưng nó vẫn có thể hoạt động. Để có được một số trực giác, tôi đã đưa hồi quy tuyến tính (được sử dụng làm phân loại) vào so sánh phân loại của scikit-learn . Đây là những gì xảy ra:

nhập mô tả hình ảnh ở đây

Ranh giới quyết định hẹp hơn so với các phân loại khác, nhưng độ chính xác là như nhau. Giống như trình phân loại vector hỗ trợ tuyến tính, mô hình hồi quy cung cấp cho bạn một siêu phẳng ngăn cách các lớp trong không gian đặc trưng.

Như chúng ta thấy, sử dụng hồi quy tuyến tính làm phân loại có thể hoạt động, nhưng như mọi khi, tôi sẽ xác nhận chéo các dự đoán.

Đối với bản ghi, đây là cách mã phân loại của tôi trông như sau:

class LinearRegressionClassifier():

def __init__(self):
    self.reg = LinearRegression()

def fit(self, X, y):
    self.reg.fit(X, y)

def predict(self, X):
    return np.clip(self.reg.predict(X),0,1)

def decision_function(self, X):
    return np.clip(self.reg.predict(X),0,1)

def score(self, X, y):
    return accuracy_score(y,np.round(self.predict(X)))

Nhìn vào quy tắc
is

0

1,10,100,...1,2,3,...

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.