Linear Regression Là Gì

      38

Trong bài viết, mình đang giới thiệu một trong những thuật toá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 gồm đo lường và tính toán ). Hồi quy đường tính là một trong cách thức khôn xiết dễ dàng và đơn giản mà lại đã có chứng tỏ được tính có lợi mang lại một vài lượng béo những tình huống. Trong bài viết này, bạn sẽ tò mò ra đúng chuẩn cách thức con đường tính làm việc thế nào.Trong vấn đề so với tài liệu, bạn sẽ tiếp xúc với thuật ngữ "Regression" ( Hồi quy ) khôn cùng tiếp tục. Trước lúc đi sâu vào Hồi quy con đường tính, hãy mày mò tư tưởng Hồi quy trước đang. Hồi quy chính là một phương thức những thống kê nhằm tùy chỉnh cấu hình mối quan hệ thân một thay đổi nhờ vào với một nhóm tập hợp những trở thành hòa bình. lấy một ví dụ :

Tuổi = 5 + Chiều cao * 10 + Trọng lượng * 13Tại đó chính ta đã thiết lập cấu hình quan hệ giữa Chiều cao và Trọng lượng của một tín đồ với Tuổi của anh/cô ta. Đây là 1 ví dụ siêu cơ bạn dạng của Hồi quy.

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

Hồi quy con đường tính giản đơn

Introduction

"Hồi quy đường tính" là một phương thức những thống kê để hồi quy tài liệu cùng với phát triển thành phụ thuộc có mức giá trị thường xuyên trong những lúc các trở nên hòa bình hoàn toàn có thể tất cả một trong nhị giá trị liên tục hay những giá trị phân một số loại. Nói bí quyết không giống "Hồi quy tuyến đường tính" là 1 phương pháp để tham dự đân oán thay đổi nhờ vào (Y) dựa vào giá trị của biến chủ quyền (X). Nó hoàn toàn có thể được sử dụng cho những trường hòa hợp họ mong mỏi dự đoán một vài lượng tiếp tục. lấy ví dụ, dự đoán giao thông vận tải ở 1 cửa hàng kinh doanh nhỏ, dự đoán thù thời hạn người tiêu dùng tạm dừng một trang nào đó hoặc số trang vẫn truy vấn vào một trong những trang web làm sao kia v.v...

Chuẩn bị

Để bắt đầu với Hồi quy đường tính, chúng ta hãy đi lướt qua một trong những quan niệm toán học tập về những thống kê.

Tương quan liêu (r) - Giải mê say mối quan hệ giữa hai đổi mới, giá trị có thể chạy tự -1 mang đến +1Phương thơm không nên (σ2) - Đánh giá chỉ độ phân tán trong dữ liệu của bạnĐộ lệch chuẩn (σ) - Đánh giá bán độ phân tán trong dữ liệu của người tiêu dùng (cnạp năng lượng bậc hai của pmùi hương sai)Phân păn năn chuẩnSai số (lỗi) - quý hiếm thực tiễn - giá trị dự đoánGiả định

Không một kích cỡ làm sao phù hợp mang lại toàn bộ, điều này cũng giống so với Hồi quy tuyến đường tính. Để thoả nguyện hồi quy tuyến đường tính, tài liệu nên thoả mãn một vài đưa định đặc biệt quan trọng. Nếu tài liệu của chúng ta ko làm theo những trả định, hiệu quả của bạn có thể sai ai cũng nlỗi khiến phát âm nhầm.

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

Trong Lúc sử dụng hồi quy tuyến tính, kim chỉ nam của bọn họ là để làm sao một con đường trực tiếp có thể tạo nên sự phân bố gần nhất cùng với đa số những điểm. Do đó làm cho sút khoảng cách (không đúng số) của những điểm dữ liệu cho tới đường đó.

*

lấy ví dụ như, ở các điểm nghỉ ngơi hình trên (trái) màn trình diễn những điểm dữ liệu khác biệt cùng mặt đường thẳng (bên phải) đại diện thay mặt cho 1 con đường giao động rất có thể lý giải mối quan hệ thân những trục x và y. Thông qua, hồi quy con đường tính bọn họ nỗ lực đưa ra một con đường như thế. lấy một ví dụ, trường hợp chúng ta bao gồm một biến hóa dựa vào Y với một đổi thay tự do X - mối quan hệ thân X cùng Y rất có thể được màn trình diễn bên dưới dạng pmùi hương trình sau:

Y = Β0 + Β1*XTại đây,

Y = Biến phú thuộcX = phát triển thành độc lậpΒ0 = Hằng sốΒ1 = Hệ số mối quan hệ giữa X cùng YMột vài tính chất của hồi quy con đường tínhĐường hồi quy luôn luôn luôn trải qua mức độ vừa phải của vươn lên là độc lập (x) cũng tương tự vừa phải của thay đổi phụ thuộc vào (y)Đường hồi qui tối tphát âm hóa tổng của "Diện tích các không đúng số". Đó là nguyên nhân vì sao phương thức hồi quy tuyến đường tính được call là "Ordinary Least Square (OLS)"Β1 giải thích sự đổi khác trong Y với sự đổi khác X bởi một đơn vị. Nói phương pháp không giống, ví như chúng ta đội giá trị của X bởi vì một đơn vị chức năng thì nó đang là sự thay đổi cực hiếm của YTìm con đường hồi quy đường tính

Sử dụng nguyên tắc thống kê ví dụ như Excel, R, SAS ... các bạn sẽ trực tiếp tìm kiếm hằng số (B0 với B1) như là kết quả của hàm hồi quy tuyến tính. Nlỗi triết lý ngơi nghỉ trên, nó hoạt động trên có mang OLS với nỗ lực giảm bớt diện tích không đúng số, những nguyên lý này sử dụng những gói ứng dụng tính những hằng số này.

lấy một ví dụ, trả sử họ mong muốn dự đoán y từ x trong bảng sau và mang sử rằng phương trình hồi quy của bọn họ vẫn y 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 trên đây,

Độ 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 tiền x với y.989938

Nếu họ riêng biệt các Tổng còn sót lại của diện tích S không đúng số (RSS) khớp ứng với B0 và B1 cùng tương đương cùng với các hiệu quả bởi không, họ giành được những pmùi hương trình sau đây nlỗi là một kết quả:

B1 = Tương quan liêu * ( Độ lệch chuẩn chỉnh của y / Độ lệch chuẩn chỉnh của x)B0 = vừa phải (Y) - B1 * Trung bình (X)Đưa giá trị từ bảng 1 vào các phương trình trên,

B1 = 2,64B0 = -2,2Do kia, pmùi hương trình hồi quy tốt nhất đã biến hóa -

Y = -2,2 + 2,64 * xHãy coi, dự đoán của họ ra sao bằng cách áp dụng phương trình này

xY -quý hiếm 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 tương xứng với một mặt đường trực tiếp thì dự đoán thù của chúng ta đã đúng mực lắm, mà lại nếu như chúng ta thấy sự tương quan giữa "Y-Thưc tế" với "Y - Dự đoán" thì triển vọng sẽ rất cao cho nên cả nhị series đang di chuyển bên nhau cùng đấy là biểu đồ gia dụng để hiển thị cực hiếm dự đoán:

*

Hiệu suất của mô hình

Một khi bạn kiến thiết mô hình, thắc mắc tiếp theo sau mang lại vào đầu là để hiểu liệu mô hình của chúng ta có đầy đủ để tham gia đoán sau đây hoặc là quan hệ nhưng chúng ta đang xây đắp giữa những biến chuyển phụ thuộc và độc lập là đầy đủ hay là không.

Vì mục đích này có khá nhiều chỉ số cơ mà họ phải tmê mẩn khảo

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

*

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

Trong số đó N là số quan gần cạnh được sử dụng nhằm cân xứng với mô hình, σx là độ lệch chuẩn chỉnh của x, cùng σy là độ lệch chuẩn chỉnh của y.

R2 xấp xỉ trường đoản cú 0 mang lại 1.R2 của 0 nghĩa là vươn lên là dựa vào chẳng thể dự đoán thù được tự đổi thay độc lậpR2 của 1 có nghĩa là biến hóa nhờ vào có thể được dự đoán thù cơ mà không tồn tại không nên số trường đoản cú phát triển thành độc lậpMột R2 thân 0 và 1 chỉ ra mức độ nhưng mà đổi thay phụ thuộc có thể dự đoán được. Một R2 của 0.trăng tròn Có nghĩa là 20 xác suất của phương không đúng trong Y hoàn toàn có thể dự đoán thù được tự X; Một R2 của 0.40 Tức là 40 tỷ lệ là có thể dự đoán thù v.v...

Root Mean Square Error (RMSE)RMSE cho thấy thêm mức độ phân tán các giá trị dự đoán từ bỏ những quý hiếm thực tế. Công thức tính RMSE là

*

N: Tổng số quan tiền sát

Mặc mặc dù RMSE là một nhận xét xuất sắc cho các không nên số tuy thế sự việc với nó là nó rất đơn giản bị ảnh hưởng bởi vì phạm vi của biến đổi phụ thuộc của người tiêu dùng. Nếu đổi mới phụ thuộc của người sử dụng bao gồm dải biến đổi thiên nhỏ, RMSE của bạn sẽ tốt cùng giả dụ vươn lên là phụ thuộc vào có phạm vi rộng lớn RMSE vẫn cao. Do kia, RMSE là một trong những liệu xuất sắc nhằm so sánh thân những lần lặp lại khác nhau của tế bào hình

Mean Absolute Percentage Error (MAPE)

Để khắc phục hầu hết tinh giảm của RMSE, những công ty đối chiếu đam mê áp dụng MAPE so với RMSE. MAPE cho sai số vào Xác Suất Tỷ Lệ với do đó so sánh được thân những mô hình. Công thức tính MAPE hoàn toàn có thể được viết như sau:

*

N: Tổng số quan sát

Hồi quy tuyến tính nhiều biến

Cho mang lại hiện tại, chúng ta đã đàm luận về kịch bản cơ mà bọn họ chỉ bao gồm một biến đổi chủ quyền. Nếu chúng ta có tương đối nhiều rộng một đổi mới tự do, cách thức cân xứng tốt nhất là "Multiple Regression Linear" - Hồi quy đường tính nhiều biến

Sự không giống biệt

Về cơ bản không tồn tại sự khác biệt thân hồi quy con đường tính "giản đơn" cùng "đa biến". Cả hai phần đông thao tác tuân thủ theo đúng hiệ tượng OLS và thuật toán để có được mặt đường hồi quy về tối ưu tuyệt nhất tương tự như. Trong ngôi trường đúng theo sau, pmùi hương trình hồi quy sẽ sở hữu một bản thiết kế nlỗi sau:

Y=B0+B1*X1+B2*X2+B3*X3.....Tại trên đây,

Bi: Các hệ số không giống nhauXi: Các biến chuyển tự do khác nhau

Chạy hồi quy tuyến đường tính bởi Pyhẹp scikit-Learn

Ở bên trên, các bạn vẫn biết rằng hồi quy con đường tính là 1 trong chuyên môn phổ cập cùng bạn cũng có thể thấy các pmùi hương trình toán thù học của hồi quy con đường tính. Nhưng các bạn tất cả biết làm cho núm nào nhằm thực hiện một hồi quy tuyến đường tính vào Python ?? Có một số trong những phương pháp để rất có thể có tác dụng đ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 thực hiện những quy mô những thống kê, numpy, scipy cùng sckit learn. Nhưng trong bài xích này họ đã sử dụng sckit learn để tiến hành hồi quy tuyến tính.

Scikit-learn là một trong những module Pybé nhỏ mạnh mẽ mang đến bài toán học tập sản phẩm. Nó chứa hàm đến hồi quy, phân các loại, phân cụm, gạn lọc quy mô với sút kích chiều. Chúng ta đang tìm hiểu 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ố đó cực hiếm mục tiêu sẽ là sự kết hợp tuyến đường tính của những biến hóa đầu vào".

Trong bài đăng này, họ đã áp dụng cỗ dữ liệu Nhà ngơi nghỉ Boston, bộ tài liệu chứa lên tiếng về cực hiếm tác phẩm nghỉ ngơi ngoại ô thành phố Boston. Tập tài liệu này ban sơ được lấy trường đoản cú thư viện StatLib được bảo trì tại Đại học tập Carnegie Mellon với bây chừ đã bao gồm trên UCI Machine Learning Repository.

Xem thêm: Nạp Tiền Vào Ví Shopee - Cách Để Mua Hàng Không Cần Tiền Mặt

Khám phá cỗ dữ liệu bên Boston

Bộ Dữ liệu Nhà làm việc Boston bao gồm giá cả nhà đất sinh sống gần như khu vực khác biệt sinh hoạt Boston. Cùng cùng với giá thành, tập tài liệu cũng tin báo như Tội phạm (CRIM), các khu vực marketing không-bán-lẻ sinh sống thị xã (INDUS), tuổi công ty cài căn nhà (AGE) và có nhiều nằm trong tính không giống tất cả sẵn ở chỗ này .Sở dữ liệu thiết yếu nó có thể down tự phía trên . Tuy nhiên, vày chúng ta sử dụng scikit-learn, bạn có thể import nó trường đoản cú 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, bọn họ vẫn import bộ tài liệu Boston Housing cùng tàng trữ nó trong một đổi mới hotline là boston. Để import nó từ scikit-learn, chúng ta vẫn rất cần phải 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ự điển, vị vậy bạn cũng có thể khám nghiệm key của nó thực hiện đoạn mã dưới.

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

*

Tiếp,

print(boston.data.shape)trước hết, bạn cũng có thể thuận lợi đánh giá shape của nó bằng phương pháp Điện thoại tư vấn boston.data.shape với nó vẫn trả lại size của tập dữ liệu cùng với size column.

*

Nhỏng bạn cũng có thể thấy nó trả về (506, 13), có nghĩa là có 506 hàng dữ liệu với 13 cột. Bây giờ họ mong biết 13 cột là gì. Chúng ta vẫn chạy đoạn code sau :

print(boston.feature_names)

*

quý khách hàng rất có thể sử dụng lệnh print(boston.DESCR) để kiểm soát description của tài liệu thay vì mnghỉ ngơi website để đọc.

Tiếp, convert dữ liệu về dạng pandas! Rất đơn giản dễ dàng, Hotline hàm pd.DataFrame() và truyền boston.data. Chúng ta có thể chất vấn 5 dữ liệu đầu tiên bởi bos.head().

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

*

Hoặc chúng ta co thể 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 tên là PRICE.

bos<"PRICE"> = boston.targetprint(bos.head())Ta vẫn add nó vào sử dụng đoạn mã trên

*

Nếu bạn muốn quan sát những số liệu tổng hòa hợp thống kê lại, hãy chạy đoạn mã sau .

print(bos.describe())

*

Tách dữ liệu để train-test

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

Y = Boston Housing PriceX = All other featuresX = bos.drop("PRICE", axis = 1)Y = bos<"PRICE">Bây giờ bạn cũng có thể split dữ liệu để train cùng demo cùng với snippet nlỗi sau.

X_train, X_chạy thử, Y_train, Y_test = sklearn.cross_validation.train_test_split(X, Y, test_kích cỡ = 0.33, random_state = 5)print(X_train.shape)print(X_demo.shape)print(Y_train.shape)print(Y_demo.shape)Nếu chúng ta chất vấn shape của từng thay đổi, họ đã sở hữu bộ tài liệu cùng với tập tài liệu phân tách bao gồm Xác Suất 66,66% so với tài liệu train và 33,33% so với tài liệu thử nghiệm.

*

Linear Regression

Tiếp, bọn họ đang chạy hồi quy đườ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_demo, 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ã trên đã phù hợp với 1 quy mô dựa vào X_train và Y_train. Bây giờ chúng tôi vẫn gồm mô hình con đường tính, bọn họ đang cố gắng dự đoán thù nó cho X_demo với những quý hiếm dự đân oán sẽ tiến hành lưu giữ trong Y_pred. Để hình dung sự khác hoàn toàn giữa giá thực tế với cực hiếm dự đoán thù, Cửa Hàng chúng tôi cũng tạo nên một bảng biểu .

*

Thực tế thì đáng lẽ thứ thị làm việc bên trên phải tạo lập một đường đường tính nlỗi chúng ta vẫn bàn thảo lý thuyết sinh hoạt bên trên. Tuy nhiên, Mã Sản Phẩm không tương thích 100%, cho nên nó đang ko thể tạo ra mặt đường tuyến tính.

Trung bình diện tích không đúng số

Để đánh giá cường độ lỗi của một mô hình, bạn cũng có thể áp dụng Mean Squared Error. Đây là một trong những phương pháp nhằm đo trung bình của ô vuông của không đúng số. Về cơ phiên bản, nó vẫn kiểm soát sự biệt lập thân quý hiếm thực tiễn cùng quý hiếm dự đoán thù. Để áp dụng nó, chúng ta có thể áp dụng hàm bình phương vừa đủ không đúng 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_demo, Y_pred)print(mse)công dụng thừa nhận được

28.5413672756

Tđắm đuối 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/