Mọi thứ bạn cần biết về hồi quy tuyến tính! – hồi quy tuyến tính trong phân tích dữ liệu

Hướng dẫn toàn diện này sẽ giới thiệu cho bạn về Hồi quy tuyến tính cùng với việc triển khai bằng Python trên tập dữ liệu thế giới thực.

Bạn đang xem : hồi quy tuyến tính trong phân tích dữ liệu

Bài viết này đã được xuất bản như một phần của mục tiêu Blogathon về Khoa học Dữ liệu

  • Hồi quy tuyến tính là một thuật toán đơn giản nhưng mạnh mẽ và được sử dụng nhiều nhất trong khoa học dữ liệu.
  • Có rất nhiều ứng dụng trong thế giới thực của Hồi quy tuyến tính.
  • Hướng dẫn toàn diện này sẽ giới thiệu cho bạn về Hồi quy tuyến tính cùng với cách triển khai bằng Python trên tập dữ liệu thế giới thực.

Giới thiệu

Mô hình sử dụng các thuật toán máy học, trong đó máy học từ dữ liệu giống như con người

học hỏi từ kinh nghiệm của họ. Mô hình học máy có thể được chia rộng rãi thành hai loại

dựa trên thuật toán học tập, có thể được phân loại thêm dựa trên nhiệm vụ được thực hiện và

t

tính chất của kết quả đầu ra.

1. Phương pháp học tập có giám sát: Nó chứa dữ liệu trong quá khứ với các nhãn sau đó được sử dụng để xây dựng mô hình.

  • Hồi quy : Biến đầu ra được dự đoán về bản chất, ví dụ: điểm của một sinh viên, diam
  • Phân loại : Biến đầu ra được dự đoán về bản chất, ví dụ: phân loại các email đến là spam hoặc ham, Có hoặc Không, Đúng hoặc Sai, 0 hoặc 1.

2. Phương pháp học không giám sát: Nó không chứa các nhãn xác định trước được gán cho dữ liệu trong quá khứ.

  • Phân cụm : Không có nhãn xác định trước nào được gán cho các nhóm / cụm đã hình thành, ví dụ: phân khúc khách hàng.

Hồi quy tuyến tính là một thuật toán học có giám sát trong học máy hỗ trợ việc tìm kiếm mối tương quan giữa các biến. Kết quả hoặc đầu ra của bài toán hồi quy là một giá trị thực hoặc liên tục.

Trong bài viết này, chúng tôi sẽ trình bày một cách toàn diện về hồi quy tuyến tính và các thành phần của nó. Chúng ta sẽ xem xét hồi quy tuyến tính đơn giản và nhiều tuyến tính, tại sao nó lại quan trọng, các ứng dụng, nhược điểm của nó và sau đó đi sâu vào hồi quy tuyến tính bao gồm cách thực hiện nó bằng Python trên tập dữ liệu trong thế giới thực.

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

Hồi quy tuyến tính là một phương pháp hồi quy thống kê yên tĩnh và đơn giản nhất được sử dụng để phân tích dự đoán trong học máy. Hồi quy tuyến tính cho thấy mối quan hệ tuyến tính giữa biến độc lập (dự đoán), tức là trục X và biến phụ thuộc (đầu ra), tức là trục Y, được gọi là hồi quy tuyến tính Nếu có một biến đầu vào duy nhất X (biến phụ thuộc) , hồi quy tuyến tính như vậy được gọi là.

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

Đồ thị trên trình bày mối quan hệ tuyến tính giữa biến đầu ra (y) và biến dự đoán (X). Đường màu xanh lam được gọi là đường thẳng. Dựa trên các điểm dữ liệu đã cho, chúng tôi cố gắng vẽ một đường thẳng phù hợp nhất với các điểm.

o tính toán hồi quy tuyến tính dòng phù hợp nhất sử dụng dạng đánh chặn độ dốc truyền thống được đưa ra bên dưới,

Yi = β0 + β1Xi

trong đó Yi = Biến phụ thuộc, β0 = hằng số / Hệ số chặn, β1 = Độ dốc / Hệ số chặn, Xi = Biến độc lập .

Thuật toán này giải thích mối quan hệ tuyến tính giữa biến phụ thuộc (đầu ra) y và biến (dự đoán) độc lập X bằng cách sử dụng đường thẳng Y = B0 + B1 X.

Giải thích hồi quy tuyến tính đơn giản

Nhưng làm cách nào để hồi quy tuyến tính tìm ra đâu là đường phù hợp nhất?

Mục tiêu của thuật toán hồi quy tuyến tính là lấy giá trị tốt nhất cho B0 và B1 để tìm dòng phù hợp nhất. Dòng phù hợp nhất là dòng có ít lỗi nhất, nghĩa là sai số giữa giá trị dự đoán và giá trị thực tế phải là nhỏ nhất.

Lỗi ngẫu nhiên (Phần dư)

Trong hồi quy, sự khác biệt giữa giá trị quan sát của biến phụ thuộc ( yi ) và giá trị dự đoán ( dự đoán ) được gọi là phần dư. < / p>

εi = ypredicted yi

ở đâu ypredicted = B0 + B1 Xi

Dòng phù hợp nhất là gì?

Nói một cách dễ hiểu, đường phù hợp nhất là đường phù hợp nhất với biểu đồ phân tán đã cho theo cách tốt nhất. Về mặt toán học, đường phù hợp nhất có được bằng cách giảm thiểu Tổng bình phương còn lại (RSS).

Hàm chi phí cho hồi quy tuyến tính

hàm chi phí giúp tính ra các giá trị tối ưu cho B0 và B1, cung cấp dòng phù hợp nhất cho các điểm dữ liệu.

Trong Hồi quy tuyến tính, thường sử dụng hàm chi phí Lỗi bình phương trung bình (MSE) , là giá trị trung bình của lỗi bình phương xảy ra giữa ypredicted yi .

Chúng tôi tính MSE bằng phương trình tuyến tính đơn giản y = mx + b:

MSE

Sử dụng hàm MSE, chúng tôi sẽ cập nhật các giá trị của B0 và B1 để giá trị MSE ổn định ở cực tiểu. Các tham số này có thể được xác định bằng phương pháp giảm độ dốc để giá trị của hàm chi phí là nhỏ nhất.

Đổ dốc màu cho hồi quy tuyến tính

Gradient Descent là một trong những thuật toán tối ưu hóa nhằm tối ưu hóa hàm chi phí (hàm mục tiêu) để đạt được giải pháp tối thiểu tối ưu. Để tìm ra giải pháp tối ưu, chúng ta cần giảm hàm chi phí (MSE) cho tất cả các điểm dữ liệu. Điều này được thực hiện bằng cách cập nhật lặp đi lặp lại các giá trị của B0 và B1 cho đến khi chúng tôi nhận được giải pháp tối ưu.

Mô hình hồi quy tối ưu hóa thuật toán giảm độ dốc để cập nhật các hệ số của đường bằng cách giảm hàm chi phí bằng cách chọn ngẫu nhiên các giá trị hệ số và sau đó cập nhật lặp đi lặp lại các giá trị để đạt đến hàm chi phí tối thiểu.

Gradient Descent for Linear Regression

Hãy lấy một ví dụ để hiểu điều này. Hãy tưởng tượng một cái hố hình chữ U. Và bạn đang đứng ở điểm cao nhất của hố, và động cơ của bạn là chạm tới đáy hố. Giả sử có một kho báu ở dưới đáy hố, và bạn chỉ có thể đi một số bước rời rạc để đến được đáy. Nếu bạn chọn thực hiện từng bước một, cuối cùng bạn sẽ đến đáy của hố nhưng, điều này sẽ mất nhiều thời gian hơn. Nếu bạn quyết định thực hiện các bước lớn hơn mỗi lần, bạn có thể đạt được đáy sớm hơn nhưng có khả năng bạn có thể vượt quá đáy của hố và thậm chí không ở gần đáy. Trong thuật toán giảm dần độ dốc, số bước bạn đang thực hiện có thể được coi là tốc độ học tập và điều này quyết định tốc độ mà thuật toán hội tụ đến cực tiểu.

Gradient Descent for Linear Regression | minima and maxima

Để cập nhật B0 và B1, chúng ta lấy gradient từ hàm chi phí. Để tìm các gradient này, chúng tôi lấy các đạo hàm riêng cho B0 và B1.

Đổ dốc màu cho hồi quy tuyến tính | công thức

Chúng ta cần tối thiểu hóa hàm chi phí J. Một trong những cách để đạt được điều này là áp dụng thuật toán giảm độ dốc theo lô. Trong giảm độ dốc hàng loạt, các giá trị được cập nhật trong mỗi lần lặp. (Hai phương trình cuối cùng hiển thị việc cập nhật các giá trị)

Các dẫn xuất từng phần là các gradient, và chúng được sử dụng để cập nhật các giá trị của B0 và B1. Alpha là tỷ lệ học tập.

Số liệu đánh giá cho hồi quy tuyến tính

Có thể đánh giá sức mạnh của bất kỳ mô hình hồi quy tuyến tính nào bằng cách sử dụng các số liệu đánh giá khác nhau. Các chỉ số đánh giá này thường cung cấp thước đo về mức độ hiệu quả của các kết quả đầu ra quan sát được do mô hình tạo ra.

Các chỉ số được sử dụng nhiều nhất là,

  1. Hệ số xác định hoặc Bình phương R (R2)
  2. Lỗi bình phương gốc (RSME) và Lỗi chuẩn dư (RSE)

1. Hệ số xác định hoặc bình phương R (R2)

R-Squared là một con số giải thích lượng biến thể được giải thích / nắm bắt bởi mô hình đã phát triển. Nó luôn nằm trong khoảng từ 0 & amp; 1. Nhìn chung, giá trị bình phương R càng cao thì mô hình càng phù hợp với dữ liệu.

Về mặt toán học, nó có thể được biểu diễn dưới dạng,

R2 = 1 – (RSS / TSS)

  • Tổng dư của Bình phương (RSS) được định nghĩa là tổng bình phương của phần dư cho mỗi điểm dữ liệu trong biểu đồ / dữ liệu. Nó là thước đo sự khác biệt giữa sản lượng dự kiến ​​và sản lượng quan sát thực tế.

Tổng bình phương còn lại | Hồi quy tuyến tính

  • Tổng Bình phương (TSS) được định nghĩa là tổng sai số của các điểm dữ liệu từ giá trị trung bình của biến phản hồi. Về mặt toán học TSS là,

Tổng số Bình phương

trong đó y hat là giá trị trung bình của các điểm dữ liệu mẫu.

Ý nghĩa của bình phương R được thể hiện qua các số liệu sau,

r-bình phương ý nghĩa

2. Lỗi bình phương trung bình gốc

Lỗi bình phương trung bình gốc là căn bậc hai của phương sai của phần dư. Nó chỉ định mức độ phù hợp tuyệt đối của mô hình với dữ liệu, tức là mức độ gần của các điểm dữ liệu quan sát được với các giá trị dự đoán. Về mặt toán học, nó có thể được biểu diễn dưới dạng,

Lỗi bình phương gốc

Để ước tính này không bị chệch, người ta phải chia tổng bình phương của phần dư bình phương cho bậc tự do thay vì tổng số điểm dữ liệu trong mô hình. Thuật ngữ này sau đó được gọi là Lỗi tiêu chuẩn dư (RSE) . Về mặt toán học, nó có thể được biểu diễn dưới dạng,

Lỗi tiêu chuẩn dư

R bình phương là thước đo tốt hơn RSME. Vì giá trị của lỗi bình phương trung bình gốc phụ thuộc vào đơn vị của các biến (tức là nó không phải là thước đo chuẩn hóa), nó có thể thay đổi theo sự thay đổi đơn vị của các biến.

Các giả định của hồi quy tuyến tính

Hồi quy là một phương pháp tiếp cận tham số, có nghĩa là nó đưa ra các giả định về dữ liệu cho mục đích phân tích. Để phân tích hồi quy thành công, điều cần thiết là phải xác thực các giả định sau.

  1. Tính tuyến tính của phần dư : Cần có mối quan hệ tuyến tính giữa biến phụ thuộc và (các) biến độc lập.

Độ tuyến tính của phần dư

Tính độc lập của phần dư: Các thuật ngữ lỗi không được phụ thuộc vào nhau (như trong dữ liệu chuỗi thời gian, trong đó giá trị tiếp theo phụ thuộc vào giá trị trước đó). Không được có mối tương quan giữa các điều khoản còn lại. Sự vắng mặt của hiện tượng này được gọi là Tự tương quan.

Không được có bất kỳ mẫu hiển thị nào trong các cụm từ lỗi.

Tính độc lập của phần dư

3. Phân phối chuẩn của phần dư: Giá trị trung bình của phần dư phải tuân theo phân phối chuẩn với giá trị trung bình bằng 0 hoặc gần bằng không. Việc này được thực hiện để kiểm tra xem dòng đã chọn có thực sự là dòng phù hợp nhất hay không.
Nếu các cụm từ lỗi không được phân phối bình thường, chúng tôi gợi ý rằng có một vài điểm dữ liệu bất thường cần được nghiên cứu chặt chẽ để tạo ra một mô hình tốt hơn.

Phân phối chuẩn của phần dư

4. Phương sai bằng nhau của các phần dư: Các thuật ngữ sai số phải có phương sai không đổi. Hiện tượng này được gọi là Độ co giãn đồng nhất .

Sự hiện diện của phương sai không cố định trong các thuật ngữ lỗi được gọi là Phương sai thay đổi . Nói chung, phương sai không cố định phát sinh khi có.

Phương sai bằng nhau của phần dư

Giả thuyết trong hồi quy tuyến tính

Khi bạn đã điều chỉnh một đường thẳng trên dữ liệu, bạn cần hỏi, “ Đường thẳng này có phù hợp đáng kể cho dữ liệu không? ” hoặc “Tôi < b> s hệ số beta giải thích phương sai trong dữ liệu được vẽ? ” Và đây là ý tưởng về việc kiểm tra giả thuyết trên hệ số beta. Giả thuyết Không và Giả thuyết thay thế trong trường hợp này là:

H0: B1 = 0

HA: B1 0

Để kiểm tra giả thuyết này, chúng tôi sử dụng t-test, thống kê kiểm tra cho hệ số beta được đưa ra bởi,

Đánh giá độ phù hợp của mô hình

Một số tham số khác để đánh giá mô hình là:

  1. t thống kê: Nó được sử dụng để xác định giá trị p và do đó, giúp xác định xem hệ số có quan trọng hay không
  2. Thống kê F : Được sử dụng để đánh giá xem sự phù hợp của mô hình tổng thể có đáng kể hay không. Nói chung, giá trị của thống kê F càng cao, thì mô hình càng có ý nghĩa.

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

Hồi quy nhiều tuyến tính là một kỹ thuật để hiểu mối quan hệ giữa một biến phụ thuộc và các biến độc lập.

Công thức cho hồi quy nhiều tuyến tính cũng tương tự như hồi quy tuyến tính đơn giản với

thay đổi nhỏ thay vì chỉ có một biến beta, giờ đây bạn sẽ có betas cho tất cả các biến được sử dụng. Công thức được đưa ra là:

Y = B0 + B1X1 + B2X2 +… + BpXp + ε

Xem xét hồi quy nhiều tuyến tính

Tất cả bốn giả định được đưa ra cho Hồi quy tuyến tính đơn giản vẫn đúng với Hồi quy tuyến tính nhiều cùng với một số giả định bổ sung mới.

  1. Overfitting : Khi ngày càng nhiều biến được thêm vào một mô hình, mô hình có thể trở nên quá phức tạp và thường kết thúc bằng việc ghi nhớ tất cả các điểm dữ liệu trong tập huấn luyện. Hiện tượng này được gọi là quá mức của một mô hình. Điều này thường dẫn đến độ chính xác của quá trình đào tạo cao và độ chính xác của bài kiểm tra rất thấp.
  2. Đa cộng tuyến : Là hiện tượng một mô hình có một số biến độc lập, có thể có một số biến có quan hệ với nhau.
  3. Lựa chọn tính năng: Với nhiều biến số hiện có, việc chọn tập hợp các yếu tố dự đoán tối ưu từ nhóm các tính năng đã cho (nhiều tính năng có thể dư thừa) trở thành một nhiệm vụ quan trọng để xây dựng một mô hình phù hợp và tốt hơn.

Đa cộng tuyến

Vì tính đa cộng tuyến gây khó khăn cho việc tìm ra biến nào đang thực sự góp phần vào việc dự đoán biến phản ứng, nên nó dẫn đến kết luận không chính xác, tác động của một biến lên biến mục tiêu. Mặc dù nó không ảnh hưởng đến độ chính xác của các dự đoán, nhưng điều cần thiết là phải phát hiện và xử lý đúng cách đa cộng tuyến hiện diện trong mô hình, vì việc loại bỏ ngẫu nhiên bất kỳ biến nào trong số các biến tương quan này khỏi mô hình khiến các giá trị hệ số dao động dữ dội và thậm chí thay đổi dấu hiệu .

Có thể phát hiện đa cộng tuyến bằng các phương pháp sau.

  1. Tương quan theo cặp: Việc kiểm tra các mối tương quan theo cặp giữa các cặp biến độc lập khác nhau có thể cung cấp thông tin chi tiết hữu ích trong việc phát hiện đa cộng tuyến.
  2. Yếu tố lạm phát phương sai (VIF): Các mối tương quan theo cặp có thể không phải lúc nào cũng hữu ích vì có thể chỉ một biến không thể giải thích hoàn toàn một số biến khác nhưng một số biến kết hợp lại có thể sẵn sàng để làm điều này. Vì vậy, để kiểm tra các loại quan hệ giữa các biến, người ta có thể sử dụng VIF. Về cơ bản, VIF giải thích mối quan hệ của một biến độc lập với tất cả các biến độc lập khác. VIF được cung cấp bởi,

đa cộng tuyến VIF

trong đó đề cập đến biến được biểu diễn dưới dạng kết hợp tuyến tính của phần còn lại của các biến độc lập.

Phương pháp phỏng đoán phổ biến theo sau cho các giá trị VIF là nếu VIF & gt; 10 thì giá trị chắc chắn cao và nên bỏ. Và nếu VIF = 5 thì nó có thể hợp lệ nhưng nên được kiểm tra trước. Nếu VIF & lt; 5, thì nó được coi là một giá trị vif tốt.

Trang bị quá mức và trang bị thiếu trong hồi quy tuyến tính

Luôn có những tình huống trong đó một mô hình hoạt động tốt trên dữ liệu đào tạo nhưng không hoạt động tốt trên dữ liệu thử nghiệm.

Mặc dù các mô hình đào tạo trên tập dữ liệu, trang bị quá mức và trang bị thiếu là những vấn đề phổ biến nhất mà mọi người phải đối mặt.

Trước khi hiểu về trang bị quá mức và trang bị thiếu, người ta phải biết về độ chệch và phương sai.

Độ lệch:

Độ chệch là thước đo để xác định mức độ chính xác của mô hình trên dữ liệu không nhìn thấy trong tương lai. Các mô hình phức tạp,

giả sử có đủ dữ liệu đào tạo, có thể đưa ra dự đoán chính xác. Trong khi đó, các mô hình

quá ngây thơ, rất có khả năng hoạt động kém so với các dự đoán.

Đơn giản, Bias là lỗi do dữ liệu huấn luyện tạo ra.

Nói chung, các thuật toán tuyến tính có độ chệch cao khiến chúng học nhanh và dễ hiểu hơn nhưng nhìn chung, kém linh hoạt hơn. Ngụ ý hiệu suất dự đoán thấp hơn đối với các vấn đề phức tạp không đạt được kết quả mong đợi.

Phương sai:

Phương sai là độ nhạy của mô hình đối với dữ liệu huấn luyện, tức là nó định lượng mức độ mà mô hình sẽ phản ứng khi dữ liệu đầu vào bị thay đổi.

Tốt nhất, mô hình không nên thay đổi quá nhiều từ một tập dữ liệu đào tạo này sang dữ liệu đào tạo tiếp theo, điều này có nghĩa là thuật toán rất giỏi trong việc chọn ra các mô hình cơ bản ẩn giữa các đầu vào và các biến đầu ra.

Lý tưởng nhất là mô hình phải có phương sai thấp hơn, có nghĩa là mô hình không thay đổi đáng kể sau khi thay đổi dữ liệu đào tạo (có thể tổng quát hóa được). Có phương sai cao hơn sẽ khiến mô hình thay đổi đáng kể ngay cả khi chỉ có một thay đổi nhỏ trong tập dữ liệu đào tạo.

Hãy hiểu sự cân bằng giữa phương sai lệch là gì.

Đánh đổi phương sai sai lệch

Mục đích của bất kỳ thuật toán học máy có giám sát nào là đạt được độ chệch hướng thấp và phương sai thấp vì nó mạnh mẽ hơn. Để thuật toán đạt được hiệu suất tốt hơn.

Không có cách nào thoát khỏi mối quan hệ giữa thành kiến ​​và phương sai trong học máy.

sự cân bằng độ lệch và phương sai cho hồi quy tuyến tính

Có mối quan hệ nghịch đảo giữa độ chệch và phương sai,

  • Sự gia tăng độ chệch sẽ làm giảm phương sai.
  • Sự gia tăng phương sai sẽ làm giảm độ chệch.

Có một sự cân bằng giữa hai khái niệm này và các thuật toán phải tìm ra sự cân bằng giữa độ chệch và phương sai.

Trên thực tế, người ta không thể tính toán các thuật ngữ sai số thiên vị và phương sai thực sự vì chúng tôi không biết hàm mục tiêu cơ bản thực tế.

Bây giờ là trang phục quá mức và trang bị kém.

Trang phục quá mức

Khi một mô hình tìm hiểu từng mẫu và nhiễu trong dữ liệu đến mức ảnh hưởng đến hiệu suất của mô hình trên tập dữ liệu tương lai không thấy được, nó được gọi là. Mô hình phù hợp với dữ liệu đến mức nó diễn giải nhiễu thành các mẫu trong dữ liệu.

Khi một mô hình có độ chệch thấp và phương sai cao hơn, nó sẽ kết thúc việc ghi nhớ dữ liệu và gây ra việc trang bị quá mức. Trang bị quá mức khiến mô hình trở nên cụ thể hơn là chung chung. Điều này thường dẫn đến độ chính xác khi luyện tập cao và độ chính xác của bài kiểm tra rất thấp.

Việc phát hiện trang bị quá mức rất hữu ích, nhưng nó không giải quyết được vấn đề thực tế. Có một số cách để ngăn chặn việc mặc quá nhiều, được nêu dưới đây:

  • Xác thực chéo
  • Nếu dữ liệu đào tạo quá nhỏ để đào tạo, hãy thêm dữ liệu rõ ràng và phù hợp hơn.
  • Nếu dữ liệu đào tạo quá lớn, hãy thực hiện một số lựa chọn tính năng và xóa các tính năng không cần thiết.
  • Quy định hóa

Trang bị dưới:

Underfitting thường không được thảo luận nhiều như thảo luận về overfitting. Khi mô hình không học được từ tập dữ liệu đào tạo và cũng không thể tổng quát hóa tập dữ liệu thử nghiệm, được gọi là . Bạn có thể dễ dàng phát hiện ra loại vấn đề này bằng các chỉ số về hiệu suất.

Khi một mô hình có độ chệch cao và phương sai thấp, nó sẽ không tổng quát hóa dữ liệu và gây ra tình trạng thiếu trang bị. Nó không thể tìm thấy các mẫu cơ bản ẩn từ dữ liệu. Điều này thường dẫn đến độ chính xác đào tạo thấp và độ chính xác kiểm tra rất thấp. Dưới đây là các cách để ngăn ngừa việc mặc trang phục không phù hợp,

  • Tăng độ phức tạp của mô hình
  • Tăng số lượng tính năng trong dữ liệu đào tạo
  • Loại bỏ nhiễu khỏi dữ liệu.

Mã hóa thực hành: Mô hình hồi quy tuyến tính

Đây là phần mà bạn sẽ tìm hiểu cách thực hiện hồi quy trong Python. Chúng tôi sẽ sử dụng

TV
Đài phát thanh
Báo
Bán hàng

230,1
37,8
69,2
22.1

44,5
39.3
45.1
10.4

17,2
45,9
69.3
12.0

151,5
41.3
58,5
16,5

180,8
10,8
58.4
17,9

8.7
48,9
75.0
7.2

57,5
32,8
23,5
11,8

‘Doanh số bán hàng’ là biến mục tiêu cần được dự đoán. Giờ đây, dựa trên dữ liệu này, mục tiêu của chúng tôi là tạo ra một mô hình dự đoán, dự đoán doanh số bán hàng dựa trên số tiền chi tiêu trên các nền tảng khác nhau để tiếp thị.

Chúng ta hãy bắt tay ngay vào một số mã hóa thực hành để hoàn thành dự đoán này. Vui lòng không cảm thấy bị bỏ qua nếu bạn chưa có kinh nghiệm với Python. Trên thực tế, cách học tốt nhất là giải quyết vấn đề – giống như cách chúng ta đang làm.

Bước 1: Nhập thư viện Python

Bước đầu tiên là kích hoạt sổ ghi chép Jupyter của bạn và tải tất cả các thư viện tiên quyết trong sổ ghi chép Jupyter của bạn. Dưới đây là các thư viện quan trọng mà chúng ta sẽ cần cho hồi quy tuyến tính này.

  • NumPy (để thực hiện các phép toán nhất định)
  • gấu trúc (để lưu trữ dữ liệu trong DataFrames của gấu trúc)
  • matplotlib.pyplot (bạn sẽ sử dụng matplotlib để vẽ dữ liệu)

Để tải những mã này, chỉ cần bắt đầu với vài dòng mã sau trong ô đầu tiên của bạn:

 # Nhập tất cả các thư viện cần thiết
nhập numpy dưới dạng np
nhập gấu trúc dưới dạng pd
nhập matplotlib.pyplot dưới dạng plt

# Cảnh báo Supress

cảnh báo nhập khẩu

warning.filterwarnings ('bỏ qua')

Dòng mã cuối cùng giúp loại bỏ các cảnh báo không cần thiết.

Bước 2: Tải tập dữ liệu

Bây giờ chúng ta hãy nhập dữ liệu vào DataFrame. DataFrame là một kiểu dữ liệu trong Python. Cách hiểu đơn giản nhất là nó lưu trữ tất cả dữ liệu của bạn ở định dạng bảng.

 # Đọc tệp CSV đã cho và xem một số bản ghi mẫu
Advertising = pd.read_csv ("Advertising.csv")
Advertising.head () 

Đang tải tập dữ liệu

Bước 3: Hình dung

Chúng ta hãy vẽ biểu đồ phân tán cho biến mục tiêu so với các biến dự báo trong một biểu đồ duy nhất để có được trực giác. Ngoài ra, vẽ một bản đồ nhiệt cho tất cả các biến,

 # Nhập thư viện sơ sinh để hình dung
nhập seaborn dưới dạng sns 
 # để vẽ tất cả các biểu đồ phân tán trong một biểu đồ duy nhất
sns.pairplot (Advertising, x_vars = ['TV', 'Newspaper.,' Radio '], y_vars =' Sales ', size = 4, kind =' scatter ')
plt.show () 
 # Để vẽ bản đồ nhiệt để tìm ra các mối tương quan
sns.heamap (ads.corr (), cmap = 'YlGnBl', annot = True)
plt.show () 

Visualization

Từ biểu đồ phân tán và bản đồ nhiệt, chúng ta có thể quan sát thấy ‘Doanh số bán hàng’ và ‘Truyền hình’ có mối tương quan cao hơn so với các biểu đồ khác vì nó hiển thị một mẫu tuyến tính trong biểu đồ phân tán cũng như đưa ra tương quan 0,9. < / p>

Bạn có thể tiếp tục xem các hình ảnh trực quan và có thể tìm hiểu thông tin chi tiết thú vị từ dữ liệu.

Bước 4: Thực hiện hồi quy tuyến tính đơn giản

Ở đây, vì TV và Doanh số có mối tương quan cao hơn, chúng tôi sẽ thực hiện hồi quy tuyến tính đơn giản cho các biến này.

Chúng tôi có thể sử dụng sklearn hoặc mô hình thống kê để áp dụng hồi quy tuyến tính. Vì vậy, chúng tôi sẽ tiếp tục với mô hình .

Đầu tiên, chúng tôi gán biến tính năng, `TV`, trong trường hợp này, cho biến` X` và biến phản hồi, `Doanh số`, cho biến` y`.

 X = quảng cáo ['TV']
y = Advertising ['Bán hàng'] 

Và sau khi chỉ định các biến, bạn cần chia biến của chúng tôi thành các tập huấn luyện và thử nghiệm. Bạn sẽ thực hiện việc này bằng cách nhập train_test_split từ thư viện sklearn.model_selection . Một phương pháp hay là giữ 70% dữ liệu trong tập dữ liệu huấn luyện và 30% còn lại trong tập dữ liệu thử nghiệm của bạn.

 từ sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split (X, y, train_size = 0,7, test_size = 0,3, random_state = 100) 

Bằng cách này, bạn có thể chia dữ liệu thành các tập huấn luyện và thử nghiệm.

Người ta có thể kiểm tra hình dạng của các đoàn tàu và bộ thử nghiệm bằng mã sau,

 print (X_train.shape)
print (X_test.shape)
print (y_train.shape)
print (y_test.shape) 

nhập thư viện mô hình để thực hiện hồi quy tuyến tính

 nhập statsmodels.api dưới dạng sm 

Theo mặc định, thư viện statsmodels phù hợp với một dòng trên tập dữ liệu đi qua điểm gốc. Nhưng để có một lệnh chặn, bạn cần sử dụng thủ công thuộc tính add_constant của statsmodels . Và khi bạn đã thêm hằng số vào tập dữ liệu X_train của mình, bạn có thể tiếp tục và điều chỉnh một dòng hồi quy bằng cách sử dụng thuộc tính OLS (Bình phương ít nhất thông thường) của số liệu thống kê như được hiển thị bên dưới,

 # Thêm một hằng số để nhận được một lệnh chặn
X_train_sm = sm.add_constant (X_train)
# Điều chỉnh dòng hồi phục bằng cách sử dụng 'OLS'
lr = sm.OLS (y_train, X_train_sm) .fit () 

Người ta có thể thấy các giá trị của betas bằng cách sử dụng mã sau,

 # In các tham số, tức là. hệ số chặn và độ dốc của đường hồi quy thu được
lr.params 

lr.ramas

Ở đây, 6,948 là hệ số chặn và 0,0545 là độ dốc cho TV biến đổi.

Bây giờ, hãy xem các số liệu đánh giá cho hoạt động hồi quy tuyến tính này. Bạn chỉ cần xem bản tóm tắt bằng đoạn mã sau,

 # Thực hiện thao tác tóm tắt liệt kê tất cả các tham số khác nhau của đường hồi quy được trang bị
print (lr.summary ()) 

Summary

Như bạn có thể thấy, mã này cung cấp cho bạn một bản tóm tắt ngắn gọn về hồi quy tuyến tính. Dưới đây là một số thống kê chính từ bản tóm tắt:

  1. Hệ số cho TV là 0,054, với giá trị p rất thấp. Hệ số có ý nghĩa thống kê. Vì vậy, sự liên kết không hoàn toàn là do ngẫu nhiên.
  2. R – bình phương là 0,816 Có nghĩa là 81,6% phương sai trong `Doanh số` được giải thích bằng` TV`. Đây là một giá trị bình phương R phù hợp.
  3. Thống kê F có giá trị p rất thấp (thực tế là thấp). Có nghĩa là sự phù hợp của mô hình có ý nghĩa thống kê và phương sai được giải thích không hoàn toàn là do ngẫu nhiên.

Bước 5: Thực hiện dự đoán trên tập kiểm tra

Bây giờ bạn đã chỉ cần trang bị một đường hồi quy trên tập dữ liệu tàu của mình, đã đến lúc đưa ra một số dự đoán về dữ liệu thử nghiệm. Đối với điều này, trước tiên bạn cần thêm một hằng số vào dữ liệu X_test giống như bạn đã làm cho X_train và sau đó bạn chỉ cần tiếp tục và dự đoán các giá trị y tương ứng với X_test sử dụng thuộc tính dự đoán của đường hồi quy vừa vặn.

 # Thêm một hằng số vào X_test
X_test_sm = sm.add_constant (X_test)
# Dự đoán các giá trị y tương ứng với X_test_sm
y_pred = lr.p Dự đoán (X_test_sm) 

Bạn có thể thấy các giá trị được dự đoán bằng mã sau,

 y_pred.head () 

head y_pred

Để kiểm tra xem các giá trị được dự đoán trên dữ liệu thử nghiệm tốt như thế nào, chúng tôi sẽ kiểm tra một số chỉ số đánh giá bằng cách sử dụng thư viện sklearn.

Thư viện

 #Imporitng
từ sklearn.metrics nhập mean_squared_error
từ sklearn.metrics nhập r2_score 

Giá trị

 #RMSE
print ("RMSE:", np.sqrt (mean_squared_error (y_test, y_pred))
# Giá trị bình phương R
print ("R bình phương:", r2_score (y_test, y_pred)) 

rmse

Chúng tôi đang đạt được điểm số khá cho cả tập huấn luyện và tập kiểm tra.

Ngoài `statsmodels`, có một gói khác là` sklearn` có thể được sử dụng để thực hiện hồi quy tuyến tính. Chúng tôi sẽ sử dụng thư viện `linear_model` từ` sklearn` để xây dựng mô hình. Vì chúng tôi đã thực hiện phân tách thử nghiệm đào tạo nên chúng tôi không cần thực hiện lại.

Tuy nhiên, chúng tôi cần thêm một bước nhỏ. Khi chỉ có một đối tượng địa lý, chúng tôi cần thêm một cột bổ sung để điều chỉnh hồi quy tuyến tính được thực hiện thành công. Mã được cung cấp bên dưới,

 X_train_lm = X_train_lm.values.reshape (-1,1)
X_test_lm = X_test_lm.values.reshape (-1,1) 

Người ta có thể kiểm tra sự thay đổi về hình dạng của các khung dữ liệu trên.

 print (X_train_lm.shape)
print (X_train_lm.shape) 

Để phù hợp với mô hình, hãy viết mã bên dưới,

 từ sklearn.linear_model import LinearRegression
#Representing LinearRegression dưới dạng lr (tạo đối tượng LinearRegression)
lr = LinearRegression ()
# Chỉnh sửa mô hình bằng lr.fit ()
lr.fit (X_train_lm, y_train_lm) 

Bạn có thể nhận các giá trị chặn và độ dốc với sklearn bằng cách sử dụng mã sau,

 #get intercept
print (lr.intercept_)
#get dốc
print (lr.coef_) 

lm.intercept

Đây là cách chúng tôi có thể thực hiện hồi quy tuyến tính đơn giản.

Kết luận

Sau khi đề cập đến khái niệm cơ bản nhất trong học máy, giờ đây bạn có thể triển khai nó trên một số bộ dữ liệu của mình.

Bất cứ điều gì bạn học được trong cuộc thảo luận này là khá đủ để bạn chọn một tập dữ liệu đơn giản và tiếp tục tạo mô hình hồi quy tuyến tính trên đó.

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả.


Xem thêm những thông tin liên quan đến chủ đề hồi quy tuyến tính trong phân tích dữ liệu

Hồi quy tuyến tính đa biến_Multiple Linear Regression trong R

alt

  • Tác giả: [Học một chút]
  • Ngày đăng: 2021-10-23
  • Đánh giá: 4 ⭐ ( 9389 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: LinearRegression, R, tuongquan, hoiqui

    Tương quan đa biến rất quan trọng trong thực tế cũng như nghiên cứu.
    Trong R thì việc thực hành và kiểm định rất đơn giản và nhanh chóng

    Blog: https://hocmotchutthoi.blogspot.com/
    Facebook: https://www.facebook.com/H%E1%BB%8Dc-m%E1%BB%99t-ch%C3%BAt-101993652238544
    —-HỌC MỘT CHÚT THÔI – HỌC NHIỀU MỆT—-

Linear Regression – Hồi quy tuyến tính trong Machine Learning

  • Tác giả: viblo.asia
  • Đánh giá: 4 ⭐ ( 9338 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài viết, mình sẽ giới thiệu một trong 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 Tuyến Tính) thuộc nhóm Supervised learning ( Học có giám sá…

Tọa đàm “Hồi quy tuyến tính và ứng dụng trong phân tích dữ liệu”

  • Tác giả: www.neu.edu.vn
  • Đánh giá: 5 ⭐ ( 1232 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Phân tích hồi qui là gì? Đặc điểm, ý nghĩa và ví dụ thực tế

  • Tác giả: luatduonggia.vn
  • Đánh giá: 5 ⭐ ( 4535 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Phân tích hồi quy là gì? Đặc điểm của phân tích hồi quy? Phân loại các loại hình phân tích hồi quy? Ý nghĩa và ví dụ về phân tích hồi quy?

Bài 3. Phân tích hồi quy tuyến tính bội (Multiple Linear Regression)

  • Tác giả: sangtaotrongtamtay.vn
  • Đánh giá: 4 ⭐ ( 9700 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Khi có nhiều hơn một biến độc lập, mô hình phù hợp tổng thể được đánh giá bằng thống kê F (F statistic). Giả thuyết vô hiệu được thử nghiệm liên quan đến tất

Linear regression là gì

  • Tác giả: divinerank.vn
  • Đánh giá: 3 ⭐ ( 4234 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài viết, mình sẽ giới thiệu một trong 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 Tuyến Tính) thuộc nhóm Supervised learning ( Học có giám sát )

Phân tích và đọc kết quả hồi quy tuyến tính bội trong SPSS

  • Tác giả: www.phamlocblog.com
  • Đánh giá: 4 ⭐ ( 5494 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn cách chạy hồi quy bội trong SPSS và thực hiện dò tìm các vi phạm giá định hồi quy.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Nhập số điện thoại HTML: Hướng dẫn Cách thực hiện về Tạo Trường Người dùng - số điện thoại đầu vào html