当前位置:首页 > JavaScript

用js实现线性回归

2026-04-04 19:43:30JavaScript

实现线性回归的基本步骤

线性回归是用于建模两个变量之间线性关系的统计方法。在JavaScript中可以通过以下方式实现:

准备数据

假设有一组输入特征x和对应的目标值y

用js实现线性回归

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);

计算斜率和截距

使用最小二乘法计算回归系数:

用js实现线性回归

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));  // 预测结果

注意事项

  • 确保输入数据是数值类型
  • 数据点数量应足够以获得可靠结果
  • 检查分母不为零的情况

标签: 线性js
分享给朋友:

相关文章

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…