用js实现线性回归
实现线性回归的基本步骤
线性回归是用于建模两个变量之间线性关系的统计方法。在JavaScript中可以通过以下方式实现:
准备数据
假设有一组输入特征x和对应的目标值y:
const x = [1, 2, 3, 4, 5];
const y = [2, 4, 5, 4, 5];
计算均值
计算x和y的均值:
const mean = arr => arr.reduce((a, b) => a + b) / arr.length;
const xMean = mean(x);
const yMean = mean(y);
计算斜率和截距
使用最小二乘法计算回归系数:
let numerator = 0;
let denominator = 0;
for (let i = 0; i < x.length; i++) {
numerator += (x[i] - xMean) * (y[i] - yMean);
denominator += Math.pow(x[i] - xMean, 2);
}
const slope = numerator / denominator;
const intercept = yMean - slope * xMean;
预测函数
创建预测新值的函数:
function predict(x) {
return slope * x + intercept;
}
完整代码示例
function linearRegression(x, y) {
const mean = arr => arr.reduce((a, b) => a + b) / arr.length;
const xMean = mean(x);
const yMean = mean(y);
let numerator = 0;
let denominator = 0;
for (let i = 0; i < x.length; i++) {
numerator += (x[i] - xMean) * (y[i] - yMean);
denominator += Math.pow(x[i] - xMean, 2);
}
const slope = numerator / denominator;
const intercept = yMean - slope * xMean;
return {
slope,
intercept,
predict: x => slope * x + intercept
};
}
// 使用示例
const model = linearRegression([1,2,3,4,5], [2,4,5,4,5]);
console.log(model.predict(6)); // 预测x=6时的y值
使用库实现
对于更复杂的应用,可以使用现成的库如ml-regression:

const { LinearRegression } = require('ml-regression');
const x = [1, 2, 3, 4, 5];
const y = [2, 4, 5, 4, 5];
const regression = new LinearRegression(x, y);
console.log(regression.predict(6)); // 预测结果
注意事项
- 确保输入数据是数值类型
- 数据点数量应足够以获得可靠结果
- 检查分母不为零的情况






