LINEAR REGRESSION LÀ GÌ

      318

Trong bài viết, mình sẽ giới thiệu một trong số những thuật toán thù cơ bạn dạng độc nhất vô nhị của Machine Learning. Đây là thuật toán Linear Regression (Hồi Quy Tuyến Tính) trực thuộc team Supervised learning ( Học gồm tính toán ). Hồi quy tuyến đường tính là một cách thức khôn xiết đơn giản tuy vậy đã làm được chứng tỏ được tính có lợi mang đến một số lượng Khủng những tình huống. Trong nội dung bài viết này, các bạn sẽ khám phá ra chính xác phương pháp đường tính thao tác làm việc như thế nào.Trong Việc phân tích tài liệu, các bạn sẽ xúc tiếp với thuật ngữ "Regression" ( Hồi quy ) rất liên tục. Trước lúc đi sâu vào Hồi quy đường tính, hãy tìm hiểu khái niệm Hồi quy trước vẫn. Hồi quy chính là một phương thức thống kê lại để thiết lập cấu hình mối quan hệ giữa một đổi mới phụ thuộc vào với một đội tập đúng theo những trở thành tự do. ví dụ như :

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

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

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

Introduction

"Hồi quy con đường tính" là một cách thức những thống kê nhằm hồi quy tài liệu cùng với biến chuyển dựa vào có mức giá trị tiếp tục trong khi những biến hòa bình hoàn toàn có thể bao gồm 1 trong nhị giá trị liên tục hay những cực hiếm phân loại. Nói phương pháp không giống "Hồi quy con đường tính" là 1 trong những phương pháp để tham gia đoán trở thành nhờ vào (Y) dựa vào giá trị của vươn lên là độc lập (X). Nó hoàn toàn có thể được áp dụng cho những trường vừa lòng bọn họ hy vọng dự đoán một số lượng liên tiếp. lấy ví dụ như, dự đân oán giao thông ở một shop bán lẻ, dự đân oán thời hạn người tiêu dùng dừng lại một trang làm sao đó hoặc số trang sẽ truy cập vào trong 1 website nào kia v.v...

Chuẩn bị

Để bắt đầu cùng với Hồi quy tuyến tính, chúng ta hãy đi lướt qua một số trong những tư tưởng tân oán học về những thống kê.

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

Không một kích thước làm sao phù hợp cho tất cả, vấn đề đó cũng giống so với Hồi quy tuyến đường tính. Để hài lòng hồi quy con đường tính, dữ liệu phải tán thành một vài ba đưa định đặc biệt quan trọng. Nếu dữ liệu của người sử dụng không làm theo những trả định, công dụng của chúng ta có thể sai ai cũng nlỗi khiến hiểu nhầm.

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

Trong khi sử dụng hồi quy tuyến đường tính, mục tiêu của chúng ta là để gia công sao một mặt đường thẳng rất có thể tạo ra sự phân bổ sớm nhất cùng với phần nhiều các điểm. Do đó làm sút khoảng cách (không đúng số) của những điểm tài liệu cho đến đường kia.

*

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

Y = Β0 + Β1*XTại phía trên,

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

Sử dụng chính sách thống kê lại ví như Excel, R, SAS ... các bạn sẽ trực tiếp tìm hằng số (B0 và B1) như là tác dụng của hàm hồi quy con đường tính. Nlỗi kim chỉ nan ngơi nghỉ trên, nó vận động bên trên có mang OLS với nỗ lực giảm sút diện tích sai số, những luật pháp này sử dụng các gói phần mềm tính các hằng số này.

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

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

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

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

B1 = 2,64B0 = -2,2Do đó, phương trình hồi quy duy nhất vẫn đổi mới -

Y = -2,2 + 2,64 * xHãy coi, dự đân oán của họ thế nào bằng cách thực hiện phương trình này

xY -giá trị 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 dữ liệu để tương xứng với 1 đường thẳng thì dự đoán thù của bọn họ sẽ đúng đắn lắm, tuy nhiên ví như bọn họ thấy sự đối sánh thân "Y-Thưc tế" với "Y - Dự đoán" thì triển vọng sẽ khá cao do đó cả nhì series đang di chuyển cùng nhau với đây là biểu đồ 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 chúng ta thiết kế mô hình, câu hỏi tiếp theo đến trong đầu là để hiểu liệu mô hình của công ty tất cả đầy đủ để tham dự đân oán sau đây hoặc là mối quan hệ nhưng mà bạn đang kiến thiết giữa các đổi thay nhờ vào và chủ quyền là đầy đủ hay không.

Vì mục tiêu này có nhiều chỉ số nhưng mà chúng ta đề xuất tđam mê khảo

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

*

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

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

R2 xấp xỉ trường đoản cú 0 cho 1.R2 của 0 tức là biến chuyển phụ thuộc cần yếu dự đân oán được từ biến đổi độc lậpR2 của một tức là thay đổi phụ thuộc vào rất có thể được dự đân oán nhưng mà không có không đúng số từ bỏ đổi thay độc lậpMột R2 giữa 0 cùng 1 đã cho thấy cường độ mà lại đổi mới phụ thuộc vào hoàn toàn có thể dự đoán thù được. Một R2 của 0.20 Có nghĩa là trăng tròn tỷ lệ của phương thơm sai vào Y hoàn toàn có thể dự đoán thù được trường đoản cú X; Một R2 của 0.40 Tức là 40 Xác Suất là rất có thể dự đoán thù v.v...

Root Mean Square Error (RMSE)RMSE cho thấy cường độ phân tán các cực hiếm dự đân oán từ bỏ các cực 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 trong những nhận xét xuất sắc cho các không nên số dẫu vậy vụ việc với nó là nó rất dễ dàng bị ảnh hưởng bởi vì phạm vi của biến phụ thuộc vào của chúng ta. Nếu biến nhờ vào của người sử dụng gồm dải biến thiên không lớn, RMSE của các bạn sẽ phải chăng với ví như vươn lên là nhờ vào bao gồm phạm vi rộng RMSE đang cao. Do kia, RMSE là một vài liệu giỏi để so sánh giữa những lần lặp lại khác biệt của mô hình

Mean Absolute Percentage Error (MAPE)

Để hạn chế và khắc phục mọi giảm bớt của RMSE, những nhà phân tích thích hợp áp dụng MAPE so với RMSE. MAPE mang đến không nên số trong xác suất tỷ lệ và vì thế so sánh được giữa những mô hình. Công thức tính MAPE có thể được viết như sau:

*

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

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

Cho cho bây chừ, bọn họ đã bàn bạc về kịch phiên bản mà lại họ chỉ gồm một biến hóa hòa bình. Nếu chúng ta có rất nhiều rộng một biến hóa tự do, phương pháp cân xứng nhất là "Multiple Regression Linear" - Hồi quy đườ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 đường tính "giản đơn" và "đa biến". Cả nhị gần như làm việc theo đúng phép tắc OLS với thuật toán để có được đường hồi quy buổi tối ưu tuyệt nhất cũng như. Trong trường hòa hợp sau, phương trình hồi quy sẽ sở hữu được một kiểu dáng nlỗi sau:

Y=B0+B1*X1+B2*X2+B3*X3.....Tại phía trên,

Bi: Các hệ số khác nhauXi: Các đổi thay tự do khác nhau

Chạy hồi quy con đường tính bởi Pythuôn scikit-Learn

Ở bên trên, chúng ta vẫn hiểu được hồi quy đường tính là 1 trong nghệ thuật phổ cập và bạn cũng có thể thấy những pmùi hương trình toán học của hồi quy tuyến đường tính. Nhưng các bạn tất cả biết có tác dụng vậy nào để tiến hành một hồi quy đường tính vào Pynhỏ nhắn ?? Có một vài phương pháp để hoàn toàn có thể làm điều đó, chúng ta cũng có thể tiến hành hồi quy đường tính bằng phương pháp áp dụng các quy mô thống kê, numpy, scipy với sckit learn. Nhưng vào bài này bọn họ vẫn sử dụng sckit learn nhằm triển khai hồi quy tuyến đường tính.

Scikit-learn là một trong module Pythanh mảnh khỏe mạnh mang đến vấn đề học trang bị. Nó chứa hàm đến hồi quy, phân một số loại, phân nhiều, chọn lọc mô hình với sút kích chiều. Chúng ta đang khám phá module sklearn.linear_Model tất cả chứa "những method để thực hiện hồi quy, trong các số ấy giá trị kim chỉ nam sẽ là sự việc kết hợp tuyến tính của các biến đổi đầu vào".

Trong bài xích đăng này, họ sẽ thực hiện bộ tài liệu Nhà ngơi nghỉ Boston, bộ dữ liệu chứa đọc tin về giá trị thắng lợi sống ngoại ô thị thành Boston. Tập tài liệu này ban sơ được đem từ thỏng viện StatLib được gia hạn trên Đại học tập Carnegie Mellon và hiện nay đã gồm bên trên UCI Machine Learning Repository.

Xem thêm: Hướng Dẫn Chi Tiết Cách Lập Bảng Cân Đối Kế Toán Cuối Kỳ, Bài Tập Nguyên Lý Kế Toán Có Lời Giải

Khám phá bộ tài liệu bên Boston

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

print(boston.keys())Nó vẫn trả về nhỏng 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 cách Hotline boston.data.shape với nó đã trả lại kích thước của tập tài liệu cùng với kích thước column.

*

Như bạn có thể thấy nó trả về (506, 13), Tức là có 506 hàng dữ liệu cùng với 13 cột. Bây giờ đồng hồ chúng ta mong biết 13 cột là gì. Chúng ta sẽ chạy đoạn code sau :

print(boston.feature_names)

*

quý khách hoàn toàn có thể sử dụng lệnh print(boston.DESCR) nhằm kiểm tra mô tả tìm kiếm của dữ liệu ráng vày mngơi nghỉ web để gọi.

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

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

*

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

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

*

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

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

*

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

print(bos.describe())

*

Tách tài liệu để train-test

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

Y = Boston Housing PriceX = All other featuresX = bos.drop("PRICE", axis = 1)Y = bos<"PRICE">Bây tiếng bạn có thể split tài liệu để train và demo với snippet nhỏng sau.

X_train, X_kiểm tra, Y_train, Y_kiểm tra = sklearn.cross_validation.train_test_split(X, Y, test_kích thước = 0.33, random_state = 5)print(X_train.shape)print(X_chạy thử.shape)print(Y_train.shape)print(Y_test.shape)Nếu bọn họ bình chọn shape của từng đổi mới, họ đã có được cỗ dữ liệu với tập tài liệu phân tách có Tỷ Lệ 66,66% đối với dữ liệu train và 33,33% so với dữ liệu test.

*

Linear Regression

Tiếp, họ vẫn chạy hồi quy tuyến đườ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_test, 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 vẫn tương xứng với một mô hình dựa trên X_train cùng Y_train. Bây tiếng Cửa Hàng chúng tôi vẫn tất cả mô hình đường tính, chúng ta đang nỗ lực dự đân oán nó đến X_demo cùng các quý giá dự đoán sẽ được giữ trong Y_pred. Để tưởng tượng sự biệt lập giữa giá bán thực tiễn và quý giá dự đân oán, chúng tôi cũng tạo ra một bảng biểu .

*

Thực tế thì đáng lẽ trang bị thị sinh hoạt bên trên phải tạo lập một mặt đường tuyến tính như chúng ta sẽ luận bàn kim chỉ nan ngơi nghỉ trên. Tuy nhiên, Mã Sản Phẩm ko tương thích 100%, vì thế nó đang ko thể tạo ra mặt đường tuyến tính.

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

Để kiểm soát cường độ lỗi của một quy mô, chúng ta có thể áp dụng Mean Squared Error. Đây là một trong trong số phương pháp nhằm đo trung bình của ô vuông của sai số. Về cơ bạn dạng, nó vẫn soát sổ sự khác biệt thân cực hiếm thực tế cùng quý hiếm dự đoán. Để thực hiện nó, bạn có thể sử dụng hàm bình phương thơm trung bình không nên số của scikit-learn bằng cách chạy đoạn mã này

mse = sklearn.metrics.mean_squared_error(Y_thử nghiệm, Y_pred)print(mse)tác dụng nhấn được

28.5413672756

Tsay đắm 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/