Hướng dẫn linear regression case study in python - nghiên cứu trường hợp hồi quy tuyến tính trong python

Giữ bình tĩnh, nó không phải là khoa học tên lửa.

Chào mừng bạn đến với mô -đun về hồi quy tuyến tính trong blog trước đây, tôi đã giải thích về các giả định của Hồi giáo về hồi quy tuyến tính và các số liệu đánh giá mô hình được sử dụng cho hồi quy.

Trong phần này, chúng tôi sẽ bắt đầu với việc hiểu khái niệm cơ bản về hồi quy tuyến tính đơn giản và chúng tôi sẽ xây dựng một mô hình hồi quy tuyến tính đơn giản trong Python.

Chương trình nghị sự rộng như sau:he broad agenda is as follow:

  1. Các mô hình hồi quy tuyến tính.
  2. Tổng số bình phương (RSS) và R² (r-bình phương) (theo blog trước của tôi)
  3. Hồi quy tuyến tính trong Python.

Mô hình học máy có thể được phân loại thành ba loại sau dựa trên tác vụ được thực hiện và bản chất của đầu ra:

  1. Hồi quy: Biến đầu ra được dự đoán là một biến liên tục, ví dụ: Điểm của một học sinh
  2. Phân loại: Biến đầu ra được dự đoán là một biến phân loại, ví dụ: Phân loại email đến là thư rác hoặc giăm bông
  3. Phân cụm: Không có khái niệm được xác định trước về nhãn được phân bổ cho các nhóm/cụm được hình thành, ví dụ: Phân khúc khách hàng

Vì vậy, bạn có thể phân loại mô hình học máy thành hai loại biên giới như sau:

  1. Phương pháp được giám sát

A) Thuật toán hồi quy và phân loại thuộc các loại này.

b) Dữ liệu trong quá khứ với nhãn được sử dụng để xây dựng mô hình.

2) Học tập không giám sát

a) Thuật toán phân cụm thuộc các loại này.

b) Không có nhãn được xác định trước được gán cho dữ liệu trong quá khứ.

Trực giác

Bạn có bao giờ tự hỏi, làm thế nào công ty tiếp thị, có thể dự đoán doanh số bán hàng tùy thuộc vào số tiền họ đưa vào hoặc nói rằng bạn là một người hâm mộ của IPL (Liên đoàn Premium Premium) cụ thể và muốn dự đoán số điểm của bạn kết thúc trận đấu của bạn Và ngay bây giờ bạn đang ở giữa trận đấu, vì vậy làm thế nào để xây dựng một mô hình làm thế nào để bạn đưa ra dự đoán này.

Để hiểu hồi quy, hãy xem xét Công ty ‘X, nơi chúng tôi có một số dữ liệu trước đây về chi tiêu tiếp thị và doanh số ở đó trong năm trước. Bây giờ bạn muốn biết rằng số x đô la hoặc tiền là doanh số bán hàng.

mẫu dữ liệu

Bây giờ câu hỏi là làm thế nào bạn làm dự đoán này?

Có, bạn nói đúng, bạn xây dựng mô hình và bạn thực hiện dự đoán, khóa học như một người đứng đầu tiếp thị hoặc ai đó bạn sẽ có một số trực giác nếu bạn tăng chi tiêu tiếp thị mà bạn sẽ thấy tăng doanh số, nhưng sau đó bạn muốn Biết chính xác những gì bạn sẽ nhận được và bạn cũng muốn biết có bất kỳ mối quan hệ nào giữa chi tiêu tiếp thị và bán hàng. Nếu không có mối quan hệ giữa họ thì bạn sẽ không bỏ tiền để đạt được doanh số.

Để bắt đầu với trục x, chúng tôi có ngân sách tiếp thị và trên trục y, chúng tôi có doanh số và chúng tôi chỉ thực hiện một âm mưu phân tán với dữ liệu năm trước và bạn sẽ nhận được tất cả các điểm này ở đây. Thật thú vị khi lưu ý về ngân sách tiếp thị trục X có liên quan đến trục y. Trục X Ngân sách tiếp thị còn được gọi là biến độc lập và trên doanh số trục y mà chúng tôi muốn dự đoán được gọi là biến phụ thuộc, ở đây chúng tôi có một biến độc lập và một biến phụ thuộc.

Cốt truyện phân tán

Đọc thêm

Tiến trình đơn giản hướng tới hồi quy tuyến tính đơn giản

Giới thiệu :

Mục tiêu của blogpost là để người mới bắt đầu với những điều cơ bản về các khái niệm hồi quy tuyến tính và nhanh chóng giúp họ xây dựng mô hình hồi quy tuyến tính đầu tiên của họ. & NBSP; Chúng tôi sẽ chủ yếu tập trung vào phía mô hình của nó. Việc làm sạch dữ liệu và các bộ phận tiền xử lý sẽ được đề cập chi tiết trong một bài đăng sắp tới.

Hồi quy tuyến tính là một trong những thuật toán học máy cơ bản và được sử dụng rộng rãi nhất. Hồi quy tuyến tính thường là một trong số ít các chủ đề đầu tiên mà mọi người chọn trong khi học mô hình dự đoán. Hồi quy dòng thiết lập mối quan hệ giữa biến phụ thuộc (y) và một hoặc nhiều biến độc lập (x) bằng cách sử dụng đường thẳng phù hợp nhất (còn được gọi là đường hồi quy) . Biến phụ thuộc là liên tục, (các) biến độc lập có thể liên tục hoặc rời rạc, và bản chất của đường hồi quy là tuyến tính.

Mối quan hệ tuyến tính có thể là tích cực hoặc tiêu cực. Mối quan hệ tích cực giữa hai biến về cơ bản có nghĩa là sự gia tăng trong một biến cũng sẽ tăng giá trị trong giá trị khác theo một số giá trị không đổi. Mối quan hệ tiêu cực giữa hai biến có nghĩa là sự gia tăng trong một biến sẽ làm giảm giá trị trong giá trị khác theo một số giá trị không đổi.

Giải thích toán học:

Một hồi quy tuyến tính đơn giản có một biến độc lập. Về mặt toán học, dòng đại diện cho một hồi quy tuyến tính đơn giản được thể hiện thông qua một phương trình cơ bản:

Y = mX + b  + e

Ở đây, m là độ dốc x là biến dự đoán B là thuật ngữ chặn/độ lệch y là biến mục tiêu dự đoán e là thuật ngữ lỗi
m is the slope
X is the predictor variable
b is the intercept/bias term
Y is the predicted target variable
e is the error term

Đủ lý thuyết bây giờ, hãy để đi sâu vào việc thực hiện cả hai; Một hồi quy tuyến tính đơn giản và hồi quy tuyến tính đa biến.

Chúng tôi sẽ sử dụng việc triển khai được cung cấp bởi Khung học tập máy Python được gọi là Scikit-learn.

Báo cáo vấn đề :

Dự đoán giá của một chiếc xe với tỷ lệ nén của nó.

Chi tiết dữ liệu

Các bộ dữ liệu này có nguồn gốc từ http://www.nyc.gov/html/tlc/html/about/trip_record_data.shtml.

Nhãn là định danh của cột bạn đang cố gắng dự đoán. Các tính năng được xác định được sử dụng để dự đoán nhãn.

Vendor_id: ID của nhà cung cấp taxi là một tính năng.: The ID of the taxi vendor is a feature.

RATE_CODE: Loại tỷ lệ của chuyến đi taxi là một tính năng.: The rate type of the taxi trip is a feature.

PASSENGER_COUNT: Số lượng hành khách trong chuyến đi là một tính năng.: The number of passengers on the trip is a feature.

TRIP_TIME_IN_SECS: Lượng thời gian chuyến đi thực hiện. Bạn đã thắng được biết chuyến đi mất bao lâu cho đến khi nó: The amount of time the trip took. You won’t know how long the trip takes until after it is

Hoàn thành: Bạn loại trừ cột này khỏi mô hình. : You exclude this column from the model.

TRIP_DISTANCE: Khoảng cách của chuyến đi là một tính năng.: The distance of the trip is a feature.

payment_type: Phương thức thanh toán (tiền mặt hoặc thẻ tín dụng) là một tính năng.: The payment method (cash or credit card) is a feature.

FARE_AMOUNT: Tổng giá vé taxi được trả là nhãn.: The total taxi fare paid is the label.

Các công cụ được sử dụng: gấu trúc, numpy, matplotlib, scikit-learn :
Pandas , Numpy , Matplotlib , scikit-learn

Triển khai Python với mã:

  1. Nhập thư viện cần thiết

Nhập các mô -đun cần thiết từ các thư viện cụ thể.

from sklearn import linear_model
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
  1. Tải tập dữ liệu

Sử dụng mô -đun Pandas để đọc dữ liệu taxi từ hệ thống tệp. Kiểm tra một vài bản ghi của bộ dữ liệu.

taxi_train = "data/taxi-fare-train.csv"
taxi_test = "data/taxi-fare-test.csv"
tax_train = pd.read_csv(taxi_train)
tax_train.head()
vendor_id              rate_code              passenger_count  trip_time_in_secs  trip_distance          payment_type                fare_amount

0              CMT        1              1              1271        3.8           CRD        17.5

1              CMT        1              1              474          1.5           CRD        8.0

2              CMT        1              1              637          1.4           CRD        8.5

3              CMT        1              1              181          0.6           CSH        4.5

4              CMT        1              1              661          1.1           CRD        8.5

  1. Chọn tính năng dự đoán cho hồi quy đơn giản, chọn biến đích
X = tax_train['trip_distance']

y = tax_train['fare_amount']

  1. Kiểm tra tóm tắt 5-NUM của tính năng dự đoán đã chọn
X.describe()

count    728541.000000
mean          2.741597
std           3.298091
min           0.000000
25%           1.000000
50%           1.700000
75%           3.000000
max          98.700000
Name: trip_distance, dtype: float64
  1. Phân chia kiểm tra tàu:
from sklearn.model_selection import train_test_split


x_training_set, x_test_set, y_training_set, y_test_set = train_test_split(X,y)

Mái vòm một số định hình lại biến thể hình ảnh

x_training_set, x_test_set, y_training_set, y_test_set = x_training_set.values, x_test_set.values, y_training_set.values, y_test_set.values

x_training_set, x_test_set, y_training_set, y_test_set = x_training_set.reshape(-1, 1), x_test_set.reshape(-1, 1), y_training_set.reshape(-1, 1), y_test_set.reshape(-1, 1)

Thực hiện một số kiểm tra trực quan ban đầu giữa dự đoán và biến mục tiêu

from sklearn import linear_model
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
0
  1. Đào tạo / phù hợp với mô hình

Lắp mô hình vào dữ liệu được giám sát được chọn

from sklearn import linear_model
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
1
  1. Nghiên cứu thông số mô hình:
from sklearn import linear_model
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
2
from sklearn import linear_model
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
3
  1. Báo cáo chính xác với dữ liệu kiểm tra:

Hãy để hình dung sự tốt đẹp của sự phù hợp với các dự đoán đang được hình dung bởi một dòng

from sklearn import linear_model
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
4
  1. Sự dự đoán :

Ưu điểm của Algo:

  • Phương pháp cực kỳ đơn giản
  • Khi mối quan hệ giữa các biến độc lập và biến phụ thuộc gần như tuyến tính, cho thấy kết quả tối ưu.
  • Rất dễ dàng và trực quan để sử dụng và hiểu
  • Ngay cả khi nó không phù hợp với dữ liệu chính xác, chúng ta có thể sử dụng nó để tìm bản chất của mối quan hệ giữa hai biến.

Nhược điểm Algo:

  • Hồi quy tuyến tính được giới hạn để dự đoán đầu ra số.
  • Rất nhạy cảm với sự bất thường trong dữ liệu (hoặc ngoại lệ)
  • Nếu chúng ta có một số tham số so với số lượng mẫu có sẵn thì mô hình bắt đầu mô hình hóa nhiễu thay vì mối quan hệ giữa các biến.
  • Các hệ số hồi quy bị sai lệch bởi sự mất cân bằng dữ liệu.