Hồi quy tuyến tính
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 AI, Hồi quy tuyến tính là một thuật toán học máy được giám sát.
Lô phân tán
Đây là âm mưu phân tán (từ chương trước):
Thí dụ
var xArray = [50,60,70,80,90,100,110,120,130,140,150];
var yArray = [7,8,8,9,9,9,10,11,14,14,15];
// Define Data
var data = [{
x:xArray,
y:yArray,
mode: "markers"
}];
// Define Layout
var 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á trong tương lai?
- Sử dụng đồ thị tuyến tính được vẽ tay
- Mô hình hóa mối quan hệ tuyến tính
- Mô hình hồi quy tuyến tính
Đồ thị tuyến tính
Đây là biểu đồ tuyến tính dự đoán giá dựa trên giá thấp nhất và cao nhất:
Thí dụ
var xArray = [50,60,70,80,90,100,110,120,130,140,150];
var yArray = [7,8,8,9,9,9,9,10,11,14,14,15];
var data = [
{x:xArray, y:yArray, mode:"markers"},
{x:[50,150], y:[7,15], mode:"line"}
];
var 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ừ một chương trước
Một đồ thị tuyến tính có thể được viết dưới dạng y = ax + b
Ở đâu:
- y là giá chúng tôi muốn dự đoán
- a là hệ số góc của đường thẳng
- x là các giá trị đầu vào
- b là điểm chặn
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:
Thí dụ
var xArray = [50,60,70,80,90,100,110,120,130,140,150];
var yArray = [7,8,8,9,9,9,10,11,14,14,15];
// Calculate Slope
var xSum = xArray.reduce(function(a, b){return a + b;}, 0);
var ySum = yArray.reduce(function(a, b){return a + b;}, 0);
var slope = ySum / xSum;
// Generate values
var xValues = [];
var yValues = [];
for (var x = 50; x <= 150; x += 1) {
xValues.push(x);
yValues.push(x * slope);
}
Trong ví dụ trên, độ dốc là giá trị trung bình được tính toán và hệ số chặn = 0.
Sử dụng hàm hồi quy tuyến tính
Mô hình này dự đoán giá bằng cách sử dụng hàm hồi quy tuyến tính:
Thí dụ
var xArray = [50,60,70,80,90,100,110,120,130,140,150];
var yArray = [7,8,8,9,9,9,10,11,14,14,15];
// Calculate Sums
var xSum=0, ySum=0 , xxSum=0, xySum=0;
var count = xArray.length;
for (var 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
var slope = (count * xySum - xSum * ySum) / (count * xxSum - xSum * xSum);
var intercept = (ySum / count) - (slope * xSum) / count;
// Generate values
var xValues = [];
var yValues = [];
for (var x = 50; x <= 150; x += 1) {
xValues.push(x);
yValues.push(x * slope + intercept);
}