Tôi không thấy có gì sai với mã của tôi cho hồi quy tuyến tính được chuẩn hóa. Tôi Unregularized có đơn giản này, mà tôi là hợp lý nhất định là đúng:Hồi quy tuyến tính gộp với việc chuẩn hóa
import numpy as np
def get_model(features, labels):
return np.linalg.pinv(features).dot(labels)
Đây là mã của tôi cho một giải pháp đúng quy tắc, nơi tôi không nhìn thấy những gì là sai với nó:
def get_model(features, labels, lamb=0.0):
n_cols = features.shape[1]
return linalg.inv(features.transpose().dot(features) + lamb * np.identity(n_cols))\
.dot(features.transpose()).dot(labels)
Với giá trị mặc định là 0.0 cho lamb, ý định của tôi là nó sẽ cho kết quả tương tự như (đúng) phiên bản không chính xác, nhưng sự khác biệt thực sự là khá lớn.
Có ai thấy vấn đề là gì không?
tôi bắt đầu quy tắc, và sẽ regularizing một đường hồi quy tuyến tính tạo ra một đường cong? – duldi
No. bạn vẫn sẽ nhận được các hệ số tuyến tính. Việc thường xuyên sẽ chỉ thay đổi độ dốc. –