LINEAR REGRESSION LÀ GÌ

  -  

Trong bài bác này, tôi vẫn trình làng một trong những thuật tân oán cơ bản tuyệt nhất (với đơn giản dễ dàng nhất) của Machine Learning. Đây là một trong thuật tân oán Supervised learning có tên Linear Regression (Hồi Quy Tuyến Tính). Bài tân oán này nhiều lúc được gọi là Linear Fitting (trong thống kê) hoặc Linear Least Square.

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

Trong trang này:

2. Phân tích toán học tập 3. lấy ví dụ như bên trên Pyhẹp 4. Thảo luận

1. Giới thiệu

Quay lại ví dụ đơn giản và dễ dàng được nêu vào bài bác trước: một căn công ty rộng lớn (x_1 ~ extm^2), có (x_2) phòng để ngủ cùng cách trung thực bụng phố (x_3~ extkm) có mức giá là từng nào. Giả sử chúng ta sẽ có số liệu những thống kê tự 1000 tòa nhà trong tỉnh thành đó, liệu rằng khi bao gồm 1 căn đơn vị new với những thông số về diện tích, số phòng để ngủ và khoảng cách tới trung trung tâm, chúng ta có thể dự đân oán giá tốt của căn nhà kia không? Nếu bao gồm thì hàm dự đoán thù (y = f(mathbfx) ) sẽ có dạng thế nào. Tại đây (mathbfx = ) là 1 vector hàng chứa công bố input, (y) là một trong những vô phía (scalar) màn biểu diễn output (tức giá bán của căn nhà vào ví dụ này).

Lưu ý về ký hiệu tân oán học: trong các nội dung bài viết của mình, các số vô phía được trình diễn vì chưng những vần âm viết sinh sống dạng ko in đậm, rất có thể viết hoa, ví dụ (x_1, N, y, k). Các vector được màn biểu diễn bằng các chữ cái thường in đậm, ví dụ (mathbfy, mathbfx_1 ). Các ma trận được trình diễn vị những chữ viết hoa in đậm, ví dụ (mathbfX, Y, W ).

Một cách đơn giản độc nhất vô nhị, chúng ta có thể thấy rằng: i) diện tích S đơn vị càng Khủng thì giá nhà càng cao; ii) số lượng phòng ngủ càng béo thì giá nhà càng cao; iii) càng xa trung trung tâm thì giá nhà đất càng giảm. Một hàm số dễ dàng độc nhất có thể mô tả mối quan hệ thân giá cả nhà đất với 3 đại lượng đầu vào là:

trong các số ấy, (w_1, w_2, w_3, w_0) là những hằng số, (w_0) còn gọi là bias. Mối quan hệ (y approx f(mathbfx)) bên trên là một trong quan hệ đường tính (linear). Bài toán chúng ta vẫn có tác dụng là một trong những bài toán ở trong nhiều loại regression. Bài toán thù đi tìm các thông số buổi tối ưu ( w_1, w_2, w_3, w_0 \) bởi vì vậy được call là bài xích toán Linear Regression.

Chú ý 1: (y) là cực hiếm thực của outcome (dựa vào số liệu thống kê lại bọn họ có trong tập training data), trong những lúc (haty) là quý hiếm cơ mà quy mô Linear Regression dự đân oán được. Nhìn phổ biến, (y) và (haty) là nhị quý hiếm không giống nhau vày có không đúng số quy mô, mặc dù, chúng ta mong muốn rằng sự không giống nhau này cực kỳ bé dại.

Crúc ý 2: Linear hay tuyến tính gọi một biện pháp đơn giản là trực tiếp, phẳng. Trong không gian hai phía, một hàm số được Hotline là con đường tính giả dụ vật thị của nó tất cả dạng một đường thẳng. Trong không gian bố chiều, một hàm số được goi là tuyến đường tính nếu như đồ gia dụng thị của nó tất cả dạng một mặt phẳng. Trong không khí nhiều hơn 3D, quan niệm mặt phẳng không hề phù hợp nữa, nắm vào kia, một tư tưởng không giống Thành lập được Hotline là cực kỳ khía cạnh phẳng (hyperplane). Các hàm số tuyến đường tính là những hàm dễ dàng và đơn giản độc nhất vô nhị, bởi vì bọn chúng dễ dàng vào câu hỏi hình dung và tính toán. Chúng ta sẽ được thấy trong những nội dung bài viết sau, tuyến đường tính siêu quan trọng đặc biệt cùng có lợi trong các bài bác tân oán Machine Learning. Kinch nghiệm cá thể tôi cho thấy, trước lúc đọc được các thuật toán thù phi tuyến (non-linear, không phẳng), họ yêu cầu nắm vững các kỹ thuật cho những mô hình con đường tính.

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

2.1. Dạng của Linear Regression

Trong phương thơm trình ((1)) phía trên, ví như họ đặt (mathbfw = ^T = ) là vector (cột) thông số rất cần phải buổi tối ưu cùng (mathbfarx = <1, x_1, x_2, x_3>) (phát âm là x bar vào tiếng Anh) là vector (hàng) dữ liệu nguồn vào msinh hoạt rộng. Số (1) ở đầu được cung cấp nhằm phép tính dễ dàng và đơn giản hơn cùng dễ dàng cho câu hỏi tính tân oán. Lúc kia, phương trình (1) rất có thể được viết lại bên dưới dạng:

2.2. Sai số dự đoán

Chúng ta ước muốn rằng sự không nên khác (e) thân cực hiếm thực (y) và cực hiếm dự đoán (haty) (phát âm là y hat trong tiếng Anh) là nhỏ tuổi độc nhất. Nói biện pháp không giống, chúng ta mong mỏi quý hiếm sau đây càng nhỏ càng tốt:

trong số ấy thông số (frac12 ) (lại) là nhằm tiện lợi mang đến câu hỏi tính toán (Khi tính đạo hàm thì số (frac12 ) sẽ ảnh hưởng triệt tiêu). Chúng ta yêu cầu (e^2) bởi (e = y - haty ) rất có thể là một trong những âm, việc nói (e) nhỏ nhất sẽ không còn đúng do Khi (e = - infty) là hết sức nhỏ tuổi nhưng lại sự rơi lệch là không hề nhỏ. Quý Khách hiểu hoàn toàn có thể từ bỏ đặt câu hỏi: vì sao không cần sử dụng trị tuyệt vời và hoàn hảo nhất ( |e| ) mà lại cần sử dụng bình pmùi hương (e^2) ở đây? Câu trả lời sẽ có ở trong phần sau.

2.3. Hàm mất mát

Điều giống như xảy ra với toàn bộ các cặp (đầu vào, outcome) ( (mathbfx_i, y_i), i = 1, 2, dots, N ), cùng với (N) là số lượng tài liệu quan giáp được. Điều họ muốn, tổng không đúng số là nhỏ dại tuyệt nhất, tương đương cùng với việc tìm và đào bới ( mathbfw ) nhằm hàm số sau đạt cực hiếm nhỏ tuổi nhất:

< mathcalL(mathbfw) = frac12sum_i=1^N (y_i - mathbfarx_imathbfw)^2 ~~~~~(2) >

Hàm số (mathcalL(mathbfw) ) được hotline là hàm mất mát (loss function) của bài toán Linear Regression. Chúng ta luôn mong ước rằng sự mất non (không nên số) là nhỏ dại độc nhất, điều đó đồng nghĩa với việc tìm và đào bới vector hệ số ( mathbfw ) sao cho quý giá của hàm mất non này càng nhỏ càng tốt. Giá trị của (mathbfw) khiến cho hàm mất mát đạt giá trị nhỏ dại tuyệt nhất được Hotline là điểm buổi tối ưu (optimal point), ký hiệu:

< mathbfw^* = argmin_mathbfw mathcalL(mathbfw) >

Trước lúc đi tìm kiếm giải mã, chúng ta dễ dàng hóa phnghiền tân oán trong phương trình hàm mất non ((2)). Đặt (mathbfy = ) là một vector cột cất tất cả các output của training data; ( mathbfarX = ) là ma trận dữ liệu đầu vào (mnghỉ ngơi rộng) mà lại mỗi sản phẩm của chính nó là 1 trong những điểm tài liệu. Lúc đó hàm số mất đuối (mathcalL(mathbfw)) được viết dưới dạng ma trận đơn giản hơn:

<= frac12 |mathbfy - mathbfarXmathbfw |_2^2 ~~~(3) >

với ( | mathbfz |_2 ) là Euclidean norm (chuẩn Euclid, tuyệt khoảng cách Euclid), nói theo cách khác ( | mathbfz |_2^2 ) là tổng của bình phương thơm mỗi thành phần của vector (mathbfz). Tới trên đây, ta đã tất cả một dạng đơn giản và dễ dàng của hàm mất non được viết nlỗi phương thơm trình ((3)).

Xem thêm: Khái Niệm Hạch Toán Là Gì Mới Nhất? Tìm Hiểu 3 Loại Hạch Toán Cơ Bản

2.4. Nghiệm đến bài bác tân oán Linear Regression

Cách phổ cập độc nhất vô nhị để tra cứu nghiệm cho 1 bài xích toán về tối ưu (họ đang biết từ bỏ khi tham gia học cấp 3) là giải phương thơm trình đạo hàm (gradient) bằng 0! Tất nhiên đó là lúc bài toán tính đạo hàm cùng việc giải pmùi hương trình đạo hàm bởi 0 không thật tinh vi. Thật suôn sẻ, với các mô hình tuyến đường tính, hai bài toán này là khả thi.

Đạo hàm theo (mathbfw ) của hàm mất mát là:

Các bạn cũng có thể xem thêm bảng đạo hàm theo vector hoặc ma trận của một hàm số trong mục D.2 của tư liệu này. Đến đây tôi xin quay trở lại thắc mắc ở vị trí Sai số dự đân oán bên trên về việc tại sao không dùng trị hoàn hảo nhất mà lại dùng bình pmùi hương. Câu trả lời là hàm bình pmùi hương bao gồm đạo hàm trên phần đông địa điểm, trong những khi hàm trị tuyệt đối hoàn hảo thì ko (đạo hàm không xác định trên 0).

Phương thơm trình đạo hàm bởi 0 tương đương với: (cam kết hiệu (mathbfarX^Tmathbfy riangleq mathbfb ) tức là đặt (mathbfarX^Tmathbfy) bằng (mathbfb) ).

Nếu ma trận vuông ( mathbfA riangleq mathbfarX^TmathbfarX) khả nghịch (non-singular hay invertible) thì phương thơm trình ((4)) có nghiệm duy nhất: ( mathbfw = mathbfA^-1mathbfb ).

Với định nghĩa giả nghịch đảo, điểm buổi tối ưu của bài tân oán Linear Regression có dạng:

3. lấy một ví dụ trên Python

3.1. Bài toán

Trong phần này, tôi vẫn chọn một ví dụ đơn giản về bài toán giải bài toán thù Linear Regression trong Python thả. Tôi cũng trở thành so sánh nghiệm của bài bác tân oán lúc giải theo phương trình ((5) ) với nghiệm kiếm được khi sử dụng thỏng viện scikit-learn của Pythanh mảnh. (Đây là thỏng viện Machine Learning được sử dụng rộng thoải mái trong Python). Trong ví dụ này, tài liệu nguồn vào chỉ có một cực hiếm (1 chiều) nhằm dễ dàng mang lại câu hỏi minc hoạ vào khía cạnh phẳng.

Chúng ta có 1 bảng dữ liệu về chiều cao cùng khối lượng của 15 fan nlỗi dưới đây:

Chiều cao (cm) Cân nặng nề (kg) Chiều cao (cm) Cân nặng nề (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    

Bài tân oán đặt ra là: liệu có thể dự đân oán trọng lượng của một tín đồ dựa vào độ cao của họ không? (Trên thực tế, tất nhiên là không, bởi vì cân nặng còn nhờ vào vào các yếu tố không giống nữa, thể tích chẳng hạn). Vì blog này nói tới những thuật tân oán Machine Learning dễ dàng và đơn giản phải tôi sẽ mang sử rằng chúng ta cũng có thể dự đân oán được.

Chúng ta có thể thấy là khối lượng đang tỉ lệ thành phần thuận với độ cao (càng cao càng nặng), yêu cầu rất có thể thực hiện Linear Regression Mã Sản Phẩm cho vấn đề dự đoán này. Để đánh giá độ chính xác của Model kiếm được, chúng ta sẽ lưu lại lại cột 155 với 160 cm để kiểm demo, các cột sót lại được sử dụng để đào tạo (train) Mã Sản Phẩm.

Xem thêm: What Does Dtf Là Gì - Từ Điển Anh Việt Define

3.2. Hiển thị dữ liệu bên trên đồ gia dụng thị

trước hết, họ cần có hai tlỗi viện numpy mang lại đại số đường tính với matplotlib mang đến việc vẽ hình.