HỒI QUY TUYẾN TÍNH LÀ GÌ

     

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

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

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

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

Introduction

"Hồi quy tuyến tính" là một phương pháp thống kê nhằm hồi quy dữ liệu với biến phụ thuộc vào có giá chỉ trị liên tục trong khi các biến chủ quyền có thể có 1 trong các hai giá chỉ trị tiếp tục hoặc là quý giá phân loại. Có thể nói rằng "Hồi quy con đường tính" là một phương thức để dự kiến biến phụ thuộc (Y) dựa trên giá trị của biến hòa bình (X). Nó rất có thể được sử dụng cho các trường hợp chúng ta muốn dự đoán một số trong những lượng liên tục. Ví dụ, dự đoán giao thông ở một shop bán lẻ, dự đoán thời hạn người dùng dừng lại một trang nào kia hoặc số trang đã truy vấn vào một website nào kia v.v...

Chuẩn bị

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

Tương quan (r) - giải thích mối tình dục giữa nhị biến, giá trị rất có thể chạy tự -1 mang lại +1Phương không đúng (σ2) - Đánh giá bán độ phân tán trong 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 sai)Phân phối chuẩnSai số (lỗi) - giá trị thực tế - cực hiếm dự đoánGiả định

Không một form size nào phù hợp cho vớ cả, điều đó cũng đúng so với Hồi quy con đường tính. Để đồng tình hồi quy tuyến tính, dữ liệu nên thoả nguyện một vài trả định quan lại trọng. Nếu như dữ liệu của người sử dụng không làm theo các trả định, kết quả của bạn có thể sai cũng giống như gây đọc nhầm.

Tuyến tính và Thêm vào : Nên có một mối quan hệ tuyến tính giữa biến tự do và biến hóa không tự do và ảnh hưởng của sự biến hóa trong giá bán trị của những biến hòa bình nên ảnh hưởng thêm vào tới các biến phụ thuộc.Tính thông thường của phân bổ các lỗi : Sự phân chia sai không giống giữa các giá trị thực cùng giá trị dự kiến (sai số) nên được phân bổ một giải pháp bình thường.Sự tương đồng: Phương sai của những lỗi nên là một trong những giá trị không đổi so cùng với ,Thời gianDự đoánGiá trị của những biến độc lậpSự độc lập về thống kê của những lỗi: những sai số (dư) không nên có ngẫu nhiên mối đối sánh nào giữa chúng. Ví dụ: vào trường hợp tài liệu theo chuỗi thời gian, tránh việc có sự đối sánh giữa các sai số thường xuyên nhau.Đường hồi quy đường tính

Trong khi thực hiện hồi quy tuyến tính, kim chỉ nam của bọn họ là để làm sao một đường thẳng rất có thể tạo được sự phân bố gần nhất với phần nhiều các điểm. Do đó làm giảm khoảng cách (sai số) của các điểm dữ liệu cho đến đường đó.

*

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

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

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

Sử dụng mức sử dụng thống kê ví dụ như Excel, R, SAS ... Bạn sẽ trực tiếp tìm hằng số (B0 với B1) như là tác dụng của hàm hồi quy tuyến đường tính. Như định hướng ở trên, nó chuyển động trên tư tưởng OLS và nỗ lực giảm bớt diện tích s sai số, các công nắm này sử dụng các gói ứng dụng tính các hằng số này.

Ví dụ, giả sử bọn họ muốn dự kiến y trường đoản cú x vào bảng sau với giả sử rằng phương trình hồi quy của bọn họ sẽ 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

Ở đây,

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

Nếu chúng ta phân biệt các Tổng còn lại của diện tích sai số (RSS) khớp ứng với B0 & B1 và tương đương với các kết quả bằng không, bọn họ có được những phương trình dưới đây như là 1 trong những kết quả:

B1 = đối sánh * ( Độ 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 quý giá từ bảng 1 vào những phương trình trên,

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

Y = -2,2 + 2,64 * xHãy xem, dự kiến của chúng ta như cố nào bằng cách sử dụng 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ỉ với 10 điểm dữ liệu để cân xứng với một con đường thẳng thì dự kiến của chúng ta sẽ đúng mực lắm, nhưng mà nếu bọn họ 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 vì thế cả nhị series đang dịch rời cùng nhau và đó là biểu đồ nhằm hiển thị giá trị dự đoán:

*

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

Một khi chúng ta xây dựng mô hình, câu hỏi tiếp theo mang đến trong đầu là để tìm hiểu liệu mô hình của công ty có đủ để tham dự đoán sau này hoặc là quan hệ mà các bạn đã xuất bản giữa những biến phụ thuộc vào và chủ quyền là đầy đủ hay không.

Vì mục tiêu này có nhiều chỉ số mà họ cần tham khảo

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

*

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

Trong kia N là số quan liền kề được sử dụng để phù hợp với mô hình, σx là độ lệch chuẩn của x, cùng σy là độ lệch chuẩn của y.

R2 xấp xỉ từ 0 đến 1.R2 của 0 tức thị biến nhờ vào không thể dự đoán được từ đổi thay độc lậpR2 của 1 có nghĩa là biến phụ thuộc có thể được dự kiến mà không tồn tại sai số từ đổi mới độc lậpMột R2 giữa 0 cùng 1 chỉ ra rằng mức độ mà trở thành phụ thuộc rất có thể dự đoán được. Một R2 của 0.20 có nghĩa là 20 phần trăm của phương không đúng trong Y có thể dự đoán được từ X; Một R2 của 0.40 có nghĩa là 40 xác suất là rất có thể dự đoán v.v...

Root Mean Square Error (RMSE)RMSE cho thấy mức độ phân tán những giá trị dự kiến từ những giá trị thực tế. Bí quyết tính RMSE là

*

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

Mặc dù RMSE là một review tốt cho các sai số nhưng sự việc với nó là nó rất dễ dàng bị ảnh hưởng bởi phạm vi của biến nhờ vào của bạn. Nếu trở nên phụ thuộc của bạn có dải thay đổi thiên hẹp, RMSE của bạn sẽ thấp cùng nếu biến dựa vào có phạm vi rộng lớn RMSE vẫn cao. Bởi đó, RMSE là một vài liệu xuất sắc để đối chiếu giữa những lần lặp lại khác nhau của tế bào hình

Mean Absolute Percentage Error (MAPE)

Để hạn chế những hạn chế của RMSE, những nhà so với thích thực hiện MAPE so với RMSE. MAPE cho sai số trong tỷ lệ phần trăm và vì chưng đó so sánh được giữa các mô hình. Bí quyết tính MAPE có thể được viết như sau:

*

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

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

Cho mang đến hiện tại, họ đã bàn luận về kịch bản mà họ chỉ tất cả một biến đổi độc lập. Nếu họ có nhiều hơn thế nữa một biến độc lập, cách thức phù hợp nhất là "Multiple Regression Linear" - Hồi quy tuyến tính đa biến

Sự khác biệt

Về cơ bạn dạng không tất cả sự khác hoàn toàn giữa hồi quy con đường tính "giản đơn" cùng "đa biến". Cả nhị đều thao tác làm việc tuân theo nguyên tắc OLS cùng thuật toán để có được đường hồi quy tối ưu độc nhất vô nhị cũng tương tự. Trong trường hợp sau, phương trình hồi quy sẽ có được một mẫu thiết kế như sau:

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

Bi: những hệ số khác nhauXi: những biến chủ quyền khác nhau

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

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

Scikit-learn là một trong module Python mạnh mẽ cho việc học máy. Nó cất hàm mang đến hồi quy, phân loại, phân cụm, lựa chọn quy mô và bớt kích chiều. Chúng ta sẽ tìm hiểu module sklearn.linear_model có chứa "các method để tiến hành hồi quy, trong những số đó giá trị phương châm sẽ là sự kết hợp tuyến tính của các biến đầu vào".

Trong bài xích đăng này, bọn họ sẽ sử dụng bộ dữ liệu nhà tại Boston, bộ dữ liệu chứa thông tin về giá trị item ở ngoại ô thành phố Boston. Tập tài liệu này ban đầu được rước từ tủ sách StatLib được gia hạn tại Đại học tập Carnegie Mellon và bây giờ đã bao gồm trên UCI Machine Learning Repository.

Xem thêm: Từ Ngất Ngưởng Là Gì ? Hiểu Thêm Văn Hóa Việt Ngất Ngưỡng Là Gì

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

Bộ Dữ liệu nhà tại Boston bao gồm giá nhà tại những nơi khác biệt ở Boston. Cùng với giá cả, tập dữ liệu cũng đưa thông tin như tầy (CRIM), các khu vực kinh doanh không-bán-lẻ ở thị trấn (INDUS), tuổi chủ download ngôi công ty (AGE) và có khá nhiều thuộc tính khác tất cả sẵn ở đây .Bộ tài liệu chính nó có thể down từ trên đây . Mặc dù nhiên, vì chúng ta sử 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 hết, chúng ta sẽ import bộ dữ liệu Boston Housing và lưu trữ nó vào một biến chuyển gọi là boston. Để import nó từ bỏ scikit-learn, chúng ta sẽ cần được chạy đoạn mã này.

from sklearn.datasets import load_bostonboston = load_boston()Biến boston là 1 dạng trường đoản cú điển, vày vậy bạn cũng có thể kiểm tra key của nó sử dụng đoạn mã bên dưới.

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

*

Tiếp,

print(boston.data.shape)Trước tiên, chúng ta cũng có thể dễ dàng soát sổ shape của nó bằng phương pháp gọi boston.data.shape với nó đã trả lại kích thước của tập tài liệu với form size column.

*

Như bạn 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ờ chúng ta mong mỏi biết 13 cột là gì. Chúng ta sẽ chạy đoạn code sau :

print(boston.feature_names)

*

Bạn rất có thể dùng lệnh print(boston.DESCR) để đánh giá description của tài liệu thay do mở web nhằm đọc.

Tiếp, convert tài liệu về dạng pandas! Rất solo giản, gọi hàm pd.DataFrame() và truyền boston.data. Bạn cũng có thể kiểm tra 5 dữ liệu trước tiên 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 tên 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ẽ địa chỉ nó vào thực hiện đoạn mã trên

*

Nếu bạn có nhu cầu nhìn những số liệu tổng vừa lòng thống kê, hãy chạy đoạn mã sau .

print(bos.describe())

*

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

Về cơ bản, trước lúc chia tài liệu thành tập tài liệu để train - test, chúng ta cần chia tài liệu thành hai giá trị : giá trị đích và quý hiếm dự báo. Hãy điện thoại tư vấn giá trị đích Y và các giá trị 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ờ chúng ta có thể split dữ liệu để train và demo với snippet như sau.

X_train, X_test, Y_train, Y_test = sklearn.cross_validation.train_test_split(X, Y, test_size = 0.33, random_state = 5)print(X_train.shape)print(X_test.shape)print(Y_train.shape)print(Y_test.shape)Nếu bọn họ kiểm tra shape của từng biến, họ đã đã đạt được bộ tài liệu với tập tài liệu thử nghiệm có phần trăm 66,66% so với dữ liệu train và 33,33% so với dữ liệu test.

*

Linear Regression

Tiếp, họ sẽ chạy hồi quy tuyến tính.

from sklearn.linear_model 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ã trên sẽ cân xứng với một mô hình dựa bên trên X_train và Y_train. Bây giờ chúng tôi đã có quy mô tuyến tính, chúng ta sẽ nỗ lực dự đoán nó cho X_test và những giá trị dự kiến sẽ được giữ trong Y_pred. Để hình dung sự khác biệt giữa giá thực tiễn và giá trị dự đoán, cửa hàng chúng tôi cũng tạo ra một bảng biểu .

Xem thêm: Người Bản Ngữ Là Gì ? Mẹo Tìm Giáo Viên Bản Ngữ Hiệu Quả

*

Thực tế thì xứng đáng lẽ đồ vật thị sinh hoạt trên phải lập một con đường tuyến tính như bọn họ đã bàn luận lý thuyết ở trên. Mặc dù nhiên, model không thích hợp 100%, vì thế nó đang ko thể tạo được đường con đườ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, bạn có thể sử dụng Mean Squared Error. Đây là một trong các cách thức để đo vừa phải của ô vuông của không đúng số. Về cơ bản, nó sẽ bình chọn sự khác hoàn toàn giữa giá bán trị thực tiễn và quý giá dự đoán. Để thực hiện nó, chúng ta có thể sử dụng hàm bình phương 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_test, Y_pred)print(mse)kết quả nhấn được

28.5413672756

Tham 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/