NEW Bài 3: Linear Regression Là Gì, Bài 3: Linear Regression

AZ PET chào đọc giả. Ngày hôm nay, tôi sẽ đưa ra đánh giá khách quan về các tips, tricks hữu ích phải biết qua bài chia sẽ Bài 3: Linear Regression Là Gì, Bài 3: Linear Regression

Phần nhiều nguồn đều đc cập nhật thông tin từ những nguồn website lớn khác nên có thể vài phần khó hiểu.

Mong mọi cá nhân thông cảm, xin nhận góp ý & gạch đá bên dưới comment

Khuyến nghị:

Quý độc giả vui lòng đọc bài viết này ở nơi riêng tư cá nhân để đạt hiệu quả tốt nhất
Tránh xa toàn bộ những thiết bị gây xao nhoãng trong việc tập kết
Bookmark lại nội dung bài viết vì mình sẽ update liên tiếp

Trong bài viết này, tôi sẽ giới thiệu một trong những thuật toán cơ bản nhất (và đơn giản nhất) của Học máy. Đây là một thuật toán Học tập có giám sát được đặt tên Hồi quy tuyến tính (Hồi quy tuyến tính). Vấn đề này đôi khi được gọi là Phù hợp tuyến tính (trong thống kê) hoặc Linear Least Square.

Bạn đang xem: Hồi quy tuyến tính là gì?

Trong trang này:

2. Phân tích toán học 3. Các ví dụ Python 4. Thảo luận

1. Giới thiệu

Quay lại ví dụ đơn giản được đưa ra trong bài trước: một ngôi nhà lớn (x_1 ~ text m ^ 2 ), với (x_2 ) phòng ngủ và khoảng cách từ trung tâm thành phố (x_3 ~ text km ) giá bao nhiêu. Giả sử chúng ta thống kê từ 1000 ngôi nhà trong thành phố đó, liệu chúng ta có thể dự đoán khi nào sẽ có một ngôi nhà mới với các thông số về diện tích, số phòng ngủ và khoảng cách đến trung tâm? Bạn có đoán được giá của căn nhà đó không? Nếu vậy, hàm tiên đoán (y = f ( mathbf x) ) sẽ trông như thế nào. Đây ( mathbf x = ) là một vectơ hàng chứa thông tin đầu vào, (y ) là một số vô hướng đại diện cho đầu ra (tức là giá của ngôi nhà trong ví dụ này).

Ghi chú về ký hiệu toán học: Trong các bài viết của tôi, các đại lượng vô hướng được biểu thị bằng các chữ cái viết hoa, không in đậm, ví dụ (x_1, N, y, k ). Các vectơ được biểu diễn bằng các chữ cái in thường đậm, ví dụ ( mathbf y, mathbf x _1 ). Ma trận được biểu diễn bằng chữ in hoa đậm, ví dụ ( mathbf X, Y, W ).

Hiểu một cách đơn giản nhất, chúng ta có thể thấy rằng: i) diện tích nhà càng lớn thì giá nhà càng cao; ii) số lượng phòng ngủ càng lớn thì giá nhà càng cao; iii) càng xa trung tâm, giá nhà càng giảm. Hàm đơn giản nhất có thể mô tả mối quan hệ giữa giá nhà và ba yếu tố đầu vào là:

trong đó (w_1, w_2, w_3, w_0 ) là hằng số, (w_0 ) còn được gọi là thiên vị. Mối quan hệ (y khoảng f ( mathbf x) ) ở trên là một mối quan hệ tuyến tính. Vấn đề chúng tôi đang giải quyết là vấn đề kiểu hồi quy. Do đó, bài toán tìm các hệ số tối ưu ( w_1, w_2, w_3, w_0 ) được gọi là bài toán Hồi quy tuyến tính.

Lưu ý 1: (y ) là giá trị thực của kết cục (dựa trên số liệu thống kê chúng tôi có trong bộ dữ liệu đào tạo), trong khi ( hat y ) là giá trị được dự đoán bởi mô hình Hồi quy tuyến tính. Nói chung, (y ) và ( hat y ) là hai giá trị khác nhau do lỗi mô hình, tuy nhiên, chúng tôi hy vọng sự khác biệt này là rất nhỏ.

Lưu ý 2: Tuyến tính đẹp tuyến tính Chỉ cần đặt, thẳng, phẳng. Trong không gian hai chiều, một hàm được gọi là tuyến tính nếu đồ thị của nó có dạng đường thẳng. Trong không gian ba chiều, một hàm được gọi là tuyến tính nếu đồ thị của nó có dạng chiếc máy bay. Trong không gian có nhiều hơn 3 chiều, khái niệm chiếc máy bay không còn phù hợp nữa, thay vào đó, một khái niệm khác đã ra đời được gọi là siêu máy bay (siêu phẳng). Các hàm tuyến tính là những hàm đơn giản nhất, vì chúng thuận tiện cho việc hình dung và tính toán. Chúng ta sẽ xem trong các bài viết sau, tuyến tính rất quan trọng và hữu ích trong các bài toán Máy học. Kinh nghiệm cá nhân của tôi cho thấy rằng, trước khi hiểu các thuật toán Phi tuyến tính (phi tuyến tính, không phẳng), chúng ta cần nắm vững các kỹ thuật cho các mô hình tuyến tính.

2. Phân tích toán học

2.1. Biểu mẫu hồi quy tuyến tính

Trong phương trình ((1) ) ở trên, nếu chúng ta đặt ( mathbf w = ^ T = ) là vectơ hệ số (cột) được tối ưu hóa và ( mathbf bar x = ) (đọc là thanh x bằng tiếng Anh) là vectơ dữ liệu đầu vào (hàng) mở rộng. Số (1 ) ở đầu được thêm vào để việc tính toán trở nên đơn giản hơn, thuận tiện cho việc tính toán. Sau đó, phương trình (1) có thể được viết lại thành:

2.2. Dự đoán lỗi

Chúng tôi kỳ vọng rằng sự khác biệt (e ) giữa giá trị thực (y ) và giá trị dự đoán ( hat y ) (đọc là mũ y bằng tiếng Anh) là nhỏ nhất. Nói cách khác, chúng tôi muốn giá trị sau càng nhỏ càng tốt:

trong đó hệ số ( frac 1 2 ) (lần nữa) để thuận tiện cho việc tính toán (khi tính đạo hàm, số ( frac 1 2 ) sẽ bị loại bỏ). Chúng ta cần (e ^ 2 ) vì (e = y – hat y ) có thể là một số âm, sẽ không đúng nếu nói (e ) nhỏ nhất vì khi (e = – infty ) rất nhỏ nhưng độ lệch rất lớn. Bạn đọc có thể tự đặt câu hỏi: Tại sao không sử dụng giá trị tuyệt đối (| e | ) mà lại sử dụng bình phương (e ^ 2 ) ở đây? Câu trả lời sẽ được tìm thấy trong phần sau.

2.3. Thiếu chức năng

Điều tương tự cũng xảy ra đối với tất cả các cặp (đầu vào, kết quả) (( mathbf x _i, y_i), i = 1, 2, dot, N ), trong đó (N ) là số quan sát. Điều chúng tôi muốn, tổng sai số là nhỏ nhất, tương đương với việc tìm ( mathbf w ) để hàm sau đạt giá trị nhỏ nhất:

Hàm ( mathcal L ( mathbf w) ) được gọi là thiếu chức năng (mất hàm) của bài toán Hồi quy tuyến tính. Chúng tôi luôn muốn tổn thất (sai số) càng nhỏ càng tốt, có nghĩa là tìm vectơ hệ số ( mathbf w ) sao cho giá trị của hàm tổn thất này càng nhỏ càng tốt. Giá trị của ( mathbf w ) khiến hàm mất mát đạt đến giá trị nhỏ nhất được gọi là điểm tối ưu (điểm tối ưu), ký hiệu:

Trước khi tìm giải pháp, chúng ta đơn giản hóa phép toán trong phương trình hàm mất mát ((2) ). Đặt ( mathbf y = ) là một vectơ cột chứa tất cả đầu ra sau đó dữ liệu đào tạo; ( mathbf bar X = ) là một ma trận dữ liệu đầu vào (mở rộng) có hàng là một điểm dữ liệu. Sau đó, hàm mất mát ( mathcal L ( mathbf w) ) được viết ở dạng ma trận đơn giản hơn:

\

trong đó ( | mathbf z | _2 ) là chuẩn Euclid (chuẩn Euclid, hay khoảng cách Euclid), nói cách khác ( | mathbf z | _2 ^ 2 ) là tổng bình phương mỗi phần tử của vectơ ( mathbf z ). Cho đến nay, chúng ta có một dạng đơn giản của hàm mất mát được viết dưới dạng phương trình ((3) ).

Xem thêm: Khái niệm Kế toán Mới nhất là gì? Tìm hiểu 3 loại kế toán cơ bản

2.4. Giải pháp cho vấn đề hồi quy tuyến tính

Cách phổ biến nhất để tìm lời giải cho một bài toán tối ưu hóa (chúng ta đã biết từ thời trung học) là giải phương trình gradient bằng không! Điều đó, tất nhiên, khi tính đạo hàm và giải phương trình đạo hàm cấp 0 không quá phức tạp. May mắn thay, với mô hình tuyến tính, hai điều này là có thể.

Đạo hàm đối với ( mathbf w ) của hàm mất mát là:

Bạn có thể tham khảo bảng đạo hàm theo véc tơ hoặc ma trận của một hàm số trong phần D.2 của tài liệu này. Tại thời điểm này, tôi muốn quay lại câu hỏi trong phần Dự đoán Lỗi ở trên về việc tại sao không sử dụng giá trị tuyệt đối mà lại sử dụng bình phương. Câu trả lời là hàm bình phương có đạo hàm ở khắp mọi nơi, trong khi hàm giá trị tuyệt đối thì không (đạo hàm không xác định tại 0).

Phương trình đạo hàm bằng 0 tương đương với: (Symbol ( mathbf bar X ^ T mathbf y tam giácq mathbf b ) nghĩa là đặt ( mathbf bar X ^ T mathbf y ) bình đẳng ( mathbf b )).

Nếu ma trận vuông ( mathbf A angleq mathbf bar X ^ T mathbf bar X ) khả nghịch (không số ít hoặc khả nghịch) thì phương trình (( 4) ) có một nghiệm duy nhất: ( mathbf w = mathbf A ^ – 1 mathbf b ).

Với khái niệm giả nghịch đảo, điểm tối ưu của bài toán Hồi quy tuyến tính có dạng:

3. Ví dụ Python

3.1. Vấn đề

Trong phần này, tôi sẽ chọn một ví dụ đơn giản về giải quyết vấn đề hồi quy tuyến tính trong Python. Tôi cũng sẽ so sánh giải pháp của vấn đề khi giải bằng phương trình ((5) ) và giải pháp được tìm thấy bằng cách sử dụng thư viện scikit-learning của Python. (Đây là một thư viện Học máy được sử dụng rộng rãi bằng Python). Trong ví dụ này, dữ liệu đầu vào chỉ có 1 giá trị (1 thứ nguyên) để thuận tiện cho việc minh họa trong mặt phẳng.

Chúng ta có bảng số liệu về chiều cao và cân nặng của 15 người như sau:

Chiều cao (cm) Cân nặng (kg) Chiều cao (cm) Cân nặng (kg)
147 49 168 60
150 50 170 72
153 51 173 63
155 52 175 64
158 54 178 66
160 56 180 67
163 58 183 68
165 59

Vấn đề là: có thể dự đoán cân nặng của một người dựa trên chiều cao của họ không? (Trên thực tế, tất nhiên là không, vì cân nặng còn phụ thuộc vào nhiều yếu tố khác, chẳng hạn như khối lượng). Vì blog này nói về các thuật toán Machine Learning đơn giản, tôi sẽ giả định rằng chúng ta có thể dự đoán được.

Chúng ta có thể thấy rằng cân nặng sẽ tỷ lệ thuận với chiều cao (càng cao càng nặng), do đó, mô hình Hồi quy tuyến tính có thể được sử dụng cho dự đoán này. Để kiểm tra độ chính xác của mô hình tìm được, chúng tôi sẽ giữ lại cột 155 và 160 cm để thử nghiệm, các cột còn lại dùng để huấn luyện mô hình.

Xem thêm: What Does Dtf – Định nghĩa từ điển Anh-Việt

3.2. Hiển thị dữ liệu trên biểu đồ

Đầu tiên, chúng ta cần hai thư viện, numpy cho đại số tuyến tính và matplotlib để vẽ biểu đồ.

Nguồn tổng hợp

from Duy Pets https://ift.tt/3lm3HRx

Published by Pets Duy

Poodle là giống cún rất được ưa chuộng chọn lựa làm thú cưng trong gia đình nhờ ngoại hình vô cùng đáng yêu của nó. K chỉ vậy, Poodle rất thông minh, nhanh nhẹn và tình cảm đối với chủ nhân. Giống Poodle là loài cún rất dễ nuôi và chăm nom, chúng có thể sống tốt trong các không gian nhỏ cả thành phố và nông thôn. Bài viết Hôm nay mọi người cùng tìm hiểu 1 số phương pháp để chọn lựa được cún Poodle tốt cùng cách chăm chút chúng hàng ngày. Liên hệ Duy Trương chủ của Duy Pets ngay Website:https://duypets.com Di động: 0976666156 Địa chỉ: Hẻm 84 Phạm Hùng, Bình Hưng, Bình Chánh, TPHCM

Leave a comment

Design a site like this with WordPress.com
Get started