Hồi quy tuyến tính là gì

  -  

Trong nội dung bài viết, mình đã reviews một trong những thuật tân oán cơ phiên bản tốt nhất của Machine Learning. Đây là thuật toán Linear Regression (Hồi Quy Tuyến Tính) ở trong team Supervised learning ( Học có tính toán ). Hồi quy con đường tính là 1 cách thức hết sức đơn giản nhưng đã có được chứng minh được tính hữu dụng mang lại một số trong những lượng mập các tình huống. Trong nội dung bài viết này, bạn sẽ tò mò ra đúng chuẩn phương thức đường tính thao tác như thế nào.Trong câu hỏi đối chiếu tài liệu, bạn sẽ xúc tiếp với thuật ngữ "Regression" ( Hồi quy ) vô cùng tiếp tục. Trước khi đi sâu vào Hồi quy tuyến đường tính, hãy tìm hiểu tư tưởng Hồi quy trước vẫn. Hồi quy chính là một phương pháp thống kê lại nhằm tùy chỉnh cấu hình mối quan hệ thân một phát triển thành dựa vào với một nhóm tập hòa hợp các biến đổi độc lập. ví dụ như :

Tuổi = 5 + Chiều cao * 10 + Trọng lượng * 13Tại đó chính ta sẽ tùy chỉnh cấu hình mối quan hệ thân Chiều cao và Trọng lượng của một người cùng với Tuổi của anh/cô ta. Đây là 1 trong những ví dụ khôn cùng cơ bản của Hồi quy.

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

Hồi quy tuyến tính giản đơn

Introduction

"Hồi quy tuyến đường tính" là 1 trong những phương pháp những thống kê để hồi quy dữ liệu cùng với đổi mới phụ thuộc vào có mức giá trị thường xuyên trong lúc những biến đổi chủ quyền rất có thể gồm 1 trong các nhị quý giá liên tục Hay là quý giá phân nhiều loại. Nói giải pháp không giống "Hồi quy tuyến tính" là 1 trong phương pháp để tham gia đoán thù phát triển thành phụ thuộc vào (Y) dựa trên giá trị của biến đổi tự do (X). Nó hoàn toàn có thể được áp dụng cho những trường phù hợp họ mong muốn dự đoán một trong những lượng tiếp tục. lấy ví dụ như, dự đân oán giao thông vận tải tại một siêu thị nhỏ lẻ, dự đoán thời hạn người dùng dừng lại một trang làm sao kia hoặc số trang đã truy cập vào trong 1 website làm sao kia v.v...

Chuẩn bị

Để bắt đầu với Hồi quy tuyến tính, bọn họ hãy đi lướt qua một trong những khái niệm tân oán học tập về thống kê lại.

Tương quan tiền (r) - Giải đam mê mối quan hệ giữa hai biến chuyển, giá trị rất có thể chạy từ -1 cho +1Phương thơm không nên (σ2) - Đánh giá bán độ phân tán vào dữ liệu của bạnĐộ lệch chuẩn (σ) - Đánh giá độ phân tán vào dữ liệu của công ty (căn bậc nhị của phương thơm sai)Phân phối chuẩnSai số (lỗi) - quý giá thực tiễn - cực hiếm dự đoánGiả định

Không một size nào phù hợp cho toàn bộ, vấn đề đó cũng như đối với Hồi quy tuyến tính. Để vừa lòng hồi quy đường tính, tài liệu yêu cầu toại ý một vài đưa định quan trọng đặc biệt. Nếu tài liệu của bạn không tuân theo các trả định, công dụng của bạn cũng có thể sngười nào cũng nlỗi tạo hiểu nhầm.

Tuyến tính & Thêm vào : Nên gồm một mối quan hệ tuyến đường tính giữa phát triển thành hòa bình và biến chuyển không chủ quyền với ảnh hưởng của sự thay đổi trong quý giá của các phát triển thành độc lập cần tác động cung ứng tới những trở nên phụ thuộc.Tính bình thường của phân bổ những lỗi : Sự phân bổ không đúng không giống thân các quý hiếm thực cùng quý giá dự đân oán (không đúng số) đề xuất được phân chia một bí quyết bình thường.Sự tương đồng: Pmùi hương sai của các lỗi bắt buộc là một trong giá trị không thay đổi đối với ,Thời gianDự đoánGiá trị của những biến đổi độc lậpSự hòa bình về những thống kê của những lỗi: Các không nên số (dư) không nên bao gồm bất kỳ mọt đối sánh tương quan nào giữa bọn chúng. Ví dụ: Trong trường vừa lòng dữ liệu theo chuỗi thời gian, tránh việc có sự đối sánh giữa những không đúng số tiếp tục nhau.Đường hồi quy con đường tính

Trong Lúc thực hiện hồi quy con đường tính, kim chỉ nam của bọn họ là để gia công sao một đường thẳng hoàn toàn có thể tạo được sự phân bố sớm nhất cùng với số đông những điểm. Do kia làm sút khoảng cách (không đúng số) của các điểm tài liệu cho đến đường đó.

*

lấy ví dụ như, sinh sống các điểm sống hình bên trên (trái) màn trình diễn những điểm dữ liệu khác nhau cùng đường thẳng (bên phải) thay mặt đại diện cho một mặt đường khoảng rất có thể giải thích mối quan hệ thân những trục x & y. Thông qua, hồi quy đường tính họ cố gắng đưa ra một con đường như vậy. lấy ví dụ, giả dụ chúng ta bao gồm một biến nhờ vào Y cùng một trở nên hòa bình X - mối quan hệ giữa X và Y hoàn toàn có thể được màn trình diễn dưới dạng phương trình sau:

Y = Β0 + Β1*XỞ trên đây,

Y = Biến phú thuộcX = đổi mới độc lậpΒ0 = Hằng sốΒ1 = Hệ số quan hệ thân X và YMột vài đặc thù của hồi quy tuyến đường tínhĐường hồi quy luôn luôn đi qua trung bình của trở thành tự do (x) tương tự như trung bình của trở thành phụ thuộc (y)Đường hồi qui về tối thiểu hóa tổng của "Diện tích những không nên số". Đó là nguyên nhân tại sao phương pháp hồi quy tuyến tính được Call là "Ordinary Least Square (OLS)"Β1 giải thích sự chuyển đổi vào Y với sự đổi khác X bởi một đơn vị. Nói biện pháp không giống, nếu họ đội giá trị của X vày một đơn vị thì nó vẫn là việc thay đổi cực hiếm của YTìm đường hồi quy tuyến tính

Sử dụng khí cụ thống kê lại ví như Excel, R, SAS ... bạn sẽ trực tiếp tra cứu hằng số (B0 và B1) như thể công dụng của hàm hồi quy tuyến đường tính. Như triết lý sinh hoạt trên, nó vận động bên trên khái niệm OLS cùng nỗ lực giảm sút diện tích S không nên số, những công cụ này sử dụng những gói phần mềm tính các hằng số này.

lấy ví dụ như, trả sử họ ước ao dự đân oán y tự x vào bảng sau với giả sử rằng pmùi hương trình hồi quy của chúng ta đã giống hệt như y = B0 + B1 * x

xyPredict "y"
12Β0+B1*1
21Β0+B1*2
33Β0+B1*3
46Β0+B1*4
59Β0+B1*5
611Β0+B1*6
713Β0+B1*7
815Β0+B1*8
917Β0+B1*9
1020Β0+B1*10

Tại phía trên,

Độ lệch chuẩn chỉnh x3.02765
Độ lệch chuẩn chỉnh y6.617317
Trung bình x5.5
Trung bình y9.7
Tương quan liêu x cùng y.989938

Nếu chúng ta sáng tỏ những Tổng còn lại của diện tích không nên số (RSS) tương ứng với B0 & B1 với tương đương cùng với các tác dụng bởi ko, chúng ta có được các pmùi hương trình sau đây nlỗi là 1 kết quả:

B1 = Tương quan * ( Độ lệch chuẩn của y / Độ lệch chuẩn của x)B0 = vừa đủ (Y) - B1 * Trung bình (X)Đưa cực hiếm từ bỏ bảng 1 vào các phương thơm trình bên trên,

B1 = 2,64B0 = -2,2Do kia, phương trình hồi quy tuyệt nhất đã vươn lên là -

Y = -2,2 + 2,64 * xHãy xem, dự đoán thù của họ thế nào bằng cách sử dụng phương trình này

xY -quý giá thựcY - Dự đoán
120.44
213.08
335.72
468.36
5911
61113.64
71316.28
81518.92
91721.56
102024.2

Chỉ cùng với 10 điểm tài liệu nhằm phù hợp với cùng một con đường thẳng thì dự đoán thù của chúng ta đã chính xác lắm, tuy nhiên nếu như bọn họ thấy sự tương quan thân "Y-Thưc tế" cùng "Y - Dự đoán" thì triển vọng sẽ tương đối cao vì thế cả nhị series đã dịch chuyển bên nhau với đây là biểu vật nhằm hiển thị quý hiếm dự đoán:

*

Hiệu suất của tế bào hình

Một khi bạn thành lập mô hình, câu hỏi tiếp sau mang đến trong đầu là để hiểu liệu quy mô của người tiêu dùng tất cả đầy đủ để tham dự đân oán sau này Hay những mối quan hệ mà lại bạn sẽ xây dựng thân các trở nên phụ thuộc vào với độc lập là đủ hay không.

Vì mục tiêu này có nhiều chỉ số nhưng họ đề nghị tsay mê khảo

R – Square (R^2)Công thức tính R^2 đang bằng :

*

Tổng những diện tích (TSS): TSS là 1 trong phxay đo tổng biến thiên vào Tỷ Lệ thỏa mãn nhu cầu / đổi thay phụ thuộc vào Y với rất có thể được coi là số lượng biến hóa thiên vốn tất cả trong đáp ứng trước khi hồi quy được triển khai.Sum of Squares (RSS): RSS giám sát và đo lường lượng thay đổi còn sót lại không phân tích và lý giải được sau khoản thời gian tiến hành hồi quy.(TSS - RSS) đo lường cường độ biến đổi trong đáp ứng nhu cầu được lý giải (hoặc loại bỏ) bằng phương pháp tiến hành hồi quy

Trong số đó N là số quan lại cạnh bên được thực hiện nhằm tương xứng với mô hình, σx là độ lệch chuẩn của x, cùng σy là độ lệch chuẩn chỉnh của y.

R2 giao động tự 0 mang lại 1.R2 của 0 tức là trở nên dựa vào tất yêu dự đân oán được từ phát triển thành độc lậpR2 của một Có nghĩa là đổi thay nhờ vào rất có thể được dự đoán thù mà không có không đúng số tự thay đổi độc lậpMột R2 thân 0 cùng 1 chỉ ra rằng mức độ nhưng mà biến chuyển dựa vào hoàn toàn có thể dự đoán được. Một R2 của 0.20 Tức là 20 Xác Suất của pmùi hương không nên trong Y có thể dự đoán thù được trường đoản cú X; Một R2 của 0.40 có nghĩa là 40 phần trăm là rất có thể dự đân oán v.v...

Root Mean Square Error (RMSE)RMSE cho thấy thêm cường độ phân tán những quý giá dự đoán từ những quý giá thực tiễn. Công thức tính RMSE là

*

N: Tổng số quan lại sát

Mặc dù RMSE là một trong những Đánh Giá tốt cho các sai số nhưng mà vụ việc cùng với nó là nó rất giản đơn bị tác động bởi vì phạm vi của biến đổi phụ thuộc của chúng ta. Nếu trở nên dựa vào của khách hàng bao gồm dải trở thành thiên thuôn, RMSE của các bạn sẽ rẻ và nếu biến chuyển dựa vào gồm phạm vi rộng lớn RMSE đang cao. Do kia, RMSE là một số liệu giỏi để so sánh giữa những lần tái diễn khác biệt của mô hình

Mean Absolute Percentage Error (MAPE)

Để hạn chế và khắc phục hồ hết tiêu giảm của RMSE, các công ty so sánh mê thích thực hiện MAPE đối với RMSE. MAPE mang lại sai số vào xác suất phần trăm cùng vì vậy so sánh được thân các quy mô. Công thức tính MAPE hoàn toàn có thể được viết nlỗi sau:

*

N: Tổng số quan liêu sát

Hồi quy tuyến đường tính đa biến

Cho mang đến hiện giờ, chúng ta sẽ đàm luận về kịch phiên bản cơ mà bọn họ chỉ tất cả một đổi mới tự do. Nếu chúng ta có không ít hơn một vươn lên là tự do, phương thức tương xứng duy nhất là "Multiple Regression Linear" - Hồi quy tuyến đường tính đa biến

Sự khác biệt

Về cơ bạn dạng không tồn tại sự khác biệt giữa hồi quy con đường tính "giản đơn" cùng "nhiều biến". Cả nhị đều làm việc tuân thủ theo đúng qui định OLS với thuật toán thù để sở hữu được đường hồi quy buổi tối ưu nhất cũng tương tự. Trong trường hợp sau, pmùi hương trình hồi quy sẽ có một ngoài mặt nhỏng sau:

Y=B0+B1*X1+B2*X2+B3*X3.....Ở đây,

Bi: Các hệ số không giống nhauXi: Các biến hóa hòa bình không giống nhau

Chạy hồi quy đường tính bởi Pybé nhỏ scikit-Learn

Ở trên, chúng ta đang hiểu được hồi quy đường tính là 1 trong chuyên môn phổ biến với chúng ta có thể thấy các pmùi hương trình tân oán học của hồi quy đường tính. Nhưng chúng ta gồm biết làm cho thế làm sao để triển khai một hồi quy con đường tính vào Pythanh mảnh ?? Có một số phương pháp để có thể làm cho điều này, bạn cũng có thể triển khai hồi quy con đường tính bằng phương pháp sử dụng những mô hình những thống kê, numpy, scipy với sckit learn. Nhưng vào bài bác này bọn họ đang áp dụng sckit learn nhằm triển khai hồi quy tuyến đường tính.

Scikit-learn là một trong những module Pynhỏ trẻ khỏe cho việc học lắp thêm. Nó cất hàm mang lại hồi quy, phân nhiều loại, phân cụm, lựa chọn quy mô và giảm kích chiều. Chúng ta đã mày mò module sklearn.linear_Mã Sản Phẩm bao gồm chứa "các method để tiến hành hồi quy, trong số đó quý giá mục tiêu vẫn là sự việc phối kết hợp con đường tính của các biến đầu vào".

Trong bài đăng này, bọn họ đã thực hiện cỗ dữ liệu Nhà sinh hoạt Boston, bộ dữ liệu cất ban bố về quý giá thắng lợi sinh hoạt ngoại thành đô thị Boston. Tập tài liệu này ban sơ được mang trường đoản cú thỏng viện StatLib được duy trì tại Đại học Carnegie Mellon và hiện nay đã bao gồm trên UCI Machine Learning Repository.

Xem thêm: Oem Là Gì? Hàng Oem Là Hàng Gì ? Oem Là Hàng Của Nước Nào, Thương Hiệu Nào?

Khám phá bộ dữ liệu nhà Boston

Sở Dữ liệu Nhà ở Boston bao hàm giá nhà sinh hoạt phần đông địa điểm không giống nhau ngơi nghỉ Boston. Cùng cùng với giá thành, tập dữ liệu cũng báo tin nhỏng Tội phạm (CRIM), các khu vực kinh doanh không-bán-lẻ nghỉ ngơi thị trấn (INDUS), tuổi công ty download nơi ở (AGE) cùng có nhiều nằm trong tính không giống gồm sẵn tại đây .Bộ tài liệu chính nó hoàn toàn có thể down tự đây . Tuy nhiên, vì bọn họ áp dụng scikit-learn, chúng ta cũng có thể import nó từ bỏ scikit-learn.

%matplotlib inline import numpy as npimport pandas as pdimport scipy.stats as statsimport matplotlib.pyplot as pltimport sklearnimport statsmodels.api as smimport seaborn as snssns.set_style("whitegrid")sns.set_context("poster")# special matplotlib argument for improved plotsfrom matplotlib import rcParamsTrước không còn, chúng ta sẽ import bộ dữ liệu Boston Housing và lưu trữ nó trong một phát triển thành Hotline là boston. Để import nó trường đoản cú scikit-learn, bọn họ đang rất cần được chạy đoạn mã này.

from sklearn.datasets import load_bostonboston = load_boston()Biến boston là một trong những dạng từ bỏ điển, vày vậy bạn cũng có thể khám nghiệm key của chính nó thực hiện đoạn mã bên dưới.

print(boston.keys())Nó đã trả về nhỏng sau

*

Tiếp,

print(boston.data.shape)trước hết, bạn cũng có thể dễ ợt chất vấn shape của nó bằng phương pháp call boston.data.shape và nó đang trả lại kích thước của tập tài liệu cùng với kích cỡ column.

*

Như bạn cũng có thể thấy nó trả về (506, 13), có nghĩa là gồm 506 sản phẩm dữ liệu cùng với 13 cột. Bây tiếng bọn họ ước ao biết 13 cột là gì. Chúng ta sẽ chạy đoạn code sau :

print(boston.feature_names)

*

Quý Khách rất có thể cần sử dụng lệnh print(boston.DESCR) để bình chọn description của dữ liệu ráng vày mngơi nghỉ web nhằm đọc.

Tiếp, convert dữ liệu về dạng pandas! Rất đơn giản dễ dàng, Điện thoại tư vấn hàm pd.DataFrame() và truyền boston.data. Chúng ta có thể khám nghiệm 5 dữ liệu thứ nhất bằng bos.head().

bos = pd.DataFrame(boston.data)print(bos.head())

*

Hoặc bạn co thể sử dụng đoạn lệnh sau để show được thương hiệu cột

bos.columns = boston.feature_namesprint(bos.head())

*

Có vẻ vẫn chưa tồn tại column thương hiệu là PRICE.

bos<"PRICE"> = boston.targetprint(bos.head())Ta sẽ add nó vào thực hiện đoạn mã trên

*

Nếu bạn có nhu cầu quan sát những số liệu tổng thích hợp thống kê, hãy chạy đoạn mã sau .

print(bos.describe())

*

Tách dữ liệu nhằm train-test

Về cơ bản, trước khi phân chia tài liệu thành tập dữ liệu nhằm train - chạy thử, chúng ta bắt buộc chia tài liệu thành nhì quý giá : quý hiếm đích và quý hiếm dự báo. Hãy điện thoại tư vấn cực hiếm đích Y với các cực hiếm dự đoán X.vì vậy,

Y = Boston Housing PriceX = All other featuresX = bos.drop("PRICE", axis = 1)Y = bos<"PRICE">Bây giờ đồng hồ chúng ta có thể split tài liệu để train và thử nghiệm cùng với snippet nhỏng sau.

X_train, X_chạy thử, Y_train, Y_thử nghiệm = sklearn.cross_validation.train_test_split(X, Y, test_form size = 0.33, random_state = 5)print(X_train.shape)print(X_test.shape)print(Y_train.shape)print(Y_test.shape)Nếu họ bình chọn shape của từng biến đổi, chúng ta đã chiếm lĩnh cỗ dữ liệu cùng với tập dữ liệu xem sét có Tỷ Lệ 66,66% so với tài liệu train cùng 33,33% đối với tài liệu test.

*

Linear Regression

Tiếp, họ đang chạy hồi quy con đường tính.

from sklearn.linear_Mã Sản Phẩm import LinearRegressionlm = LinearRegression()lm.fit(X_train, Y_train)Y_pred = lm.predict(X_test)plt.scatter(Y_chạy thử, Y_pred)plt.xlabel("Prices: $Y_i$")plt.ylabel("Predicted prices: $hatY_i$")plt.title("Prices vs Predicted prices: $Y_i$ vs $hatY_i$")Đoạn mã bên trên đã phù hợp với một quy mô dựa vào X_train với Y_train. Bây giờ Cửa Hàng chúng tôi đã bao gồm quy mô đường tính, bọn họ đã nỗ lực dự đoán thù nó mang đến X_test và các giá trị dự đân oán sẽ được lưu giữ trong Y_pred. Để hình dung sự khác hoàn toàn giữa giá bán thực tiễn với quý hiếm dự đoán thù, Shop chúng tôi cũng tạo thành một bảng biểu .

Xem thêm: Giới Thiệu Về Thắng Cảnh Ao Bà Om Và Những Truyền Thuyết, Thuyết Minh Về Ao Bà Om

*

Thực tế thì đáng lẽ trang bị thị sinh sống trên phải lập một đường tuyến tính nhỏng chúng ta vẫn thảo luận triết lý ở trên. Tuy nhiên, Model ko phù hợp 100%, vì vậy nó vẫn ko thể tạo được mặt đường đường tính.

Trung bình diện tích S sai số

Để soát sổ mức độ lỗi của một mô hình, chúng ta có thể thực hiện Mean Squared Error. Đây là 1 trong những trong các cách thức để đo trung bình của ô vuông của sai số. Về cơ bạn dạng, nó sẽ chất vấn sự biệt lập thân cực hiếm thực tế với quý giá dự đoán thù. Để áp dụng nó, bạn cũng có thể áp dụng hàm bình pmùi hương vừa phải không nên số của scikit-learn bằng phương pháp chạy đoạn mã này

mse = sklearn.metrics.mean_squared_error(Y_thử nghiệm, Y_pred)print(mse)hiệu quả nhận được

28.5413672756

Tham khảo cùng dịch

http://bigdata-madesimple.com/how-to-run-linear-regression-in-python-scikit-learn/

http://aimotion.blogspot.com/2011/10/machine-learning-with-python-linear.html

http://machinelearningmastery.com/simple-linear-regression-tutorial-for-machine-learning/

http://machinelearningmastery.com/implement-simple-linear-regression-scratch-python/