Logo Zephyrnet

Hồi quy Ridge là gì? [Đã cập nhật]

Ngày:

Mục lục

Đóng góp bởi: Prashanth Ashok

Cây rơm hồi quy là một phương pháp điều chỉnh mô hình được sử dụng để phân tích bất kỳ dữ liệu nào có hiện tượng đa cộng tuyến. Phương pháp này thực hiện chính quy hóa L2. Khi xảy ra vấn đề đa cộng tuyến, bình phương nhỏ nhất không bị sai lệch và phương sai lớn, điều này dẫn đến các giá trị được dự đoán rất xa so với giá trị thực tế. 

Hàm chi phí cho hồi quy sườn:

Min(||Y – X(theta)||^2 + λ||theta||^2)

Lambda là thời hạn phạt đền. λ đưa ra ở đây được biểu thị bằng tham số alpha trong hàm sườn. Vì vậy, bằng cách thay đổi giá trị của alpha, chúng ta đang kiểm soát thời hạn phạt. Giá trị của alpha càng cao thì mức phạt càng lớn và do đó độ lớn của các hệ số sẽ giảm.

  • Nó thu nhỏ các tham số. Vì vậy nó được sử dụng để ngăn chặn hiện tượng đa cộng tuyến
  • Nó làm giảm độ phức tạp của mô hình bằng hệ số co rút
  • Tham khảo khóa học miễn phí trên Phân tích hồi quy.

Mô hình hồi quy sườn 

Đối với bất kỳ loại mô hình học máy hồi quy nào, phương trình hồi quy thông thường tạo thành cơ sở được viết là:

Y = XB + e

Trong đó Y là biến phụ thuộc, X đại diện cho các biến độc lập, B là hệ số hồi quy cần ước tính và e đại diện cho sai số là phần dư. 

Khi chúng ta thêm hàm lambda vào phương trình này, phương sai không được mô hình tổng quát đánh giá sẽ được xem xét. Sau khi dữ liệu đã sẵn sàng và được xác định là một phần của quá trình chính quy hóa L2, người ta có thể thực hiện các bước sau.

Tiêu chuẩn hoá 

Trong hồi quy sườn, bước đầu tiên là chuẩn hóa các biến (cả phụ thuộc và độc lập) bằng cách trừ đi giá trị trung bình và chia cho độ lệch chuẩn của chúng. Điều này gây ra một thách thức trong cách ký hiệu vì bằng cách nào đó chúng ta phải chỉ ra liệu các biến trong một công thức cụ thể có được chuẩn hóa hay không. Liên quan đến tiêu chuẩn hóa, tất cả các tính toán hồi quy sườn núi đều dựa trên các biến được tiêu chuẩn hóa. Khi các hệ số hồi quy cuối cùng được hiển thị, chúng sẽ được điều chỉnh trở lại thang đo ban đầu. Tuy nhiên, dấu vết sườn núi nằm trên thang đo tiêu chuẩn.

Cũng đọc: Hỗ trợ hồi quy vectơ trong học máy

Sự đánh đổi độ lệch và phương sai

Sự đánh đổi giữa sai lệch và phương sai nhìn chung rất phức tạp khi xây dựng mô hình hồi quy sườn trên một tập dữ liệu thực tế. Tuy nhiên, theo xu hướng chung mà người ta cần nhớ là:

  1. Độ lệch tăng khi λ tăng.
  2. Phương sai giảm khi λ tăng.

Giả định về hồi quy sườn

Các giả định của hồi quy sườn giống như hồi quy tuyến tính: tuyến tính, phương sai không đổi và tính độc lập. Tuy nhiên, vì hồi quy đường vân không cung cấp giới hạn tin cậy nên không cần phải giả định rằng phân phối sai số là chuẩn.

Bây giờ, hãy lấy một ví dụ về vấn đề hồi quy tuyến tính và xem hồi quy sườn nếu được triển khai sẽ giúp chúng ta giảm lỗi như thế nào.

Chúng ta sẽ xem xét một tập dữ liệu về các nhà hàng Thực phẩm đang cố gắng tìm ra sự kết hợp tốt nhất giữa các mặt hàng thực phẩm để cải thiện doanh số bán hàng của họ ở một khu vực cụ thể. 

Tải lên thư viện cần thiết

import numpy as np   
import pandas as pd
import os
 
import seaborn as sns
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt   
import matplotlib.style
plt.style.use('classic')
 
import warnings
warnings.filterwarnings("ignore")

df = pd.read_excel("food.xlsx")

Sau khi tiến hành tất cả EDA trên dữ liệu và xử lý các giá trị bị thiếu, bây giờ chúng ta sẽ tiếp tục tạo các biến giả vì chúng ta không thể có các biến phân loại trong tập dữ liệu.

df =pd.get_dummies(df, columns=cat,drop_first=True)

Trong đó columns=cat là tất cả các biến phân loại trong tập dữ liệu.

Sau này, chúng ta cần chuẩn hóa bộ dữ liệu cho phương pháp Hồi quy tuyến tính.

Chia tỷ lệ các biến dưới dạng biến liên tục có trọng số khác nhau

#Scales the data. Essentially returns the z-scores of every attribute
 
from sklearn.preprocessing import StandardScaler
std_scale = StandardScaler()
std_scale

df['week'] = std_scale.fit_transform(df[['week']])
df['final_price'] = std_scale.fit_transform(df[['final_price']])
df['area_range'] = std_scale.fit_transform(df[['area_range']])

Tách tàu-thử nghiệm

# Copy all the predictor variables into X dataframe
X = df.drop('orders', axis=1)
 
# Copy target into the y dataframe. Target variable is converted in to Log. 
y = np.log(df[['orders']])

# Split X and y into training and test set in 75:25 ratio
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25 , random_state=1)

Mô hình hồi quy tuyến tính

Cũng đọc: Hồi quy tuyến tính là gì?

# invoke the LinearRegression function and find the bestfit model on training data
 
regression_model = LinearRegression()
regression_model.fit(X_train, y_train)

# Let us explore the coefficients for each of the independent attributes
 
for idx, col_name in enumerate(X_train.columns):
    print("The coefficient for {} is {}".format(col_name, regression_model.coef_[0][idx]))

The coefficient for week is -0.0041068045722690814
The coefficient for final_price is -0.40354286519747384
The coefficient for area_range is 0.16906454326841025
The coefficient for website_homepage_mention_1.0 is 0.44689072858872664
The coefficient for food_category_Biryani is -0.10369818094671146
The coefficient for food_category_Desert is 0.5722054451619581
The coefficient for food_category_Extras is -0.22769824296095417
The coefficient for food_category_Other Snacks is -0.44682163212660775
The coefficient for food_category_Pasta is -0.7352610382529601
The coefficient for food_category_Pizza is 0.499963614474803
The coefficient for food_category_Rice Bowl is 1.640603292571774
The coefficient for food_category_Salad is 0.22723622749570868
The coefficient for food_category_Sandwich is 0.3733070983152591
The coefficient for food_category_Seafood is -0.07845778484039663
The coefficient for food_category_Soup is -1.0586633401722432
The coefficient for food_category_Starters is -0.3782239478810047
The coefficient for cuisine_Indian is -1.1335822602848094
The coefficient for cuisine_Italian is -0.03927567006223066
The coefficient for center_type_Gurgaon is -0.16528108967295807
The coefficient for center_type_Noida is 0.0501474731039986
The coefficient for home_delivery_1.0 is 1.026400462237632
The coefficient for night_service_1 is 0.0038398863634691582


#checking the magnitude of coefficients
from pandas import Series, DataFrame
predictors = X_train.columns
 
coef = Series(regression_model.coef_.flatten(), predictors).sort_values()
plt.figure(figsize=(10,8))
 
coef.plot(kind='bar', title='Model Coefficients')
plt.show()

Các biến thể hiện tác động tích cực đến mô hình hồi quy là food_category_Rice Bowl, home_delivery_1.0, food_category_Desert,food_category_Pizza ,website_homepage_mention_1.0, food_category_Sandwich, food_category_Salad và Area_range – những yếu tố này ảnh hưởng lớn đến mô hình của chúng tôi.

Hồi quy Ridge so với Hồi quy Lasso: Tìm hiểu sự khác biệt chính

Trong thế giới của các mô hình hồi quy tuyến tính, Hồi quy Ridge và Lasso nổi bật là hai kỹ thuật cơ bản, cả hai đều được thiết kế để nâng cao độ chính xác dự đoán và khả năng diễn giải của mô hình, đặc biệt trong các tình huống có dữ liệu phức tạp và có nhiều chiều. Sự khác biệt cốt lõi giữa hai phương pháp này nằm ở cách tiếp cận chính quy hóa, đây là một phương pháp ngăn chặn việc trang bị quá mức bằng cách thêm một hình phạt vào hàm mất mát. Hồi quy Ridge, còn được gọi là chính quy hóa Tikhonov, thêm một số hạng phạt tỷ lệ với bình phương độ lớn của các hệ số. Phương pháp này thu nhỏ các hệ số về 0 nhưng không bao giờ chính xác về 0, do đó làm giảm độ phức tạp của mô hình và tính đa cộng tuyến. Ngược lại, Hồi quy Lasso (Toán tử lựa chọn và co rút tuyệt đối nhỏ nhất) bao gồm một số hạng phạt là giá trị tuyệt đối của độ lớn của các hệ số. Cách tiếp cận đặc biệt này không chỉ thu hẹp các hệ số mà còn có thể giảm một số hệ số xuống 0, thực hiện hiệu quả việc lựa chọn đặc tính và tạo ra các mô hình đơn giản hơn, dễ hiểu hơn.

Quyết định sử dụng Hồi quy Ridge hoặc Lasso phụ thuộc vào các yêu cầu cụ thể của tập dữ liệu và vấn đề cơ bản cần giải quyết. Hồi quy Ridge được ưu tiên hơn khi tất cả các tính năng được giả định là có liên quan hoặc khi chúng ta có tập dữ liệu đa cộng tuyến, vì nó có thể xử lý các đầu vào tương quan hiệu quả hơn bằng cách phân phối các hệ số giữa chúng. Trong khi đó, Lasso Regression lại vượt trội trong các tình huống mà việc phân tích chi tiết có lợi—khi việc giảm số lượng tính năng đóng góp cho mô hình sẽ có lợi. Điều này đặc biệt hữu ích trong các bộ dữ liệu nhiều chiều, nơi việc lựa chọn tính năng trở nên cần thiết. Tuy nhiên, Lasso có thể không nhất quán trong trường hợp các đặc điểm có mối tương quan cao. Do đó, việc lựa chọn giữa Ridge và Lasso phải dựa trên bản chất của dữ liệu, độ phức tạp của mô hình mong muốn và các mục tiêu cụ thể của phân tích, thường được xác định thông qua xác thực chéo và đánh giá hiệu suất mô hình so sánh.

Hồi quy sườn trong học máy

  • Hồi quy Ridge là một kỹ thuật quan trọng trong học máy, không thể thiếu để tạo ra các mô hình mạnh mẽ trong các tình huống có xu hướng trang bị quá mức và đa cộng tuyến. Phương pháp này sửa đổi hồi quy tuyến tính tiêu chuẩn bằng cách đưa ra một số hạng phạt tỷ lệ với bình phương của các hệ số, điều này tỏ ra đặc biệt hữu ích khi xử lý các biến độc lập có mối tương quan cao. Trong số các lợi ích chính của nó, hồi quy sườn giúp giảm thiểu việc trang bị quá mức một cách hiệu quả thông qua các hình phạt phức tạp bổ sung, quản lý đa cộng tuyến bằng cách cân bằng hiệu ứng giữa các biến tương quan và tăng cường khái quát hóa mô hình để cải thiện hiệu suất trên dữ liệu không nhìn thấy được.
  • Việc thực hiện hồi quy đường vân trong cài đặt thực tế bao gồm bước quan trọng là chọn tham số chính quy phù hợp, thường được gọi là lambda. Lựa chọn này, thường được thực hiện bằng cách sử dụng các kỹ thuật xác thực chéo, rất quan trọng để cân bằng sự đánh đổi sai lệch-phương sai vốn có trong đào tạo mô hình. Hồi quy Ridge nhận được sự hỗ trợ rộng rãi trên nhiều thư viện máy học khác nhau, với Python scikit-learn là một ví dụ đáng chú ý. Ở đây, việc triển khai đòi hỏi phải xác định mô hình, đặt giá trị lambda và sử dụng các hàm dựng sẵn để điều chỉnh và dự đoán. Tiện ích của nó đặc biệt đáng chú ý trong các lĩnh vực như phân tích tài chính và chăm sóc sức khỏe, trong đó việc dự đoán chính xác và xây dựng mô hình mạnh mẽ là điều tối quan trọng. Cuối cùng, khả năng cải thiện độ chính xác và xử lý các tập dữ liệu phức tạp của hồi quy sườn núi củng cố tầm quan trọng liên tục của nó trong lĩnh vực học máy năng động.

Cũng đọc: Hồi quy lượng tử là gì?

Giá trị của hệ số beta càng cao thì tác động càng cao.

Các món ăn như Rice Bowl, Pizza, Desert với tiện ích như giao hàng tận nhà và website_homepage_mention đóng vai trò quan trọng trong nhu cầu hoặc số lượng đơn đặt hàng với tần suất cao.

Các biến thể hiện tác động tiêu cực đến mô hình hồi quy để dự đoán số đơn đặt hàng tại nhà hàng: Cuisine_Indian,food_category_Soup , food_category_Pasta , food_category_Other_Snacks.

Final_price có tác động tiêu cực đến đơn hàng – như mong đợi.

Các món ăn như Súp, Mì ống, các món ăn nhẹ khác, danh mục thực phẩm Ấn Độ làm ảnh hưởng đến dự đoán của mô hình về số lượng đơn đặt hàng tại nhà hàng, khiến tất cả các yếu tố dự đoán khác không đổi.

Một số biến hầu như không ảnh hưởng đến dự đoán mô hình cho tần suất đặt hàng là tuần và dịch vụ ban đêm.

Thông qua mô hình, chúng ta có thể thấy các loại đối tượng của biến hoặc biến phân loại có ý nghĩa hơn biến liên tục.

Cũng đọc: Giới thiệu về Biểu thức chính quy trong Python

[Nhúng nội dung]

Chính quy

  1. Giá trị của alpha, là siêu tham số của Ridge, có nghĩa là chúng không được mô hình tự động học thay vào đó chúng phải được đặt thủ công. Chúng tôi chạy tìm kiếm dạng lưới cho các giá trị alpha tối ưu
  2. Để tìm alpha tối ưu cho Chính quy hóa sườn, chúng tôi đang áp dụng GridSearchCV
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV
 
ridge=Ridge()
parameters={'alpha':[1e-15,1e-10,1e-8,1e-3,1e-2,1,5,10,20,30,35,40,45,50,55,100]}
ridge_regressor=GridSearchCV(ridge,parameters,scoring='neg_mean_squared_error',cv=5)
ridge_regressor.fit(X,y)

print(ridge_regressor.best_params_)
print(ridge_regressor.best_score_)

{'alpha': 0.01}
-0.3751867421112124

Dấu âm là do lỗi đã biết trong thư viện Grid Search Cross Validation nên bỏ qua dấu âm.

predictors = X_train.columns
 
coef = Series(ridgeReg.coef_.flatten(),predictors).sort_values()
plt.figure(figsize=(10,8))
coef.plot(kind='bar', title='Model Coefficients')
plt.show()

Từ phân tích trên, chúng ta có thể quyết định rằng mô hình cuối cùng có thể được định nghĩa là:

Đơn hàng = 4.65 + 1.02home_delivery_1.0 + 46 website_homepage_mention_1 0+ (-.40* giá_cuối cùng) +.17area_range + 0.57food_category_Desert + (-0.22food_category_Extras) + (-0.73food_category_Pasta) + 0.49food_category_Pizza + 1.6 food_category_Cơm_Bát + 0.22food_category_Salad + 0.37 food_category_Sandwich + (-1.05food_category_Soup) + (-0.37food_category_Starters) + (-1.13cuisine_Indian) + (-0.16center_type_Gurgaon)

5 biến hàng đầu ảnh hưởng đến mô hình hồi quy là:

  1. food_category_Cơm bát
  2. home_delivery_1.0
  3. food_category_Pizza
  4. food_category_Sa mạc
  5. trang web_homepage_mention_1

Hệ số beta càng cao thì yếu tố dự đoán càng có ý nghĩa. Do đó, với việc điều chỉnh mô hình cấp độ nhất định, chúng ta có thể tìm ra các biến số tốt nhất ảnh hưởng đến vấn đề kinh doanh.

Nếu bạn thấy blog này hữu ích và muốn tìm hiểu thêm về những khái niệm như vậy, bạn có thể tham gia Các khóa học trực tuyến miễn phí của Great Learning Academy hôm nay.

Hồi quy Ridge là gì?

Hồi quy Ridge là một phương pháp hồi quy tuyến tính bổ sung độ lệch để giảm tình trạng quá khớp và cải thiện độ chính xác của dự đoán.

Hồi quy sườn khác với bình phương tối thiểu thông thường như thế nào?

Không giống như bình phương tối thiểu thông thường, hồi quy sườn bao gồm một hình phạt về độ lớn của các hệ số để giảm độ phức tạp của mô hình.

Khi nào bạn nên sử dụng hồi quy Ridge?

Sử dụng hồi quy sườn khi xử lý đa cộng tuyến hoặc khi có nhiều yếu tố dự đoán hơn số quan sát.

Vai trò của Tham số Chính quy hóa trong Hồi quy Ridge là gì?

Tham số chính quy hóa kiểm soát mức độ co rút của hệ số, ảnh hưởng đến tính đơn giản của mô hình.

Hồi quy sườn có thể xử lý các mối quan hệ phi tuyến tính?

Mặc dù chủ yếu dành cho các mối quan hệ tuyến tính, hồi quy sườn có thể bao gồm các thuật ngữ đa thức cho các tính chất phi tuyến tính.

Hồi quy Ridge được triển khai trong phần mềm như thế nào?

Hầu hết các phần mềm thống kê đều cung cấp các chức năng tích hợp cho hồi quy đường vân, yêu cầu thông số kỹ thuật và giá trị tham số thay đổi.

Làm thế nào để chọn tham số chính quy tốt nhất?

Tham số tốt nhất thường được tìm thấy thông qua xác thực chéo, sử dụng các kỹ thuật như tìm kiếm dạng lưới hoặc ngẫu nhiên.

Hạn chế của hồi quy Ridge là gì?

Nó bao gồm tất cả các yếu tố dự đoán, điều này có thể làm phức tạp việc diễn giải và việc chọn tham số tối ưu có thể là một thách thức.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img