Logistic regression là gì

1. Giới thiệuTrong bài viết này, chúng ta sẽ thảo luận các khái niệm Logistic Regression và xem nó có thể giúp chúng ta xử lý các vấn đề thế nào.Logistic Regression là 1 thuật toán phân loại được dùng để gán các đối tượng cho 1 tập hợp giá trị rời rạc (như 0, 1, 2, …). Một ví dụ điển hình là phân loại Email, gồm có email công việc, email gia đình, email spam, … Giao dịch trực tuyến có là an toàn hay không an toàn, khối u lành tính hay ác tình. Thuật toán trên dùng hàm sigmoid logistic để đưa ra đánh giá theo xác suất. Ví dụ: Khối u này 80% là lành tính, giao dịch này 90% là gian lận, …2. Đặt vấn đềNgân hàng bạn đang làm có chương trình cho vay ưu đãi cho các đối tượng mua chung cư. Tuy nhiên gần đây có nhiều chung cư hấp dẫn nên lượng hồ sơ người nộp cho chương trình ưu đãi tăng lên nhiều. Bình thường bạn có thể duyệt 10-20 hồ sơ một ngày để quyết định hồ sơ có được cho vay hay không, tuy nhiên gần đây bạn nhận được 1000-2000 hồ sơ mỗi ngày. Bạn không thể xử lý hết hồ sơ và bạn cần có một giải pháp để có thể dự đoán hồ sơ mới là có nên cho vay hay không. Sau khi phân tích, bạn nhận thấy có 2 yếu tố quyết định đến việc hồ sơ có được chấp nhận hay không, đó là mức lương và kinh nghiệm làm việc. Dưới đây là 1 đồ thị ví dụ

*

Về mặt logic, chúng ta có thể nghĩ ngay đến việc vẽ 1 đường thẳng phân chia các điểm xanh và đó, rồi đưa ra quyết định cho 1 điểm mới dựa vào đường thẳng đó. Ví dụ thế này:

*

Ví dụ đường xanh là đường phân chia. Dự đoán cho hồ sơ của người có mức lương 6 triệu và 1 năm kinh nghiệm là không chấp nhậnTuy nhiên, do ngân hàng đang gặp khó khăn nên hạn chế cho vay, ngân hàng yêu cầu hồ sơ đạt trên 80% mới cho vay. Bây giờ không chỉ dừng lại ở việc quyết định cho vay hay không, mà phải tìm xác suất hồ sơ đó cho vay là bao nhiêu.3. Hàm sigmoidGiờ phải tìm xác suất cho vay của 1 hồ sơ, đương nhiên là giá trị trong đoạn rồi. Hàm mà luôn có giá trị trong đoạn , liên tục mà lại dễ sử dụng thì đó là hàm sigmoid.

Xem thêm:  Môi trường marketing là gì

Bạn đang xem: Logistic regression là gì

*

Nhận xét:

Hàm liên tục và luôn đưa ra giá trị trong khoảng (0, 1)Có đạo hàm tại mọi điểm nên có thể dùng gradient descent4. Thiết lập bài toánVề cơ bản thì chúng ta sẽ có các bước sau cho 1 bài toán Machine learning:

Thiết lập modelThiết lập hàm mất mát Loss FunctionTìm tham số bằng việc tối ưu loss functionDự đoán dữ liệu mới dựa vào loss function mới tìm được

4.1 Model

Với dòng thức i trong dữ liệu, gọi

*

là lương và

*

là kinh nghiệm làm việc của hồ sơ thứ i

*

là xác suất mà model dự đoán hồ sơ thứ i cho vay

*

là xác suất mà model dự đoán hồ sơ thứ i không cho vay.Ta có ngay

*

Hàm sigmoid là: Tương tự như hàm dự đoán trong Linear Regression là

*

, thì trong Logistic Regression ta có hàm dự đoán như sau:

*

4.2 Loss Function – Hàm mất mát

Bây giờ chúng ta cần 1 hàm để đánh giá độ tốt của model (tức làm dự đoán).Ta có nhận xét như sau:+ Nếu hồ sơ thứ i là cho vay, tức = 1 thì ta mong muốn càng gần 1 càng tốt hay model dự đoán xác suất cho hồ sơ thứ i vay càng cao càng tốt.+ Nếu hồ sơ thứ i là không cho vay, tức = 0 thì ta mong muốn càng gần 0 càng tốt hay model dự đoán xác suất cho hồ sơ thứ i vay càng thấp càng tốt.Với mỗi điểm (, ), ta gọi hàm loss function (Trong Machine learning, Deep leaning thì chúng ta hiểu log là ln nhé)Thử đánh giá hàm L nhé. Nếu

*

. Đây là đồ thị hàm loss trong trường hợp = 1

*

Nhận xét:+ Hàm L giảm từ 0 đến 1+ Khi model dự đoán = 1, tức giá trị dự đoán gần với giá trị thật thì L nhỏ, xấp xỉ 0.+ Khi model dự đoán = 0, tức giá trị dự đoán ngược lại với giá trị thật thì L rất lớn.Ngược lại, nếu

*

, ta có đồ thị sau

*

Nhận xét:+ Hàm L tăng từ 0 đến 1+ Khi model dự đoán gần 0, tức giá trị dự đoán gần với giá trị thật thì L nhỏ, xấp xỉ 0.+ Khi model dự đoán gần 1, tức giá trị dự đoán ngược lại với giá trị thật thì L rất lớn=> Hàm L nhỏ khi giá trị model gần với giá trị thật và rất lớn khi model dự đoán sai, hay nói cách khác L càng nhỏ thì model dự đoán càng gần với giá trị thật. => Bài toán toán quy về tìm giá trị nhỏ nhất của L.Ta có hàm mất mát trên tất cả bộ dữ liệu như sau:

*

4.3 Tính đạo hàm phức tạp bằng kỹ thuật Chain Rule

Chain rule là gì? Nếu z = f(y) và y = g(x) hay z = f(g(x)) thì

*

Thử áp dụng tính đạo hàm của hàm sigmoid .

*

=

*

4.4 Áp dụng gradient descent

Với mỗi điểm (, ), gọi hàm mất mát trong đó

*

là giá trị mà model dự đoán, còn yi là giá trị thật của dữ liệu.Áp dụng Chain rule ta có:

*
*
*

Từ đồ thị ta thấy:

*

Do đó:

*

Tương tự:

*

Đấy là trên 1 điểm dữ liệu, còn trên toàn bộ dữ liệu:

*
*
*

4.5 Biểu diễn bằng ma trận

*

Sau khi thực hiện gradient descent ta tìm được w0, w1, w2. Với mỗi hồ sơ mới

*

ta tính được phần trăm nên cho vay

*

rồi so sánh với ngưỡng cho vay của công ty t (thường là 0.5, hoặc cao hơn là 0.8), nếu

*

thì cho vay, không thì không cho vay.

Xem thêm:  Lazada là gì

Xem thêm: Ngày Black Friday Là Gì ? Nguồn Gốc Và Ý Nghĩa Của Ngày Black Friday

4.6 Xây dựng đường thẳng phân chia

Xét đường thẳng y = ax + b, thì f = y – (ax + b), ta có được 1 đường thẳng chia mặt phẳng là 2 phần, 1 phần f > 0, 1 phần f Giả sử mốc chính giữa là 0.5 thì >= 0.5 thì cho vay, ngược lại thì không cho vay.

*

Tương tự

*

=> đường thẳng

*

là đường phân cách giữa các điểm cho vay và từ chối.

Xem thêm: Uống Collagen Có Tác Dụng Gì Mà Khiến Các Chị Em Yêu Thích Đến Vậy?

*

Trong trường hợp tổng quát t bất kỳ,

*
*
*

Ta thấy khi t = 0.8 thì đường phân cách gần các điểm màu đỏ hơn so với t = 0.5, thậm chí 2 điểm màu đỏ trước đó được chấp nhận thì bây giờ lại bị loại bỏ.5. Ứng dụngDự đoán email có phải spam hay khôngDự đoán giao dịch ngân hàng là gian lận hay khôngDự đoán khối u lành hay ác tínhDự đoán khoản vay có trả được khôngDự đoán khoản đầu tư vào start-up có sinh lãi hay không.

Nguồn Towards Datascience, Deep learning cơ bản

Chuyên mục: Hỏi đáp

Bài viết cùng chủ đề:

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *