Trong nội dung bài viết, bản thân đã ra mắt một trong số những thuật toán cơ bản độc nhất của Machine Learning. Đây là thuật tân oán Linear Regression (Hồi Quy Tuyến Tính) nằm trong đội Supervised learning ( Học gồm đo lường và thống kê ). Hồi quy con đường tính là một trong cách thức khôn xiết đơn giản và dễ dàng tuy nhiên đã có minh chứng được xem bổ ích đến một trong những lượng phệ các tình huống. Trong nội dung bài viết này, bạn sẽ tìm hiểu ra đúng đắn phương thức đường tính thao tác ra làm sao.Trong câu hỏi so với tài liệu, bạn sẽ tiếp xúc với thuật ngữ "Regression" ( Hồi quy ) cực kỳ tiếp tục. Trước khi đi sâu vào Hồi quy tuyến tính, hãy mày mò có mang Hồi quy trước vẫn. Hồi quy đó là một phương thức thống kê lại để 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 cùng một nhóm tập phù hợp các đổi mới hòa bình. lấy ví dụ :

Tuổi = 5 + Chiều cao * 10 + Trọng lượng * 13Tại đó chính ta vẫn cấu hình thiết lập mối 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ụ khôn cùng cơ bản của Hồi quy.

Bạn đang xem: Regression là gì

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

Introduction

"Hồi quy tuyến đường tính" là một cách thức những thống kê để hồi quy dữ liệu cùng với biến hóa phụ thuộc vào có mức giá trị liên tục trong những lúc các phát triển thành độc lập rất có thể gồm 1 trong nhị giá trị liên tiếp hay những cực hiếm phân một số loại. Nói cách không giống "Hồi quy tuyến tính" là một trong phương pháp để tham dự đoán biến đổi dựa vào (Y) dựa trên giá trị của trở thành tự do (X). Nó có thể được thực hiện cho những trường đúng theo họ muốn dự đoán một trong những lượng tiếp tục. Ví dụ, dự đân oán giao thông ở một cửa hàng bán 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 vẫn truy vấn vào một trong những website nào đó 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 quan niệm toán thù học về thống kê lại.

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

Không một form size làm sao cân xứng đến toàn bộ, điều đó cũng đúng đối với Hồi quy con đường tính. Để vừa lòng hồi quy con đường tính, dữ liệu phải chấp nhận một vài ba đưa định đặc biệt. Nếu tài liệu của người tiêu dùng không tuân theo các đưa định, công dụng của bạn có thể sai ai cũng nhỏng khiến phát âm nhầm.

Tuyến tính và Thêm vào : Nên có một quan hệ tuyến tính giữa vươn lên là chủ quyền cùng trở nên ko tự do và tác động của việc biến hóa trong cực hiếm của những biến độc lập đề nghị ảnh hưởng phân phối tới những phát triển thành nhờ vào.Tính bình thường của phân bổ các lỗi : Sự phân bổ sai khác thân những cực hiếm thực với quý giá dự đoán thù (không đúng số) yêu cầu được phân chia một cách bình thường.Sự tương đồng: Phương thơm không đúng của những lỗi đề xuất là một trong những quý hiếm không thay đổi so 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: Các không nên số (dư) không nên bao gồm ngẫu nhiên mọt tương quan như thế nào thân chúng. Ví dụ: Trong trường đúng theo dữ liệu theo chuỗi thời hạn, tránh việc bao gồm sự đối sánh thân các không nên số thường xuyên nhau.Đường hồi quy tuyến đường tính

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

*

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

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

Y = Biến prúc thuộcX = biến độc lậpΒ0 = Hằng sốΒ1 = Hệ số quan hệ thân X với YMột vài ba đặc điểm của hồi quy đườ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ư mức độ vừa phải của biến 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 không đúng số". Đó là lý do vì sao phương thức hồi quy đường tính được Điện thoại tư vấn là "Ordinary Least Square (OLS)"Β1 giải thích sự thay đổi vào Y với sự biến đổi X bởi một đơn vị chức năng. Nói cách không giống, nếu như bọn họ tăng giá trị của X vì chưng một đơn vị thì nó đang là việc chuyển đổi giá trị của YTìm đường hồi quy con đường tính

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

ví dụ như, trả sử bọn họ ước ao dự đân oán y từ bỏ x vào bảng sau cùng giả sử rằng phương trình hồi quy của bọn họ sẽ 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 đâ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 liêu x cùng y.989938

Nếu họ minh bạch các Tổng còn lại của diện tích sai số (RSS) tương ứng cùng với B0 và B1 cùng tương đương cùng với các tác dụng bằng ko, họ đã có được các pmùi hương trình sau đây nlỗi là một trong những kết quả:

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

B1 = 2,64B0 = -2,2Do đó, phương trình hồi quy tốt nhất sẽ đổi thay -

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 pmùi hươ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 để tương xứng với một con đường thẳng thì dự đân oán của chúng ta vẫn đúng đắn lắm, tuy nhiên ví như họ thấy sự đối sánh tương quan giữa "Y-Thưc tế" với "Y - Dự đoán" thì triển vọng sẽ khá cao vì vậy cả hai series sẽ dịch rời với mọi người trong nhà và đây là biểu thiết bị nhằm hiển thị cực hiếm dự đoán:

*

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

Một khi chúng ta kiến tạo mô hình, câu hỏi tiếp theo sau đến vào đầu là để biết liệu quy mô của công ty gồm đầy đủ để tham dự đoán sau đây Hay những mối quan hệ mà các bạn vẫn tạo thân các biến hóa nhờ vào và hòa bình là đủ hay không.

Vì mục tiêu này có tương đối 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 S (TSS): TSS là một trong những phnghiền đo tổng biến hóa thiên trong phần trăm đáp ứng / biến phụ thuộc Y với rất có thể được xem là con số thay đổi thiên vốn tất cả trong đáp ứng trước lúc hồi quy được tiến hành.Sum of Squares (RSS): RSS tính toán lượng thay đổi còn lại không giải thích được sau khi tiến hành hồi quy.(TSS - RSS) đo lường và thống kê mức độ biến đổi vào thỏa mãn nhu cầu được phân tích và lý giải (hoặc một số loại bỏ) bằng cách tiến hành hồi quy

Trong đó N là số quan lại tiếp giáp được áp dụng để cân xứng với quy mô, σx là độ lệch chuẩn của x, với σy là độ lệch chuẩn chỉnh của y.

R2 giao động trường đoản cú 0 đến 1.R2 của 0 tức là trở thành dựa vào không thể dự đân oán được tự phát triển thành độc lậpR2 của một tức là vươn lên là phụ thuộc vào có thể được dự đoán mà không tồn tại không đúng số từ đổi mới độc lậpMột R2 giữa 0 với 1 chỉ ra rằng cường độ nhưng mà trở thành dựa vào có thể dự đoán được. Một R2 của 0.trăng tròn tức là trăng tròn tỷ lệ của pmùi hương không nên vào Y hoàn toàn có thể dự đoán được trường đoản cú 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 biết thêm cường độ phân tán các quý hiếm dự đân oán từ bỏ những quý giá thực tế. 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á xuất sắc cho các không đúng số nhưng lại sự việc cùng với nó là nó rất giản đơn bị ảnh hưởng do phạm vi của đổi mới dựa vào của chúng ta. Nếu biến hóa phụ thuộc của doanh nghiệp bao gồm dải thay đổi thiên thon, RMSE của bạn sẽ rẻ với trường hợp biến chuyển phụ thuộc gồm phạm vi rộng lớn RMSE đã cao. Do đó, RMSE là một vài liệu tốt để đối chiếu thân các lần lặp lại không giống nhau của mô hình

Mean Absolute Percentage Error (MAPE)

Để khắc phục và hạn chế phần lớn hạn chế của RMSE, các công ty phân tích ưa thích thực hiện MAPE so với RMSE. MAPE đến không đúng số vào tỷ lệ Xác Suất và cho nên vì thế đối chiếu được thân các quy mô. 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 tính nhiều biến

Cho mang lại bây chừ, họ sẽ trao đổi về kịch bản nhưng bọn họ chỉ gồm một biến đổi hòa bình. Nếu họ có nhiều hơn một biến độc lập, cách thức cân xứng tốt nhất là "Multiple Regression Linear" - Hồi quy tuyến tính đa biến

Sự không giống biệt

Về cơ bản không có sự khác hoàn toàn thân hồi quy đường tính "giản đơn" với "nhiều biến". Cả nhì hầu hết thao tác làm việc tuân theo hiệ tượng OLS và thuật tân oán để sở hữu được con đường hồi quy về tối ưu duy nhất tương tự như. Trong ngôi trường hợp sau, phươ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.....Ở trên đây,

Bi: Các hệ số không giống nhauXi: Các trở thành độc lập khác nhau

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

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

Scikit-learn là 1 module Pybé trẻ khỏe mang đến bài toán học vật dụng. Nó đựng hàm mang lại hồi quy, phân nhiều loại, phân cụm, gạn lọc quy mô với bớt kích chiều. Chúng ta vẫn tìm hiểu module sklearn.linear_mã sản phẩm gồm cất "các method để thực hiện hồi quy, trong đó quý giá mục tiêu sẽ là sự phối kết hợp tuyến đường tính của các biến đầu vào".

Trong bài đăng này, họ vẫn thực hiện bộ tài liệu Nhà nghỉ ngơi Boston, bộ dữ liệu đựng công bố về giá trị thành quả sinh sống ngoại thành thị thành Boston. Tập tài liệu này thuở đầu được rước từ thư viện StatLib được duy trì tại Đại học Carnegie Mellon và hiện nay đang gồm bên trên UCI Machine Learning Repository.

Xem thêm: Những Usb 3G Tốc Độ Cao Nhất Là Bao Nhiêu Loại 4G, Tốc Độ Như Thế Nào?

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

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

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

*

Tiếp,

print(boston.data.shape)Trước tiên, bạn cũng có thể dễ ợt kiểm soát shape của chính nó bằng cách điện thoại tư vấn boston.data.shape với nó sẽ trả lại kích cỡ của tập dữ liệu cùng với form size column.

*

Nlỗi chúng ta có thể thấy nó trả về (506, 13), tức là bao gồm 506 sản phẩm dữ liệu cùng với 13 cột. Bây giờ bọn họ muốn biết 13 cột là gì. Chúng ta đã chạy đoạn code sau :

print(boston.feature_names)

*

Quý Khách rất có thể sử dụng lệnh print(boston.DESCR) nhằm bình chọn mô tả tìm kiếm của dữ liệu núm vì chưng mnghỉ ngơi website để hiểu.

Tiếp, convert tài liệu về dạng pandas! Rất dễ dàng, Call hàm pd.DataFrame() với truyền boston.data. Chúng ta rất có thể kiểm soát 5 dữ liệu thứ nhất bởi bos.head().

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

*

Hoặc các bạn co thể cần 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 tồn tại column thương hiệu 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 có nhu cầu quan sát các số liệu tổng hòa 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 dạng, trước khi phân chia tài liệu thành tập dữ liệu để train - demo, họ bắt buộc phân tách dữ liệu thành nhì quý giá : cực hiếm đích cùng quý giá đoán trước. Hãy call quý giá đích Y cùng những quý giá đ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ũng có thể split dữ liệu để train với kiểm tra cùng với snippet nlỗi sau.

X_train, X_thử nghiệm, Y_train, Y_test = sklearn.cross_validation.train_test_split(X, Y, test_form size = 0.33, random_state = 5)print(X_train.shape)print(X_demo.shape)print(Y_train.shape)print(Y_kiểm tra.shape)Nếu bọn họ chất vấn shape của từng đổi thay, bọn họ đã sở hữu bộ tài liệu với tập dữ liệu thể nghiệm có phần trăm 66,66% đối với tài liệu train và 33,33% so với tài liệu chạy thử.

*

Linear Regression

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

from sklearn.linear_model 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ã bên trên đang cân xứng với cùng một quy mô dựa vào X_train và Y_train. Bây giờ đồng hồ Cửa Hàng chúng tôi đang bao gồm quy mô tuyến tính, chúng ta đã nỗ lực dự đoán nó cho X_demo với các quý hiếm dự đoán thù sẽ được lưu giữ vào Y_pred. Để tưởng tượng sự khác hoàn toàn thân giá chỉ thực tiễn và quý giá dự đân oán, Shop chúng tôi cũng tạo ra một bảng biểu .

*

Thực tế thì xứng đáng lẽ đồ dùng thị sinh hoạt trên phải khởi tạo một con đường con đường tính nhỏng họ đang đàm đạo kim chỉ nan làm việc trên. Tuy nhiên, Mã Sản Phẩm không phù hợp 100%, vì thế nó sẽ ko thể tạo nên đường tuyến tính.

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

Để đánh giá mức độ lỗi của một quy mô, chúng ta có thể áp dụng Mean Squared Error. Đây là 1 trong số phương thức nhằm đo vừa phải của ô vuông của sai số. Về cơ bạn dạng, nó vẫn đánh giá sự khác biệt giữa quý giá thực tế và quý hiếm dự đoán. Để sử dụng nó, bạn cũng có thể sử dụng hàm bình pmùi hương vừa đủ không đúng 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 dìm được

28.5413672756

Tmê mẩn 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/

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *