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

Hồi quy là một phương pháp để xác định mối quan hệ giữa một biến (y) và các biến khác (x).

Trong thống kê, hồi quy tuyến tính là một cách tiếp cận để mô hình hóa mối quan hệ tuyến tính giữa y và x.

Trong Machine Learning, hồi quy tuyến tính là một thuật toán Machine Learning có giám sát.

Biểu đồ phân tán

Đây là biểu đồ phân tán (từ bài viết trước):

Ví dụ:

const xArray = [50,60,70,80,90,100,110,120,130,140,150];
const yArray = [7,8,8,9,9,9,10,11,14,14,15];

// Define Data
const data = [{
  x:xArray,
  y:yArray,
  mode: "markers"
}];

// Define Layout
const layout = {
  xaxis: {range: [40, 160], title: "Square Meters"},
  yaxis: {range: [5, 16], title: "Price in Millions"},
  title: "House Prices vs. Size"
};

Plotly.newPlot("myPlot", data, layout);

Dự đoán giá trị

Từ dữ liệu phân tán ở trên, làm thế nào chúng ta có thể dự đoán giá cả trong tương lai?

  • Sử dụng đồ thị tuyến tính vẽ tay
  • Mô hình hóa mối quan hệ tuyến tính
  • Mô hình hóa hồi quy tuyến tính

Đồ thị tuyến tính

Đây là một đồ thị tuyến tính dự đoán giá dựa trên giá thấp nhất và giá cao nhất:

Ví dụ:

const xArray = [50,60,70,80,90,100,110,120,130,140,150];
const yArray = [7,8,8,9,9,9,9,10,11,14,14,15];

const data = [
  {x:xArray, y:yArray, mode:"markers"},
  {x:[50,150], y:[7,15], mode:"line"}
];

const layout = {
  xaxis: {range: [40, 160], title: "Square Meters"},
  yaxis: {range: [5, 16], title: "Price in Millions"},
  title: "House Prices vs. Size"
};

Plotly.newPlot("myPlot", data, layout);

Từ chương trước

Đồ thị tuyến tính có thể được viết là y = ax + b

Trong đó:

  • y là giá mà chúng ta muốn dự đoán
  • a là độ dốc của đường thẳng
  • x là các giá trị đầu vào
  • b là điểm cắt trục tung

Mối quan hệ tuyến tính

Mô hình này dự đoán giá bằng cách sử dụng mối quan hệ tuyến tính giữa giá và kích thước:

Ví dụ:

const xArray = [50,60,70,80,90,100,110,120,130,140,150];
const yArray = [7,8,8,9,9,9,10,11,14,14,15];

// Calculate Slope
let xSum = xArray.reduce(function(a, b){return a + b;}, 0);
let ySum = yArray.reduce(function(a, b){return a + b;}, 0);
let slope = ySum / xSum;

// Generate values
const xValues = [];
const yValues = [];
for (let x = 50; x <= 150; x += 1) {
  xValues.push(x);
  yValues.push(x * slope);
}

Trong ví dụ trên, hệ số góc là giá trị trung bình được tính toán và hệ số chặn bằng 0.

Sử dụng hàm hồi quy tuyến tính

Mô hình này dự đoán giá cả bằng cách sử dụng hàm hồi quy tuyến tính:

Ví dụ:

const xArray = [50,60,70,80,90,100,110,120,130,140,150];
const yArray = [7,8,8,9,9,9,10,11,14,14,15];

// Calculate Sums
let xSum=0, ySum=0 , xxSum=0, xySum=0;
let count = xArray.length;
for (let i = 0, len = count; i < count; i++) {
  xSum += xArray[i];
  ySum += yArray[i];
  xxSum += xArray[i] * xArray[i];
  xySum += xArray[i] * yArray[i];
}

// Calculate slope and intercept
let slope = (count * xySum - xSum * ySum) / (count * xxSum - xSum * xSum);
let intercept = (ySum / count) - (slope * xSum) / count;

// Generate values
const xValues = [];
const yValues = [];
for (let x = 50; x <= 150; x += 1) {
  xValues.push(x);
  yValues.push(x * slope + intercept);
}

Hồi quy đa thức

Nếu các điểm dữ liệu phân tán không phù hợp với hồi quy tuyến tính (một đường thẳng đi qua các điểm), dữ liệu có thể phù hợp với hồi quy đa thức.

Hồi quy đa thức, giống như hồi quy tuyến tính, sử dụng mối quan hệ giữa các biến x và y để tìm ra cách tốt nhất để vẽ một đường thẳng đi qua những điểm dữ liệu.

Thứ Ba, 10/03/2026 15:49
31 👨
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo