So sánh hồi quy tuyến tính và logistic

Thảo luận về câu hỏi phỏng vấn khoa học dữ liệu cấp độ đầu vào

Các cuộc phỏng vấn về Khoa học dữ liệu có độ sâu khác nhau. Một số cuộc phỏng vấn đi sâu và kiểm tra kiến ​​thức của ứng viên về các mô hình nâng cao hoặc khả năng tinh chỉnh phức tạp. Tuy nhiên, nhiều cuộc phỏng vấn được thực hiện ở cấp độ đầu vào nhằm kiểm tra kiến ​​thức cơ bản của ứng viên. Trong bài viết này, chúng ta sẽ thấy một câu hỏi có thể được thảo luận trong một cuộc phỏng vấn như vậy. Mặc dù câu hỏi rất đơn giản nhưng cuộc thảo luận vẫn đưa ra nhiều khía cạnh thú vị về các nguyên tắc cơ bản của học máy.

Câu hỏi: Sự khác biệt giữa hồi quy tuyến tính và hồi quy logistic là gì?

Thực tế có nhiều điểm tương đồng giữa hai người, bắt đầu từ việc tên của họ nghe rất giống nhau. Cả hai đều sử dụng các đường làm chức năng mô hình. Đồ thị của họ trông cũng rất giống nhau.

Hình ảnh của tác giả

Nhưng bất chấp những điểm tương đồng này, chúng rất khác nhau về phương pháp cũng như ứng dụng. Chúng tôi sẽ nêu bật những khác biệt này ngay bây giờ. Để so sánh, chúng tôi sẽ sử dụng các điểm thường được xem xét sau đây khi thảo luận về bất kỳ mô hình học máy nào:

  • Giả thuyết hoặc gia đình kiểu mẫu
  • Đầu vào và đầu ra
  • Thiếu chức năng
  • Kỹ thuật tối ưu hóa
  • Các Ứng Dụng

Bây giờ chúng ta sẽ so sánh Hồi quy tuyến tính (LinReg) và Hồi quy logistic (LogReg) trên từng điểm này. Hãy bắt đầu với ứng dụng để đưa cuộc thảo luận đi đúng hướng.

Hình ảnh của Rajashree Rajadhyax

Hồi quy tuyến tính được sử dụng để ước tính một đại lượng dựa trên các đại lượng khác. Ví dụ, hãy tưởng tượng rằng khi còn là sinh viên, bạn điều hành một quầy bán nước chanh trong kỳ nghỉ hè. Bạn muốn tính xem ngày mai sẽ bán được bao nhiêu ly nước chanh để có thể mua đủ chanh và đường. Từ kinh nghiệm bán nước chanh lâu năm, bạn đã nhận ra rằng doanh số bán hàng có mối quan hệ chặt chẽ với nhiệt độ tối đa trong ngày. Vì vậy, bạn muốn sử dụng nhiệt độ tối đa được dự đoán để dự đoán doanh số bán nước chanh. Đây là một ứng dụng LinReg cổ điển, thường được gọi là dự đoán trong tài liệu ML.

LinReg cũng được sử dụng để tìm hiểu xem một đầu vào cụ thể ảnh hưởng như thế nào đến đầu ra. Trong ví dụ về quầy bán nước chanh, giả sử bạn có hai đầu vào - nhiệt độ tối đa và ngày đó có phải là ngày nghỉ hay không. Bạn muốn tìm hiểu điều gì ảnh hưởng đến việc bán hàng nhiều hơn - nhiệt độ tối đa hoặc ngày lễ. LinReg sẽ hữu ích trong việc xác định điều này.

LogReg chủ yếu được sử dụng để phân loại. Phân loại là hành động phân loại đầu vào vào một trong nhiều giỏ có thể. Sự phân loại đóng vai trò quan trọng đối với trí thông minh của con người đến mức sẽ không sai khi nói “hầu hết trí thông minh là sự phân loại”. Một ví dụ điển hình về phân loại là chẩn đoán lâm sàng. Hãy xem xét những bác sĩ gia đình lớn tuổi, đáng tin cậy. Một người phụ nữ bước vào và phàn nàn về việc ho không ngừng. Bác sĩ tiến hành nhiều cuộc kiểm tra khác nhau để quyết định giữa nhiều tình trạng có thể xảy ra. Một số tình trạng có thể tương đối vô hại, chẳng hạn như một cơn nhiễm trùng cổ họng. Nhưng một số lại nghiêm trọng, chẳng hạn như bệnh lao hoặc thậm chí là ung thư phổi. Dựa trên nhiều yếu tố khác nhau, bác sĩ sẽ quyết định xem cô ấy đang mắc phải tình trạng gì và bắt đầu phương pháp điều trị thích hợp. Đây là sự phân loại tại nơi làm việc.

Chúng ta phải nhớ rằng cả việc ước lượng và phân loại đều là những nhiệm vụ phỏng đoán chứ không phải là tính toán. Không có câu trả lời chính xác hoặc chính xác cho những loại nhiệm vụ như vậy. Các nhiệm vụ đoán là những gì hệ thống máy học làm tốt.

Hệ thống ML giải quyết các vấn đề đoán bằng cách phát hiện các mẫu. Họ phát hiện một mẫu từ dữ liệu nhất định và sau đó sử dụng nó để thực hiện nhiệm vụ như ước tính hoặc phân loại. Một mô hình quan trọng được tìm thấy trong các hiện tượng tự nhiên là mô hình quan hệ. Trong mẫu này, một đại lượng có liên quan đến đại lượng khác. Mối quan hệ này có thể được xấp xỉ bằng một hàm toán học trong hầu hết các trường hợp.

Việc xác định một hàm toán học từ dữ liệu đã cho được gọi là 'học' hoặc 'đào tạo'. Có hai bước học tập:

  1. 'Loại' hàm (ví dụ tuyến tính, hàm mũ, đa thức) được chọn bởi con người
  2. Thuật toán học sẽ tìm hiểu các tham số (như độ dốc và giao điểm của một đường) từ dữ liệu đã cho.

Vì vậy, khi chúng tôi nói rằng hệ thống ML học từ dữ liệu thì điều đó chỉ đúng một phần. Bước đầu tiên trong việc lựa chọn loại chức năng là thực hiện thủ công và là một phần của thiết kế mô hình. Loại hàm này còn được gọi là 'giả thuyết' hoặc 'họ mẫu'.

Trong cả LinReg và LogReg, họ mô hình đều là hàm tuyến tính. Như bạn đã biết, một đường có hai tham số - độ dốc và điểm giao nhau. Nhưng điều này chỉ đúng nếu hàm chỉ nhận một đầu vào. Đối với hầu hết các vấn đề trong thế giới thực, có nhiều hơn một đầu vào. Hàm mô hình cho những trường hợp này được gọi là hàm tuyến tính, không phải là đường thẳng. Hàm tuyến tính có nhiều tham số cần tìm hiểu hơn. Nếu có n đầu vào cho mô hình thì hàm tuyến tính có n+1 tham số. Như đã đề cập, các tham số này được học từ dữ liệu đã cho. Với mục đích của bài viết này, chúng ta sẽ tiếp tục giả sử rằng hàm này là một đường đơn giản có hai tham số. Chức năng mô hình của LogReg phức tạp hơn một chút. Dòng có đó, nhưng nó được kết hợp với một chức năng khác. Chúng ta sẽ thấy điều này trong giây lát.

Như chúng tôi đã nói ở trên, cả LinReg và LogReg đều học các tham số của hàm tuyến tính từ dữ liệu đã cho, được gọi là dữ liệu huấn luyện. Dữ liệu đào tạo chứa gì?

Dữ liệu huấn luyện được chuẩn bị bằng cách ghi lại một số hiện tượng trong thế giới thực (RWP). Ví dụ: mối quan hệ giữa nhiệt độ tối đa trong ngày và doanh số bán nước chanh là RWP. Chúng tôi không có tầm nhìn về mối quan hệ cơ bản. Tất cả những gì chúng ta có thể thấy là các giá trị của nhiệt độ và doanh số bán hàng hàng ngày. Trong khi ghi lại các quan sát, chúng tôi chỉ định một số đại lượng làm đầu vào của RWP và các đại lượng khác làm đầu ra. Trong ví dụ về nước chanh, chúng tôi gọi nhiệt độ tối đa là đầu vào và doanh số bán nước chanh là đầu ra.

Hình ảnh của tác giả

Dữ liệu đào tạo của chúng tôi chứa các cặp đầu vào và đầu ra. Trong ví dụ này, dữ liệu sẽ có các hàng nhiệt độ tối đa hàng ngày và số ly nước chanh được bán. Đó sẽ là đầu vào và đầu ra của LinReg.

Nhiệm vụ mà LogReg thực hiện là phân loại nên đầu ra của nó phải là một lớp. Hãy tưởng tượng rằng có hai lớp được gọi là 0 và 1. Đầu ra của mô hình khi đó cũng phải là 0 hoặc 1.

Tuy nhiên, phương pháp xác định đầu ra này không phù hợp lắm. Xem sơ đồ sau:

Hình ảnh của tác giả

Các điểm màu vàng thuộc về lớp 1 và các điểm màu xanh nhạt thuộc về 0. Đường thẳng là hàm mô hình của chúng tôi phân tách hai lớp. Theo dấu phân cách này, cả hai điểm màu vàng (a và b) đều thuộc Loại 1. Tuy nhiên, tư cách thành viên của điểm b chắc chắn hơn nhiều so với điểm a. Nếu mô hình chỉ xuất ra 0 và 1 thì thông tin này sẽ bị mất.

Để khắc phục tình trạng này, mô hình LogReg tạo ra xác suất của mỗi điểm thuộc một lớp nhất định. Trong ví dụ trên, xác suất điểm 'a' thuộc Loại 1 là thấp, trong khi đó điểm 'b' lại cao. Vì xác suất là một số từ 0 đến 1 nên đầu ra của LogReg cũng vậy.

Bây giờ hãy xem sơ đồ sau:

Hình ảnh của tác giả

Sơ đồ này giống như sơ đồ trước, có thêm điểm c. Điểm này cũng thuộc loại 1 và trên thực tế chắc chắn hơn điểm b. Tuy nhiên, sẽ là sai lầm nếu tăng xác suất của một điểm tỷ lệ với khoảng cách của nó với đường thẳng. Theo trực giác, khi bạn đi một khoảng cách nhất định khỏi hàng, chúng ta ít nhiều chắc chắn về tư cách thành viên của những điểm đó. Chúng ta không cần phải tăng xác suất thêm nữa. Điều này phù hợp với bản chất của xác suất, giá trị tối đa của nó có thể là 1.

Để mô hình LogReg có thể tạo ra đầu ra như vậy, chức năng dòng phải được kết nối với chức năng khác. Hàm thứ hai này được gọi là sigmoid và nó có phương trình:

Do đó, mô hình LogReg trông như sau:

Hình ảnh của tác giả

Hàm sigmoid còn được gọi là 'hậu cần' và là lý do cho cái tên 'Hồi quy logistic'.

Nếu có nhiều hơn hai lớp, đầu ra của LogReg là một vectơ. Các phần tử của vectơ đầu ra là xác suất của đầu vào thuộc lớp cụ thể đó. Ví dụ: nếu phần tử đầu tiên của mô hình chẩn đoán lâm sàng có giá trị 0.8, điều đó có nghĩa là mô hình cho rằng có 80% xác suất bệnh nhân bị cảm lạnh.

Chúng tôi thấy rằng cả LinReg và LogReg đều học các tham số của hàm tuyến tính từ dữ liệu huấn luyện. Làm thế nào để họ tìm hiểu các thông số này?

Họ sử dụng một phương pháp gọi là 'tối ưu hóa'. Tối ưu hóa hoạt động bằng cách tạo ra nhiều giải pháp khả thi cho vấn đề nhất định. Trong trường hợp của chúng tôi, các giải pháp khả thi là tập hợp các giá trị (độ dốc, giao điểm). Chúng tôi đánh giá từng giải pháp này bằng cách sử dụng thước đo hiệu suất. Giải pháp được chứng minh là tốt nhất theo biện pháp này cuối cùng đã được chọn.

Trong quá trình học các mô hình ML, thước đo hiệu suất đôi khi được gọi là 'hàm mất mát' và hàm giúp chúng ta tính toán nó được gọi là 'hàm mất mát'. Chúng ta có thể biểu diễn điều này như sau:

Mất = Loss_Function (Thông số_được_đánh giá)

Các thuật ngữ 'mất mát' và 'hàm mất mát' có ý nghĩa tiêu cực, có nghĩa là giá trị mất mát thấp hơn cho thấy giải pháp tốt hơn. Nói cách khác, học tập là một sự tối ưu hóa nhằm tìm ra các tham số tạo ra tổn thất tối thiểu.

Bây giờ chúng ta sẽ thấy các hàm mất mát phổ biến được sử dụng để tối ưu hóa LinReg và LogReg. Lưu ý rằng nhiều hàm mất mát khác nhau được sử dụng trong thực tế thực tế, vì vậy chúng ta có thể thảo luận về những hàm phổ biến nhất.

Để tối ưu hóa các tham số LinReg, hàm mất phổ biến nhất được gọi là Lỗi tổng bình phương (SSE). Hàm này có các đầu vào sau:

1) Tất cả các điểm dữ liệu đào tạo. Đối với mỗi điểm, chúng tôi chỉ định:

a) các đầu vào, chẳng hạn như nhiệt độ dữ liệu tối đa,

b) kết quả đầu ra, chẳng hạn như số ly nước chanh được bán

2) Phương trình tuyến tính có tham số

Sau đó, hàm sẽ tính toán tổn thất bằng công thức sau:

Mất SSE = Sum_for_all_points(
Hình vuông_of(
đầu ra_of_Linear_equation_for_the_inputs - điểm thực tế_output_from_the_data
))

Biện pháp tối ưu hóa cho LogReg được xác định theo một cách rất khác. Trong hàm SSE, chúng ta đặt câu hỏi sau:

Nếu chúng ta sử dụng dòng này để khớp dữ liệu huấn luyện thì nó sẽ mắc phải bao nhiêu lỗi?

Khi thiết kế biện pháp tối ưu hóa LogReg, chúng tôi yêu cầu:

Nếu dòng này là dấu phân cách thì khả năng chúng ta nhận được phân bổ các lớp có trong dữ liệu huấn luyện là bao nhiêu?

Do đó, đầu ra của biện pháp này là một khả năng. Dạng toán học của hàm đo sử dụng logarit, do đó đặt tên cho hàm này là Khả năng ghi nhật ký (LL). Trong khi thảo luận về kết quả đầu ra, chúng ta thấy rằng hàm LogReg bao gồm các số mũ (các số hạng có e 'nâng lên' z) Logarit giúp xử lý các số mũ này một cách hiệu quả.

Bạn phải hiểu rõ bằng trực giác rằng việc tối ưu hóa sẽ tối đa hóa LL. Hãy suy nghĩ như thế này: chúng tôi muốn tìm dòng làm cho dữ liệu đào tạo có khả năng xảy ra nhất. Tuy nhiên, trên thực tế, chúng tôi thích một thước đo có thể giảm thiểu được nên chúng tôi chỉ lấy giá trị âm của LL. Do đó, chúng tôi nhận được hàm mất khả năng ghi nhật ký âm (NLL), mặc dù theo tôi gọi nó là hàm mất không chính xác lắm.

Như vậy chúng ta có 2 hàm mất mát: SSE cho LinReg và NLL cho LogReg. Lưu ý rằng các hàm mất mát này có nhiều tên và bạn nên tự làm quen với các thuật ngữ này.

Mặc dù hồi quy tuyến tính và hồi quy logistic trông rất giống nhau nhưng trên thực tế chúng khá khác nhau. LinReg được sử dụng để ước tính/dự đoán và LogReg để phân loại. Đúng là cả hai đều sử dụng hàm tuyến tính làm cơ sở, nhưng LogReg còn bổ sung thêm chức năng logistic. Chúng khác nhau ở cách sử dụng dữ liệu huấn luyện và tạo ra kết quả đầu ra của mô hình. Cả hai cũng sử dụng một hàm mất mát rất khác nhau.

Thông tin chi tiết có thể được thăm dò. Tại sao lại là SSE? Khả năng được tính như thế nào? Chúng tôi không đi sâu vào phương pháp tối ưu hóa ở đây để tránh phải tính toán nhiều hơn. Tuy nhiên, bạn phải nhớ rằng việc tối ưu hóa LogReg thường yêu cầu phương pháp giảm độ dốc lặp trong khi LinReg thường có thể thực hiện với giải pháp biểu mẫu đóng nhanh. Chúng ta có thể thảo luận về những điểm này và nhiều điểm khác trong một bài viết khác.

So sánh hồi quy tuyến tính và hồi quy logistic được xuất bản lại từ nguồn https://towardsdatascience.com/comparing-ographic-and-logic-regression-11a3e1812212?source=rss—-7f60cf5620c9—4 qua https://towardsdatascience.com/feed

<!–

->

Dấu thời gian:

Thêm từ Tư vấn chuỗi khối