LINEAR REGRESSION LÀ GÌ

  -  

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

Tuổi = 5 + Chiều cao * 10 + Trọng lượng * 13Ở đó chính ta đang cấu hình thiết lập 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 trong ví dụ hết sức cơ bạn dạng của Hồi quy.

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

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

Introduction

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

Chuẩn bị

Để bước đầ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 quan niệm toán thù học tập về những thống kê.

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

Không một kích cỡ làm sao phù hợp mang đến tất cả, vấn đề này cũng giống so với Hồi quy đường tính. Để hài lòng hồi quy con đường tính, dữ liệu đề xuất tán đồng một vài ba giả định quan trọng đặc biệt. Nếu dữ liệu của doanh nghiệp ko làm theo các mang định, tác dụng của chúng ta cũng có thể sai cũng nhỏng tạo đọc nhầm.

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

Trong khi áp dụng hồi quy tuyến tính, phương châm của bọn họ là để triển khai sao một mặt đường trực tiếp rất có thể tạo được sự phân bố gần nhất cùng với phần lớn các điểm. Do kia làm bớt khoảng cách (sai số) của những điểm dữ liệu cho đến đường đó.

*

lấy ví dụ như, ở những điểm sinh hoạt hình trên (trái) màn trình diễn những điểm tài liệu không giống nhau và đường trực tiếp (bên phải) đại diện cho 1 con đường giao động hoàn toàn có thể phân tích và lý giải mối quan hệ giữa các trục x và y. Thông qua, hồi quy con đường tính bọn họ cố gắng đưa ra một đường điều đó. lấy ví dụ như, nếu như bọn họ tất cả một đổi mới dựa vào Y với một trở thành hòa bình X - mối quan hệ giữa X cùng Y hoàn toàn có thể được trình diễn bên dưới dạng phương trình sau:

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

Y = Biến phụ thuộcX = biến hóa độc lậpΒ0 = Hằng sốΒ1 = Hệ số mối quan hệ thân 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 mức độ vừa phải của thay đổi tự do (x) tương tự như trung bình của đổi mới dựa vào (y)Đường hồi qui buổi tối tphát âm hóa tổng của "Diện tích những sai số". Đó là nguyên nhân tại vì sao cách thức hồi quy tuyến tính được Gọi là "Ordinary Least Square (OLS)"Β1 lý giải sự biến hóa trong Y với sự biến đổi X bởi một đơn vị. Nói cách không giống, nếu như bọn họ đội giá trị của X vày một đơn vị thì nó đang là việc biến hóa cực hiếm của YTìm con đường hồi quy tuyến đường tính

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

lấy một ví dụ, trả sử chúng ta mong mỏi dự đoán y từ bỏ x vào bảng sau và đưa sử rằng pmùi hương trình hồi quy của bọn họ vẫn 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 x3.02765
Độ lệch chuẩn y6.617317
Trung bình x5.5
Trung bình y9.7
Tương quan tiền x cùng y.989938

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

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

B1 = 2,64B0 = -2,2Do kia, phương trình hồi quy duy nhất sẽ biến hóa -

Y = -2,2 + 2,64 * xHãy xem, dự đân oán của chúng ta ra sao bằng phương pháp áp dụng phương thơm 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 dữ liệu nhằm phù hợp với một con đường thẳng thì dự đân oán của bọn họ vẫn đúng đắn lắm, cơ mà giả dụ họ thấy sự đối sánh thân "Y-Thưc tế" và "Y - Dự đoán" thì triển vọng sẽ rất cao do đó cả nhị series đã dịch chuyển cùng nhau với đó là biểu vật để hiển thị giá trị dự đoán:

*

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

Một khi chúng ta tạo mô hình, câu hỏi tiếp theo sau mang lại trong đầu là để tìm hiểu liệu mô hình của chúng ta có đầy đủ để dự đoán thù về sau hay những quan hệ nhưng mà chúng ta đã xây đắp giữa các đổi mới phụ thuộc với hòa bình là đầy đủ hay là không.

Vì mục đích này có nhiều chỉ số mà bọn họ buộc phải tsi khảo

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

*

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

Trong đó N là số quan tiếp giáp được thực hiện để phù hợp cùng với mô hình, σx là độ lệch chuẩn chỉnh của x, và σy là độ lệch chuẩn chỉnh của y.

R2 xấp xỉ trường đoản cú 0 đến 1.R2 của 0 nghĩa là trở thành dựa vào cấp thiết dự đân oán được từ bỏ vươn lên là độc lậpR2 của một Có nghĩa là biến đổi phụ thuộc vào rất có thể được dự đoán nhưng không tồn tại sai số từ bỏ trở thành độc lậpMột R2 thân 0 cùng 1 chỉ ra cường độ nhưng mà vươn lên là phụ thuộc vào có thể dự đoán thù được. Một R2 của 0.trăng tròn Có nghĩa là đôi mươi Phần Trăm của pmùi hương sai vào Y có thể dự đoán được từ X; Một R2 của 0.40 tức là 40 xác suất là hoàn toàn có thể dự đoán thù v.v...

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

*

N: Tổng số quan sát

Mặc mặc dù RMSE là một trong những review xuất sắc cho các không đúng số dẫu vậy vụ việc cùng với nó là nó rất dễ bị ảnh hưởng vì phạm vi của biến hóa phụ thuộc vào của người sử dụng. Nếu biến phụ thuộc của người sử dụng gồm dải biến hóa thiên bé nhỏ, RMSE của các bạn sẽ tốt và trường hợp 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 nhằm đối chiếu thân những lần tái diễn khác nhau của tế bào hình

Mean Absolute Percentage Error (MAPE)

Để khắc phục và hạn chế hồ hết tiêu giảm của RMSE, các công ty đối chiếu phù hợp thực hiện MAPE đối với RMSE. MAPE mang lại không đúng số trong tỷ lệ tỷ lệ và cho nên đối chiếu được giữa những quy mô. Công thức tính MAPE có thể được viết nhỏng sau:

*

N: Tổng số quan sát

Hồi quy con đường tính nhiều biến

Cho cho ngày nay, bọn họ vẫn đàm đạo về kịch bản mà chúng ta chỉ có một biến độc lập. Nếu họ có không ít hơn một trở nên tự do, phương pháp phù hợp độc nhất là "Multiple Regression Linear" - Hồi quy đường tính nhiều biến

Sự khác biệt

Về cơ phiên bản không tồn tại sự biệt lập giữa hồi quy con đường tính "giản đơn" với "đa biến". Cả hai gần như thao tác làm việc theo đúng cách thức OLS với thuật toán thù để có được con đường hồi quy về tối ưu độc nhất vô nhị cũng giống như. Trong trường hợp sau, pmùi hương trình hồi quy sẽ sở hữu được một hình trạng nlỗi sau:

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

Bi: Các thông số không giống nhauXi: Các phát triển thành độc lập không giống nhau

Chạy hồi quy con đường tính bằng Pythanh mảnh scikit-Learn

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

Scikit-learn là một trong module Pyeo hẹp khỏe mạnh đến việc học tập trang bị. Nó cất hàm mang lại hồi quy, phân một số loại, phân nhiều, gạn lọc quy mô cùng sút kích chiều. Chúng ta sẽ mày mò module sklearn.linear_Model tất cả đựng "các method để triển khai hồi quy, trong số ấy giá trị phương châm vẫn là sự việc kết hợp tuyến tính của các đổi mới đầu vào".

Trong bài bác đăng này, bọn họ đang sử dụng bộ tài liệu Nhà nghỉ ngơi Boston, cỗ tài liệu chứa lên tiếng về cực hiếm thành phầm làm việc ngoại ô thị thành Boston. Tập dữ liệu này lúc đầu được đem từ bỏ thư viện StatLib được gia hạn trên Đại học tập Carnegie Mellon và hiện giờ đang tất cả trên UCI Machine Learning Repository.

Xem thêm: Chỉ Số S&Amp;P 500 Là Gì ? Hướng Dẫn Chi Tiết Về Cách Chơi S&P 500 Index

Khám phá cỗ tài liệu đơn vị Boston

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

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

*

Tiếp,

print(boston.data.shape)Trước tiên, bạn cũng có thể thuận tiện bình chọn shape của nó bằng phương pháp Hotline boston.data.shape và nó vẫn trả lại size của tập dữ liệu cùng với kích cỡ column.

*

Nhỏng bạn cũng có thể thấy nó trả về (506, 13), Có nghĩa là bao gồm 506 hàng dữ liệu cùng với 13 cột. Bây giờ đồng hồ họ 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 có thể sử dụng lệnh print(boston.DESCR) để kiểm tra description của tài liệu gắng vị mở website để đọc.

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

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

*

Hoặc các bạn teo 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 có column thương hiệu là PRICE.

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

*

Nếu bạn muốn nhìn những 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 nhằm train-test

Về cơ bản, trước lúc phân tách dữ liệu thành tập dữ liệu để train - test, bọn họ phải phân tách dữ liệu thành hai giá trị : quý giá đích với cực hiếm đoán trước. Hãy Gọi giá trị đích Y và những quý hiếm dự báo 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 dữ liệu để train cùng chạy thử cùng với snippet nlỗi sau.

X_train, X_demo, Y_train, Y_thử nghiệm = sklearn.cross_validation.train_test_split(X, Y, test_kích thước = 0.33, random_state = 5)print(X_train.shape)print(X_test.shape)print(Y_train.shape)print(Y_demo.shape)Nếu chúng ta kiểm soát shape của mỗi vươn lên là, bọn họ đã sở hữu bộ dữ liệu cùng với tập dữ liệu xem sét bao gồm Phần Trăm 66,66% so với dữ liệu train với 33,33% đối với dữ liệu demo.

*

Linear Regression

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

Xem thêm: Chỉ Báo Rsi - Cách Sử Dụng Rsi Đúng Chuẩn (Chi Tiết)

*

Thực tế thì xứng đáng lẽ thiết bị thị nghỉ ngơi bên trên phải tạo một con đường con đường tính nlỗi họ sẽ thảo luận lý thuyết sống bên trên. Tuy nhiên, Model không phù hợp 100%, cho nên vì vậy nó đang ko thể tạo nên đường tuyến đường tính.

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

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

28.5413672756

Tmê say khảo và 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/